Вы не можете загрузить файл из архива, но вы можете адаптировать свой код следующим образом:
Вставьте эти строки в конце существующего кода (непосредственно перед End Sub
):
Dim zipFileName As String, unZipFolderName As String
zipFileName = "C:\Users\playt\Desktop\STACK\ruff.zip"
unZipFolderName = left(zipFileName, InStrRev(zipFileName, "\") - 1)
UN_Zip zipFileName, unZipFolderName
Простейшая подпрограмма, способная распаковать и удалить архив, должна выглядеть так (для этого нужна ссылка на 'Microsoft Shell Controls And Automation'
):
Private Sub UN_Zip(zipFileName As String, unZipFolderName As String)
Dim wShApp As New Shell
wShApp.Namespace(unZipFolderName).CopyHere wShApp.Namespace(zipFileName).Items
Kill zipFileName
End Sub
Если лень добавить ссылку, код выглядит более элегантно, подпрограмма может быть адаптирована только с двумя строками:
Используйте Dim wShApp As Object
вместо объявления Dim wShApp As New Shell
и затем добавьте следующую строку:
Set ShApp = CreateObject("Shell.Application")
В этом Кстати, ссылка не нужна, больше ...