Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6297 / 76734 ←次へ | 前へ→

【76038】Re:一覧表に合致するファイルをサブディレクトリまで検索し、内容を一覧に反映する
発言  kanabun  - 14/8/25(月) 19:34 -

引用なし
パスワード
   Dir関数の代わりに Dirコマンドを使ってサブディレクトリも同時検索する
サンプルです。

'-----------------------------------------------------------
Option Explicit

'// D:\(Data)\temp\subTemp\JoinCSV200.csv を D:\(Data)\ を指定して検索
Sub Example()
  Dim caseFolderPath$: caseFolderPath = "D:\(Data)\"
  Dim caseFilename$

  caseFilename = Dir2(caseFolderPath & "JoinCSV200*.csv")
  MsgBox caseFilename

End Sub

'サブフォルダを含むファイルの検索(最初に見つかったファイルパスを返す)
Private Function Dir2(PathFilename As String) As String
  Dim i As Long
  Dim tmpPath As String
  Dim sCmd As String
  Dim ko As Long
  
  tmpPath = Environ$("Temp") & "\Dir.tmp"  '◆Dirの結果ファイル出力パスファイル名  ←適宜変更
  sCmd = "DIR """ & PathFilename & """ /b /s > """ & tmpPath & """"
        '/b:ファイル名のみ  /s: サブディレクトリも検索
  Debug.Print sCmd
  With CreateObject("WScript.Shell")
    ko = .Run("CMD /C " & sCmd, 7, True) 'Dirコマンド実行
  End With

  If FileLen(tmpPath) < 3 Then Exit Function
  Dim io%
  Dim buf() As Byte
  io = FreeFile()
  Open tmpPath For Binary As io
   ReDim buf(1 To LOF(io))
   Get #io, , buf
  Close io
  Kill tmpPath
  Dir2 = Split(StrConv(buf, vbUnicode), vbCrLf)(0)
End Function

5 hits

【76036】一覧表に合致するファイルをサブディレクトリまで検索し、内容を一覧に反映... himawari 14/8/25(月) 17:59 質問
【76037】Re:一覧表に合致するファイルをサブディレ... kanabun 14/8/25(月) 19:12 発言
【76038】Re:一覧表に合致するファイルをサブディレ... kanabun 14/8/25(月) 19:34 発言
【76039】Re:一覧表に合致するファイルをサブディレ... kanabun 14/8/25(月) 19:43 発言
【76040】Re:一覧表に合致するファイルをサブディレ... kanabun 14/8/25(月) 19:48 発言
【76041】Re:一覧表に合致するファイルをサブディレ... himawari 14/8/26(火) 12:20 お礼

6297 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free