とあるフォルダに類似したファイル名のエクセルファイルが二つ
① Funa_20200903.xls
② Funa_2020090307.xls
あります。
【やりたいこと】
VBAのDir関数を用いて、ファイル名を取得し、
それぞれのファイルを開けるような動作を出来るようにしたいと考えています。
【やってみたこと】
まず①のファイルを開くマクロを書きました。
Dir関数ではワイルドカードが使えるため、”?”をつかって桁数を分別しようと考え
VBA
1 Dim Funa As String 2 Funa = Dir(ThisWorkbook.Path & "Funa_????????.xls ", vbNormal) 'ファイル名を返す" 3 Workbooks.Open (ThisWorkbook.Path & "\" & Funa) 'Funa?20200903のエクセルを開く
というマクロを書き、回してみたところ、意図通り”Funa_20200903”のファイルを開くことができました。
続いて②のファイルを開くマクロを
VBA
1 Dim Funa As String 2 Funa = Dir(ThisWorkbook.Path & "Funa_??????????.xls ", vbNormal) 'ファイル名を返す" 3 Workbooks.Open (ThisWorkbook.Path & "\" & Funa) 'Funa?20200903のエクセルを開く
と書きました(ワールドカードに”?”を二つ追加しました)。
しかしながら、マクロを回してみたところ開かれたファイルは①でした。
【質問】
なぜ②のファイルを開くことができなかったのでしょうか。
また、②のファイルを開くためにはどの部分の記載を変更すべきなのでしょうか。
(そもそもDir関数は不適でしょうか?)
お手数おかけしますが、ご教授頂けますと幸いです。
状況について、勉強不足のため言葉足らずな部分ございましたらご指摘いただけますと幸いです。
よろしくお願いいたします。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/03 09:36