HOME > 即効テクニック > Excel VBA > ファイル操作関連のテクニック > 指定フォルダ内のテキストファイルを管理する

即効テクニック

ファイル操作関連のテクニック

指定フォルダ内のテキストファイルを管理する

(Excel 97/2000)
サンプルでは特定のフォルダ内にあるテキストファイルをFileSearchオブジェクトを使用して検索、フルパスからファイル名を取得、LineInputステートメントで一行目の内容を取得、FileDateTime関数で最終更新日を取得しています。

Sub GetTextInformation()

Dim Msg As String, FolderName As String
Dim Ret As String,Buff As String
Dim FNum As Integer, i As Long

Msg = "検索するフォルダのパスを指定してください"
FolderName = Application.InputBox _
    (Msg, "テキスト情報取得", "C:\", Type:=2)
    
'InputBoxがキャンセル、空白で返された場合のエラー処理
If FolderName = "" Or FolderName = "False" Then _
    GoTo Exit_GetTextInformation
    
'指定フォルダの存在確認
Ret = Dir(FolderName, vbDirectory)
If Ret = "" Then GoTo Exit_GetTextInformation

'ファイル検索
With Application.FileSearch
.NewSearch
.Filename = "*.txt"   '”ABC*.txt"なども可能
.FileType = msoFileTypeAllFiles
.LookIn = FolderName '指定フォルダ
.SearchSubFolders = False
.Execute '検索実行

'検索結果が0の場合終了
If .FoundFiles.Count = 0 Then GoTo Exit_GetTextInformation

FNum = FreeFile 'ファイル番号確保

For i = 1 To .FoundFiles.Count
'テキストファイルから一行目を取得
Open .FoundFiles(i) For Input As FNum
    Line Input #FNum, Buff
Close FNum

'テキストファイルの情報をセルに書き込み
Cells(i, 1) = Dir(.FoundFiles(i), vbNormal) 'ファイル名取得
Cells(i, 2) = FileDateTime(.FoundFiles(i)) 'ファイル更新日
Cells(i, 3) = Buff 'テキスト一行目

Next i

End With

Exit Sub

Exit_GetTextInformation:

MsgBox "検索できませんでした"

End Sub