以下のコードは、「画像」という名前のフォルダをZIPファイルに追加します。 Imagesフォルダをzipのサブフォルダにしたくないのですが、どうすればImageフォルダの内容をzipファイルのルートに追加するだけですか?そしてFolderToAdd & "*.*"
は動作しません。VBA。コピー - 複数のファイルをZIPファイルにコピーしますか?
Sub testing()
Dim ZipFile As String
Dim FolderToAdd As String
Dim objShell As Object
Dim varZipFile As Variant
ZipFile = "C:\ZipFile_Images\images.zip"
FolderToAdd = "C:\Images"
Set objShell = CreateObject("Shell.Application")
varZipFile = ZipFile
If Right$(FolderToAdd, 1) <> "\" Then
FolderToAdd = FolderToAdd & "\"
End If
objShell.NameSpace(varZipFile).CopyHere (FolderToAdd)
End Sub
背景:私は与えられたzipファイルにファイルを一つずつ追加する機能から、このコードを引っ張ったが、100個の小さなJPEGファイルを追加するとき、これは多くの時間がかかるでしょう。一度にフォルダ全体を追加すると、約50倍速くなります。
最終的には、複数のファイルをネイティブに一度に追加できるようにしたいので、他のコードスニペットも開いています。
ここロン・ド・ブルーインのページから
zipファイルに何かを追加するたびに、ゼロから再構築する必要があります。したがって、一度に1つのファイルを追加するのは遅くなります。ファイルを一時フォルダにコピーし、一時フォルダを圧縮します。 –