VBAから
・ZIPファイル(パスワード付き)を解凍(展開)
できます!
VBAから
・圧縮解凍ソフト「7-Zip」を実行
することで実現できます!
前提
「7-Zip」がインストールされていること。
「7-Zip」のインストールの詳細は、以下の記事の「7-Zipのインストール」をご確認ください。
VBAコード
ここでは例として
・デスクトップ配下のパスワード付きZIPファイル「test.zip」を
・デスクトップ配下のフォルダ「output」配下へ解凍(展開)
します。
※ここではパスワードを「hogehoge」とします。
Option Explicit
Sub sample()
Dim exe7zip As String
Dim zipFilePath As String
Dim destFolderPath 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"""
'解凍(展開)するZIPファイルのパスを指定
zipFilePath = "C:\Users\user\Desktop\test.zip"
'解凍(展開)先フォルダのパスを指定
destFolderPath = "C:\Users\user\Desktop\output"
'パスワードを指定
password = "hogehoge"
'圧縮コマンドを組み立て
execCommand = exe7zip & " x -p" & password & " " & zipFilePath & " -o" & destFolderPath & " -aoa"
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ファイル(パスワード付き)を解凍(展開)できました。
参考①
VBAでZIP形式(パスワード付き)で圧縮することもできます。
詳細は以下の記事をご確認ください。
参考②
7-Zipを使用した解凍(展開)コマンドの詳細は、公式サイトをご確認ください。