即効テクニック |
サンプルでは特定のフォルダ内にあるテキストファイルを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