ファイル ファイル検索関連

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

Option Explicit


'●FileSearch オブジェクト

Sub NO1()

'次の使用例は、指定されたファイルを検索し、
'見つかったファイルの総数と、各ファイルのファイル名を表示します。

With Application.FileSearch
    If .Execute() > 0 Then '■①.Execute
        MsgBox .FoundFiles.Count & _
            " 個のファイルが見つかりました。" '■②.FoundFiles
        For i = 1 To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
    Else
        MsgBox "検索条件を満たすファイルはありません。"
    End If
End With

'解説

'■①.Execute・・Execute メソッド (FileSearch オブジェクト)

'FileSearch オブジェクトでは、指定したファイルの検索を開始します。

'構文

'expression.Execute(SortBy, SortOrder, AlwaysAccurate)

'expression       必ず指定します。FileSearch オブジェクトを表すオブジェクト式を指定します。

'SortBy           省略可能です。バリアント型 (Variant) の値を指定します。
'                 検索結果のファイルを並べ替えるときの基準を指定します。
'                 使用できる定数は、MsoSortBy クラスの msoSortbyFileName (ファイル名)、
'                 msoSortbyFileType (ファイルの種類)、 msoSortbyLastModified (更新日時)、
'                 msoSortbySize (サイズ) のいずれかです。

'SortOrder        省略可能です。バリアント型 (Variant) の値を指定します。
'                 検索結果のファイル一覧を並べ替えるときの順序を指定します。
'                 使用できる定数は、MsoSortOrder クラスの msoSortOrderAscending (昇順)
'                 または msoSortOrderDescending (降順) です。

'AlwaysAccurate   省略可能です。ブール型 (Boolean) の値を指定します。
'                 True を指定すると、ファイル一覧が最後に更新されてから追加、変更、
'                 または削除されたファイルも検索の対象に含まれます。既定値は True です。

'使用例

'次の使用例は、[My Documents] フォルダの中で、ファイル名の拡張子が ".doc" のファイルを
'すべて検索し、条件を満たすファイルの名前と保存場所の一覧を表示します。
'また、検索結果のファイル一覧を、ファイル名の昇順で並べ替えます。

Set fs = Application.FileSearch
With fs
    .LookIn = "C:\My Documents" '■③.LookIn
    .FileName = "*.doc" '■④.Filename
    If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) > 0 Then
        MsgBox .FoundFiles.Count & _
            " 個のファイルが見つかりました。"
        For i = 1 To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
    Else
        MsgBox "検索条件を満たすファイルはありません。"
    End If
End With


'■②.FoundFiles・・FoundFiles プロパティの使用例

'次の使用例は、ファイル検索で見つかったファイルの一覧をチェックし、各ファイルのパスを表示します。

With Application.FileSearch
For i = 1 To .FoundFiles.Count
    MsgBox .FoundFiles(i)
Next i
End With

'■③.LookIn・・・LookIn プロパティの使用例

'次の使用例は、[My Documents] フォルダの中で、ファイル名が "cmd" で
'始まるすべてのファイルを検索し、条件を満たすファイルの名前と保存場所の一覧を表示します。

Set fs = Application.FileSearch
With fs
    .LookIn = "C:\My Documents"
    .FileName = "cmd*.*"
    If .Execute > 0 Then
        MsgBox .FoundFiles.Count & _
        " 個のファイルが見つかりました。"
        For i = 1 To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
    Else
        MsgBox "検索条件を満たすファイルはありません。"
    End If
End With

'■④.Filename・・・FileName プロパティの使用例

'次の使用例は、[My Documents] フォルダに保存されている "cmd" で始まり、
'拡張子が付いているすべてのファイルを検索し、名前と保存場所を表示します。

Set fs = Application.FileSearch
With fs
    .LookIn = "C:\My Documents"
    .FileName = "cmd*.*"
    If .Execute > 0 Then
        MsgBox .FoundFiles.Count & " 個のファイルが見つかりました。"
        For i = 1 To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
    Else
        MsgBox "ファイルは見つかりませんでした。"
    End If
End With

'次の使用例は、検索条件を既定の設定にリセットした後、新しい検索を開始します。

With Application.FileSearch
    .NewSearch '■⑤NewSearch
    .LookIn = "C:\My Documents"
    .SearchSubFolders = True '■⑥.SearchSubFolders
    .FileName = "Run"
    .MatchTextExactly = True '■⑦.MatchTextExactly
    .FileType = msoFileTypeAllFiles '■⑧.FileType
End With

'■⑤NewSearch・・・NewSearch メソッド

'すべての検索条件を既定の設定にリセットします。

'構文

'expression.NewSearch

'expression   必ず指定します。FileSearch オブジェクトを表すオブジェクト式を指定します。

'解説

'検索条件の設定は、アプリケーションを終了するまで保持されます。このメソッドを使用すると、検索条件を変更するたびに不要な条件を削除する必要がありません。なお、このメソッドを実行しても、LookIn プロパティの値はリセットされません。

'使用例

