ファイル ファイル検索関連
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
'●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 |