アプリケーションとしてのVBA Excel(エクセル) VBA の役立つ Tips の紹介

アプリケーションとしてのVBA

ファイルの検索

ファイルの検索


  Fileの検索には FileSearch を使います。

Sub FileSearch()
    
    Dim i As Integer
    Dim FolderSpec As String
    Dim FileList As Variant
    
    FolderSpec = FolderPath
    
    With Application.FileSearch
        '以前に実行した検索条件をリセット
        .NewSearch
        
        '検索対象フォルダー またはドライブのパスを設定
        .LookIn = FolderSpec
        
        '検索対象ファイルの名前を設定 "*.*" 等を記述する
        .Filename = Range("A2")
        
        '検索対象ファイルのタイプを設定
        .FileType = msoFileTypeAllFiles
        
        'ファイルが最後に更新・保存された日時または期間
        .LastModified = msoLastModifiedAnyTime
        
        '含まれる文字列 検索文字にワイルドカード使用可
        .TextOrProperty = Range("A5")
        
        '全体が一致する文字列が含まれるファイルを検索
        .MatchTextExactly = True
        
        'サブフォルダまで検索する
        .SearchSubFolders = True

        'FileSearch の実行
        If .Execute() > 0 Then
        
            i = 10
            For Each FileList In .FoundFiles
                '検索結果をセルに代入
                Range("A" & Format(i)) = FileList
                i = i + 1
            Next
        End If

    End With
End Sub

  FolderPath については、Folderを選択するを参照してください。
Function FolderPath() As String
    
    Dim Shell As Object
    
    Set Shell = CreateObject("Shell.Application") _
             .BrowseForFolder(0, "フォルダを選択してください", 0, "C:\")
    
    If Shell Is Nothing Then
        FolderPath = ""
    Else
        FolderPath = Shell.Items.Item.Path
    End If

End Function
  

  .Filename と .TextOrPropertyは、"こんな文字*" みたいにワイルドカードを使用できます。 
  .FileType と .LastModified は定数で指定します。

  "2005/07/1" 〜 "2005/08/30" のような自由な設定はできないようです。

  最後に .FileType と .LastModified の定数一覧を載せておきます。

  example23 をダウンロードして動作を確認してください。

定数 FileType定数 LastModified
msoFileTypeAllFiles1msoLastModifiedAnyTime7
msoFileTypeBinders6msoLastModifiedLastMonth5
msoFileTypeCalendarItem11msoLastModifiedLastWeek3
msoFileTypeContactItem12msoLastModifiedThisMonth6
msoFileTypeDatabases7msoLastModifiedThisWeek4
msoFileTypeDataConnectionFiles 17msoLastModifiedToday2
msoFileTypeDesignerFiles 22msoLastModifiedYesterday1
msoFileTypeDocumentImagingFiles 20
msoFileTypeExcelWorkbooks 4
msoFileTypeJournalItem 14
msoFileTypeMailItem 10
msoFileTypeNoteItem 13
msoFileTypeOfficeFiles 2
msoFileTypeOutlookItems 9
msoFileTypePhotoDrawFiles 16
msoFileTypePowerPointPresentations 5
msoFileTypeProjectFiles 19
msoFileTypePublisherFiles 18
msoFileTypeTaskItem 15
msoFileTypeTemplates 8
msoFileTypeVisioFiles 21
msoFileTypeWebPages 23
msoFileTypeWordDocuments 3


Copy (C) 2005   アプリケーションとしてのVBA   All Rights Reserved.