'次の使用例は、NewSearch メソッドを使用して検索条件を既定の設定にリセットした後
'、新しい検索を開始します。

With Application.FileSearch
    .NewSearch
    .LookIn = "C:\My Documents"
    .SearchSubFolders = True
    .FileName = "run"
    .TextOrProperty = "San*"
    .MatchAllWordForms = True
    .FileType = msoFileTypeAllFiles
    If .Execute() > 0 Then
        MsgBox .FoundFiles.Count & _
        " 個のファイルが見つかりました。"
        For i = 1 To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
    Else
        MsgBox "検索条件を満たすファイルはありません。"
    End If
End With


'■⑥.SearchSubFolders・・・SearchSubFolders プロパティの使用例

'次の使用例は、[My Documents] フォルダの中で、ファイル名が
'"cmd" で始まるすべてのファイルを検索し、
'条件を満たすファイルの名前と保存場所の一覧を表示します。
'この使用例では、[My Documents] フォルダのサブフォルダもすべて検索の対象に含まれます。

Set fs = Application.FileSearch
With fs
    .LookIn = "C:\My Documents"
    .SearchSubFolders = True
    .FileName = "cmd*"
    If .Execute() > 0 Then
        MsgBox .FoundFiles.Count & _
         " 個のファイルが見つかりました。"
        For i = 1 To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
    Else
        MsgBox "検索条件を満たすファイルはありません。"
    End If
End With

'■⑦.MatchTextExactly・・・MatchTextExactly プロパティの使用例

'次の使用例は、[My Documents] フォルダの中で、ファイルの内容またはプロパティに "Run"
'という単語が含まれるすべてのファイルを返します。

With Application.FileSearch
    .NewSearch
    .LookIn = "C:\My Documents"
    .TextOrProperty = "Run"
    .MatchTextExactly = True
    .FileType = msoFileTypeAllFiles
End With


'■⑧.FileType・・・FileType プロパティの使用例

'次の使用例は、[My Documents] フォルダに含まれるすべてのバインダー ファイルを検索し、
'見つかったファイルの名前と保存場所の一覧をメッセージ ボックスに表示します。

Set fs = Application.FileSearch
With fs
    .LookIn = "C:\My Documents"
    .FileType = msoFileTypeBinders
    If .Execute > 0 Then
        MsgBox .FoundFiles.Count & _
            " 個のバインダー ファイルが見つかりました。"
        For i = 1 To .FoundFiles.Count
            MsgBox .FoundFiles(i)
        Next i
    Else
        MsgBox "バインダー ファイルは見つかりませんでした。"
    End If
End With

'■LastModified プロパティの使用例

'次の使用例は、ファイル検索のオプションを設定します。
'C:\My Documents フォルダに保存されているファイルの中で、
'昨日更新されたものを検索します。
'また、C:\My Documents フォルダのサブフォルダも検索の対象に含めます。

Set fs = Application.FileSearch
With fs
    .LookIn = "C:\My Documents"
    .SearchSubFolders = True
    .LastModified = msoLastModifiedYesterday
End With

'■MatchAllWordForms プロパティの使用例

'次の使用例は、ファイルの内容またはファイル プロパティに、
'"run"、"running"、"runs"、"ran" のいずれかの単語が含まれるファイルの一覧を返します。
'TextOrProperty プロパティは、検索する単語を設定し、
'検索の対象をファイルの内容またはファイル プロパティのいずれかに限定します。

With Application.FileSearch
    .NewSearch
    .LookIn = "C:\My Documents"
    .SearchSubFolders = True
    .TextOrProperty = "run"
    .MatchAllWordForms = True
    .FileType = msoFileTypeAllFiles
End With

'■PropertyTests プロパティの使用例

'次の使用例は、コレクションに含まれる先頭のプロパティ条件の内容を表示します。

With Application.FileSearch.PropertyTests(1)
myString = "次の条件でファイルを検索します。" _
    & "プロパティ名 : " & .Name & " 。条件 : " _
    & .Condition & " 。"
If .Value <> "" Then
    myString = myString & "値 : " & .Value & " 。"
    If .SecondValue <> "" Then
        myString = myString _
            & " 2 番目の値 (上限) : " _
            & .SecondValue & " 。結合子 : " _
            & .Connector & " 。"
    End If
End If
MsgBox myString
End With

'■TextOrProperty プロパティの使用例

'次の使用例は、C:\My Documents フォルダとそのすべてのサブフォルダの中で、
'ファイルの内容またはプロパティのいずれかに "San" で始まる単語が含まれる
'すべてのファイルを検索します。TextOrProperty プロパティは、
'検索する単語を設定し、検索の対象をファイルの内容またはファイル
'プロパティのいずれかに限定します。

With Application.FileSearch
    .NewSearch
    .LookIn = "C:\My Documents"
    .SearchSubFolders = True
    .TextOrProperty = "San*"
    .FileType = msoFileTypeAllFiles
End With


End Sub

 

2000年01月01日|[VBサンプルコード]:[ファイル]