Для распаковки части вашего вопроса: 7-Zip - это действительно отличная утилита архивирования файлов с открытым исходным кодом, которая имеет приятный интерфейс командной строки.Вот пример того, как вызвать 7-Zip из VB (после его установки):
Set WshShell = VBA.CreateObject("WScript.Shell")
WshShell.Run "c:\Program Files\7-Zip\7z.exe " & _
"a -tzip myarchive.zip file.dat file2.txt file3.png", 1, True
В этом примере сжимаются три файла в архив, а вы хотите извлечь файлы из архива ... простонайдите соответствующую команду для этого в документации.
Обратите внимание, что окно команд появится во время выполнения 7-Zip, и там вы увидите индикатор% прогресса.Если вы хотите, чтобы этот индикатор появлялся где-то еще, то, проявив немного изобретательности, вы, вероятно, можете перенаправить стандартный вывод в другое релевантное место.