|
パスに半角スペースが含まれる場合、そこで区切られてコマンドの引数の一つ
とみなされてしまいます。それを正しくパスとして認識させるためには、"" で
囲むか「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
|
|