VBAで
・ファイル/フォルダをZIP圧縮(パスワード付き)
できます!
VBAから
・圧縮解凍ソフト「7-Zip」を実行
することで実現できます!
7-Zipのインストール
公式サイトから最新版のインストーラをダウンロードして、圧縮解凍ソフト「7-Zip」をインストールします。
私は以下のリンクをクリックして、インストーラをダウンロードしました。
ここでは例として、デフォルトのインストール先として設定されていた「C:\Program Files\7-Zip\」へインストールしました。
VBAコード
ここでは例として
・デスクトップ配下の約1GBのフォルダ「test」を
・パスワード「hogehoge」で圧縮し
・デスクトップ配下に圧縮ファイル「test.zip」として作成
します。
Option Explicit
Sub sample()
Dim exe7zip As String
Dim targetPath As String
Dim zipFilePath As String
Dim password As String
Dim execCommand As String
Dim wsh As Object
Dim result As Integer
'7z.exeのパスを指定 ※パスにスペースが含まれているため、「""」で囲んでいます。
exe7zip = """C:\Program Files\7-Zip\7z.exe"""
'圧縮するフォルダ(またはファイル)のパスを指定
targetPath = "C:\Users\user\Desktop\test"
'作成するZIPファイルのパスを指定
zipFilePath = "C:\Users\user\Desktop\test.zip"
'パスワードを指定
password = "hogehoge"
'圧縮コマンドを組み立て
execCommand = exe7zip & " a -ssw -p" & password & " " & zipFilePath & " " & targetPath
Set wsh = CreateObject("WScript.Shell")
'圧縮コマンドを実行
result = wsh.Run(command:=execCommand, WindowStyle:=0, WaitOnReturn:=True)
If (result = 0) Then
MsgBox ("圧縮が正常終了しました。")
Else
MsgBox ("圧縮が異常終了しました。")
End If
'後片付け
Set wsh = Nothing
End Sub
実行結果
ZIP形式(パスワード付き)で圧縮できました。
指定したパスワードで解凍(展開)できることを確認
「作成された圧縮ファイル」を右クリックして[7-Zip]-[展開]をクリックすると、画面が表示されます。
表示された画面に「パスワード」を入力して「OK」をクリックすると、無事に解凍(展開)できました。
※ここでは例として、デスクトップ上の「temp」フォルダ配下へ解凍(展開)しました。
参考①
VBAでZIPファイル(パスワード付き)を解凍(展開)することもできます。
詳細は以下の記事をご確認ください。
参考②
7-Zipを使用した圧縮コマンドの詳細は、公式サイトをご確認ください。