Я нашел множество примеров для этого на нескольких языках, но ни один из них не является спецификацией VBA. Этот вопрос, Как загрузить несколько файлов в VB6 с индикатором выполнения?, обращается к трем различным подходам, чтобы сделать это в VB6.
- Используйте свойство ASyncRead объектов VB6 UserControl/UserDocument
- Использовать библиотеку типов olelib.tlb и интерфейс IBindStatusCallback
- Используйте wininet.dll, чтобы написать собственную загрузку в функцию файла.
Ни один из этих подходов не работает для меня, потому что:
- Объекты UserControl/UserDocument недоступны из VBA
- Я бы предпочел не поддерживать и распространять большую внешнюю зависимость
- Я не видел очевидного способа получить текущий ход загрузки файла.
Число 2 выше показалось наиболее перспективным. Мне интересно, могу ли я создать интерфейс IBindStatusCallback, используя модуль класса из моего проекта VBA?
Или, может быть, есть свойства/методы, доступные с помощью номера 3 выше, который обеспечит текущий прогресс. Любая помощь очень ценится.