0

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 が開きますが、中身は空で、ファイルは解凍されません! どうもありがとう。

4

1 に答える 1