
下記のマクロはネットから参照したマクロで、マクロを実行すると指定フォルダが圧縮できます。
このマクロでが圧縮対象のフォルダを
targetPath = "C:\Users\160931\Desktop\ファイル更新(最新)\テスト物件\12345678-5_交付用"
'作成するZIPファイルのパスを
zipFilePath = "C:\Users\160931\Desktop\ファイル更新(最新)\テスト物件\12345678-5_交付用.zip"
に指定しておりますが、
この指定を
マクロ設定ブックと同じフォルダ内にある、フォルダ「12345678-5_交付用」に変更出来る方法を教えてください。
尚、圧縮対象フォルダは1つしか無く、「_交付用」は固定フォルダ名になりますが、
「_交付用」から前の部分(12345678-5)は物件毎に変更になる為、
' フォルダ名が「8桁の英数字-1_交付用」というパターンに一致する場合
If folderName Like "########-#_交付用" Then
のような設定を希望いたします。
現状のマクロ
Sub フォルダを圧縮()
Dim targetPath As String
Dim zipFilePath As String
Dim psCommand As String
Dim wsh As Object
Dim result As Integer
'ZIP形式で圧縮するフォルダ(またはファイル)パスを指定
targetPath = "C:\Users\160931\Desktop\ファイル更新(最新)\テスト物件\12345678-5_交付用"
'作成するZIPファイルのパスを指定
zipFilePath = "C:\Users\160931\Desktop\ファイル更新(最新)\テスト物件\12345678-5_交付用.zip"
'実行するPowerShellのコマンドレットを組み立て
psCommand = "powershell -NoProfile -ExecutionPolicy Unrestricted Compress-Archive -Path " & targetPath & " -DestinationPath " & zipFilePath & " -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
以上となります。
宜しくお願い致します。

No.1ベストアンサー
- 回答日時:
以下のようにしてください。
Sub フォルダを圧縮()
Dim targetPath As String
Dim zipFilePath As String
Dim psCommand As String
Dim wsh As Object
Dim result As Integer
Dim folname As String
folname = Dir(ThisWorkbook.path & "\" & "????????-?_交付用", vbDirectory)
If folname = "" Then
MsgBox ("該当フォルダなし")
Exit Sub
End If
'ZIP形式で圧縮するフォルダ(またはファイル)パスを指定
targetPath = ThisWorkbook.path & "\" & folname
'作成するZIPファイルのパスを指定
zipFilePath = targetPath & ".zip"
'実行するPowerShellのコマンドレットを組み立て
psCommand = "powershell -NoProfile -ExecutionPolicy Unrestricted Compress-Archive -Path " & targetPath & " -DestinationPath " & zipFilePath & " -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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA セルの値がおかしいです
-
VBA セル間のリンク修正につい...
-
WindowsのOutlook を VBA から...
-
【ExcelVBA】値を変更しながら...
-
ExcelのVBAコードについて教え...
-
VBAでCOPYを繰り返すと、処理が...
-
マクロの記録を使用したマクロ...
-
vba textboxへの入力について教...
-
複数のExcelファイルをマージす...
-
Vba Array関数について教えてく...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
Excelのマクロについて教えてく...
-
Vba WorkBooks.Openについて教...
-
VBAから書き込んだ条件付き初期...
-
Vba 型が一致しません(エラー1...
-
【ExcelVBA】5万行以上のデー...
-
[Excel VBA]特定の条件で文字を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA セル間のリンク修正につい...
-
VBAでCOPYを繰り返すと、処理が...
-
vba textboxへの入力について教...
-
【マクロ】シートの変数へ入れ...
-
【マクロ】並び替えの範囲が、...
-
Vba Array関数について教えてく...
-
Vba セルの4辺について罫線が有...
-
【マクロ】開いているブックの...
-
複数のExcelファイルをマージす...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【ExcelVBA】5万行以上のデー...
-
vbsでのwebフォームへの入力制限?
-
[VB.net] ボタン(Flat)のEnable...
-
Excelのマクロについて教えてく...
-
【ExcelVBA】値を変更しながら...
-
改行文字「vbCrLf」とは
-
算術演算子「¥」の意味について
-
VBAでセルの書式を変えずに文字...
-
VBAの「To」という語句について
-
VB.net 文字列から日付型へ変更...
おすすめ情報