|    | 
     パスに半角スペースが含まれる場合、そこで区切られてコマンドの引数の一つ 
とみなされてしまいます。それを正しくパスとして認識させるためには、"" で 
囲むか「8.3 形式のファイル名」に変換する必要があります。ま、"" 囲む方が 
簡単なので、以下のように修正してみて下さい。それでうまくいかない場合は、 
後者のコードをお教えします。 
 
Sub SEARCH_DIR() 
  Dim WshShell As Object, oExec As Object 
  Dim i As Long 
  Dim MyDoc As String, CmdSt As String, Ret As String 
 
  MyDoc = Trim(Range("A1").Value) 
  If Dir(MyDoc, 16) = "" Then 
   MsgBox "そのフォルダーは見つかりません", 48: Exit Sub 
  End If 
  CmdSt = "Cmd.exe /C DIR /A:D /B /S " & """" & MyDoc & "\*""""" 
  Set WshShell = CreateObject("WScript.Shell") 
  Application.ScreenUpdating = False 
  Set oExec = WshShell.Exec(CmdSt) 
  Do Until oExec.StdOut.AtEndOfStream 
   MyRet = oExec.StdOut.ReadLine: i = i + 1 
   Cells(i, 1).Value = MyRet 
  Loop 
  Set oExec = Nothing: Set WshShell = Nothing 
  With Range("A1", Range("A65536").End(xlUp)).Offset(, 255) 
   .Formula = "=IF(OR(ISERR(FIND(""表"",$A1))," & _ 
   "ISERR(FIND(""単価"",$A1)),ISERR(FIND(""株"",$A1))),1)" 
   .SpecialCells(3, 1).EntireRow.Delete xlShiftUp 
   .ClearContents 
  End With 
  Application.ScreenUpdating = True 
End Sub 
 | 
     
    
   |