|    | 
     以前、フォルダの一覧を作成する質問をさせて頂き、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 
 
 | 
     
    
   |