Extract all .gz file in folder using VBA Shell commandのコードを使用して、 .gz ファイルを抽出しました。問題は、ファイルパスにギャップがある場合、コードが機能しないことです。ギャップがない場合、最初の例では、'K' と 'L' の間に '_' がなくギャップ ' ' があることに注意してください。したがって、ファイル パスにはギャップがありますが、 動作する例では '_' があります。 、およびファイルパス全体にギャップがありません
'Example that doesn't work:
Sub extractAllFiles()
Dim MyObj As Object, MySource As Object, File As Variant
Dim shellStr As String
File = Dir("Z:\A_B_C\D_E_F\G_H_I\J_K L\_M_N_O\P_Q_R\*.gz")
While (File <> "")
If InStr(1, File, ".gz") > 0 Then
shellStr = "C:\Program Files\WinZip\winzip32 -e Z:\A_B_C\D_E_F\G_H_I\J_K L\_M_N_O\P_Q_R\" & File & " Z:\A_B_C\D_E_F\G_H_I\J_K L\_M_N_O\P_Q_R\"
Call Shell(shellStr, vbHide)
End If
File = Dir
Wend
End Sub
'Example that works:
Sub extractAllFiles()
Dim MyObj As Object, MySource As Object, File As Variant
Dim shellStr As String
File = Dir("Z:\A_B_C\D_E_F\G_H_I\J_K_L\_M_N_O\P_Q_R\*.gz")
While (File <> "")
If InStr(1, File, ".gz") > 0 Then
shellStr = "C:\Program Files\WinZip\winzip32 -e Z:\A_B_C\D_E_F\G_H_I\J_K_L\_M_N_O\P_Q_R\" & File & " Z:\A_B_C\D_E_F\G_H_I\J_K_L\_M_N_O\P_Q_R\"
Call Shell(shellStr, vbHide)
End If
File = Dir
Wend
End Sub
最初の例を機能させたいのですが、なぜ機能しないのですか?
エラーはありません。コードが実行され、winzip が開きますが、中身は空で、ファイルは解凍されません! どうもありがとう。