自力で検索してみた、サンプルソースを作ってみたが、
質問させてください。
?なぜか”オブジェクトが必要です”でエラーが発生した
Wscript.sleep 100のあたり。
?圧縮後のファイルにパスワードをかけたいのですが、可能でしょうか。
Private Sub CommandButton1_Click()
Dim files(0)
files(0) = "D:\foo\zipsample"
' Call MakeZip("圧縮後のファイル名を絶対パスで記述",files)
zipfilea = "D:\foo\zipsample\tar123.zip"
Call MakeZip(zipfilea, files)
End Sub
Sub MakeZip(ByVal ZipPath, ByRef FileArray)
Dim sfo, app, file, num, zipFolder
Set sfo = CreateObject("Scripting.FileSystemObject")
Set app = CreateObject("Shell.Application")
If sfo.FileExists(ZipPath) = True Then
sfo.DeleteFile ZipPath
End If
With sfo.CreateTextFile(ZipPath, True)
.Write "PK" & Chr(5) & Chr(6) & String(18, 0)
.Close
End With
num = 0
Set zipFolder = app.Namespace(sfo.GetAbsolutePathName(ZipPath))
For Each file In FileArray
If CStr(file) <> "" Then
file = sfo.GetAbsolutePathName(file)
zipFolder.CopyHere (file)
num = num + 1
End If
Next
Do Until zipFolder.Items().Count = num
Wscript.sleep 100
Loop
Set sfo = Nothing
Set app = Nothing
End Sub