実行シート画面
[移動するフォルダ]ボタンをクリックすると、フォルダ選択ダイアログが表示されます。
フォルダを選択すると、そのフォルダ内に含まれるHtmはHtmlファイルを取得し、「移動するファイル名」の列に入力していきます。
Excel VBAで、フォルダ内のファイル名一覧を取得するプロシージャ
MySerchFileを追加してください。
If sDir <> "" Then
If Right(sDir, 1) <> "\" Then
sDir = sDir + "\"
End If
Range("D5") = sDir
MySerchFile
End If
フォルダ内からファイル名を取得し、順にセルに入力しています。
Private Sub ExFolderSearchSub(ByVal tPath As Folder)
Dim tInPath As Folder
Dim tFile As File
Dim lr As Long
lr = 5
For Each tInPath In tPath.SubFolders
Call ExFolderSearchSub(tInPath)
Next tInPath
For Each tFile In tPath.Files
If LCase(Right(tFile.Name, 4)) = "html" Or LCase(Right(tFile.Name, 3)) = "htm" Then
Cells(lr, 10) = tFile.Name
lr = lr + 1
End If
Next tFile
Set tPath = Nothing
End Sub
Sub MySerchFile()
Dim sSearchPath As String
Dim tFso As FileSystemObject
sSearchPath = Range("D5")
Set tFso = New FileSystemObject
Call ExFolderSearchSub(tFso.GetFolder(sSearchPath))
Set tFso = Nothing
End Sub
・ ExFolderSearchSubで再帰的に呼び出し、サブフォルダ内も含めて検索しています。
・ Lcase関数を使用し、大文字・小文字の両方を調べています。
・ Nameプロパティをセルに入力しています。
・ Set tFso = Nothingで、FileSystemObjectをお約束通り解放しています。