VBAで
・ZIPファイルを解凍(展開)
できます!
※ここで紹介するのは「パスワード無しZIPファイル」の解凍(展開)方法です。
VBAから
・Power Shellのコマンドレットを実行
することで実現します!
※コマンドレット「Expand-Archive」により実現します。
実行結果も取得できます!
※正常終了の場合、実行結果は「0」になります。
※異常終了の場合、実行結果は「1」になります。
ZIPファイル(パスワード付き)を解凍(展開)
することもできます!
詳細は以下の記事をご確認ください!
はじめに
他のサイトではZIPファイルを
・「CopyHere」メソッドなるものでで解凍(展開)する方法
が紹介されていたりしますが、こちらは動作保証されていません。
※公式サイトに動作保証していない旨が記載されています。
VBAコード
ここでは例として
・デスクトップ配下のZIPファイル「ken_all.zip」を
・デスクトップ配下のフォルダ「output」配下へ解凍(展開)
します。
Option Explicit
Sub execPsCommand()
Dim zipFilePath As String
Dim destFolderPath As String
Dim psCommand As String
Dim wsh As Object
Dim result As Integer
'解凍(展開)するZIPファイルを指定
zipFilePath = "C:\Users\user\Desktop\ken_all.zip"
'解凍(展開)先フォルダを指定
destFolderPath = "C:\Users\user\Desktop\output"
'実行するPowerShellのコマンドレットを組み立て
psCommand = "powershell -NoProfile -ExecutionPolicy Unrestricted Expand-Archive -Path " & zipFilePath & " -DestinationPath " & destFolderPath & " -Force"
Set wsh = CreateObject("WScript.Shell")
'PowerShellのコマンドレットを実行
result = wsh.Run(command:=psCommand, WindowStyle:=0, WaitOnReturn:=True)
If (result = 0) Then
MsgBox ("解凍(展開)が正常終了しました。")
Else
MsgBox ("解凍(展開)が異常終了しました。")
End If
'後片付け
Set wsh = Nothing
End Sub
実行結果
ZIPファイルを解凍(展開)できました。
参考①
ファイル/フォルダをZIP形式で圧縮することもできます。
詳細は以下の記事をご確認ください。
参考②
解凍(展開)する前に、解凍(展開)するZIPファイルの存在確認をしたほうがよいです。
ファイルの存在確認の詳細は、以下の記事をご確認ください。
参考③
上記で使用した以下の詳細は、公式サイトをご確認ください。
●Power Shellのコマンドレット「Expand-Archive」
参考④
上記で使用したZIPファイルは、以下の記事で「インターネットからダウンロードしたファイル」です。