|
以前、フォルダの一覧を作成する質問をさせて頂き、dosコマンドで
フォルダを書き出す方法を教えてもらいました。
そこで、少しやり方(セルに指定されたパス内を検索する)を変えて、
プログラムを変更しました。
が、セル値をcドライブにするとうまく動きません。どこが間違っているのか
教えていただきたく、もう一度質問させていただきました。
よろしくお願いします。
☆下記プログラムにて、
Range("a1")の値が『d:\顧客』の時はうまく実行されますが、
『C:\My Documents\顧客』だとdosコマンドがうまく動きません。
Sub SEARCH_DIR()
Dim WshShell As Object, oExec As Object
Dim i As Long
Dim MyDoc As String, MyRet As String
MyDoc = Trim(Range("a1").Value) & "\*"
Dim CmdSt As String
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
|
|