ディレクトリ内にファイルが存在するかどうかを確認する必要があります。私が考えた 2 つのオプションは、正規表現 ( vbscript.regexp
) を使用してファイルが存在するかどうかを判断することです。もう 1 つのオプションは、FileSystemObject
のFileExists
メソッドを使用することです。
正規表現を使用することの短所は、ディレクトリ内のすべてのファイルをループして、各ファイル名に対して正規表現をテストする必要があることを意味します。第 2 に、正規表現のアプローチは将来 (正規表現) を維持するのが難しくなる可能性があります。ただし、同じファイルの異なるバージョンが存在する可能性があるため、2 つの正規表現をテストする必要があります。ファイルの 1 つについて、頻繁に変更されるファイル名の説明部分があります (わかりました、それは嘘です - ランダムなサイクルで変更されます)。 .
を使用するFileExists
と、両方のファイルを同時にテストでき、各チェックで返されるブール値に応じて処理を続行できます。これに関連する欠点FileExists
は、ワイルドカード マッチングがサポートされていないことです。そのため、説明付きのファイル名を検討する場合、新しい説明を反映するように常に更新する必要があります = メンテナンスの頭痛の種が増えます。しかし、その方が把握しやすく、変更しやすいです。
ファイル名の形式:
Data_Sheet_<yyyymmdd>_D.xlsx // the normal file
Data_Sheet_<yyyymmdd>_D_<some description>.xlsx // the alternate file
ファイル名の<yyyymmdd>
一部は、ファイルが置かれている現在のフォルダーによって決まります。
質問: ファイルを見つけるために、正規表現または単純な FileExists を使用する方が良いでしょうか?
上記のいずれかの方法を Excel vba マクロ内で使用します。