実現したいこと
ExcelVBAによるpw付きzipファイルの作成
前提
VBAでpw付きzipファイルの作成を作成しようと思っているのですが、実行後zipファイルが作成されません。
エラー等は出ておらず、zipファイルが作成されない原因が分かりません。
該当のソースコード
Public Sub PW付きzip作成() Const exe_Path = "C:\Program Files\7-Zip\7z.exe" Dim ws As Worksheet Dim wsh As Object Dim fso As Object Dim command As String Dim Target_Path As String Dim zipFile_Path As String Dim pw As String Set ws = ActiveWorkbook.Sheets("pw") 'シートを変数に格納 Set wsh = CreateObject("WScript.Shell") 'WScript.Shellを変数に格納 Set fso = CreateObject("Scripting.FileSystemObject") 'FileSystemObjectを変数に格納 Target_Path = ActiveWorkbook.Path & "\○○.xlsx" 'Zip化したいファイルの変数の取得 Debug.Print (Target_Path) If fso.FileExists(Target_Path) Then 'ファイルの場合 zipFile_Path = Left(Target_Path, Len(Target_Path) - Len(fso.GetExtensionName(Target_Path))) & "zip" Else 'フォルダの場合 zipFile_Path = Target_Path & ".zip" End If Debug.Print (zipFile_Path) pw = ws.Cells(1, 1) 'pwの格納 command = exe_Path & " a -tzip" If pw <> "" Then command = command & " -p" & pw End If Debug.Print (pw) command = command & Space(1) & zipFile_Path command = command & Space(1) & Target_Path wsh.Run "cmd /c " & command, vbHide, 1 Set wsh = Nothing Set fso = Nothing MsgBox "完了"
補足情報(FW/ツールのバージョンなど)
参考にさせてもらったサイト
(https://excel.kuuneruch.com/zip-compress/)
> エラー等は出ておらず、
は、どうやって確認したのでしょうか?
wsh.Run "cmd /c " & command, vbHide, 1
で、表示されるウィンドウは一瞬で消えると思うので、動画撮影してコマ送り再生でも難しい気がします。
cmd /k だとウィンドウが残りますので、メッセージが出ていれば確認できます。
