項目
ファイルを検索する(サブフォルダ含む)
概要
Dirでファイルを検索する事ができます。
サブフォルダを検索する為に関数を再帰的に呼び出しています。
例
Option Compare Database
Option Explicit
Private Sub コマンド0_Click()
Dim filelist As String
Dim i As Long
Dim element
Dim group
'c:\tempを検索
serch_files "c:\temp", filelist
group = Split(filelist, vbTab, , vbBinaryCompare)
'リストの出力
For Each element In group
Debug.Print element
Next
End Sub
'-----------------------------------------------------------------------
' ■serchFiles
'
' 機能 : 指定されたフォルダのファイルを検索する
'
' 引数 : dirPath (in ) 検索するフォルダ
' filelist (inout) 見つかったファイルをTAB区切りで格納
'
' ※例外処理は含めて
'-----------------------------------------------------------------------
Sub serchFiles(ByVal dirPath As String, filelist As String)
Dim filename As String
Dim files As String
Dim temp As String
Dim element
Dim group
'最後に\を付加
If Right$(dirPath, 1) <> "\" Then dirPath = dirPath & "\"
'------------------------------------------------
'ファイルの検索
'------------------------------------------------
filename = Dir(dirPath, vbDirectory)
Do Until Len(filename) = 0
' "." と ".." を除く
If (filename <> ".") And (filename <> "..") Then files = files & vbTab & filename
' 次を検索
filename = Dir()
Loop
'------------------------------------------------
'サブフォルダの場合検索
'------------------------------------------------
group = Split(files, vbTab, , vbBinaryCompare)
For Each element In group
If element <> "" Then
temp = dirPath & element
'【フォルダ】再帰処理
If (GetAttr(temp) And vbDirectory) <> 0 Then
serch_files temp, filelist
Else
'【ファイル】変数に格納
filelist = filelist & vbTab & temp
End If
End If
Next
End Sub