トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 揺るぎない力編: 第10話「ベーシックに再チャレンジ!」2/4 :Dir関数が返すもの

やってみよう!Excel VBAで業務改善! 新たなる挑戦編|第10話 「ベーシックに再チャレンジ!」

Dir関数が返すもの

「いいところに気がついたね。
ワイルドカードを指定してDir関数を実行すると、条件によっては複数のファイル名が返ることがある。
そのときはファイル名の数だけ、Dir関数を繰り返し、ファイル名を取得する必要があるんだ。
"Dir()"と引数を省略すると、前回に指定したワイルドカードが指定されたものとみなされる。
そして、すでに返したファイル名とは別のファイル名を返してくれるんだ。
これを繰り返し、すべてのファイル名を返すと、Dir関数は空の文字列を返す。
だからDo…Loopステートメントの繰り返し条件を、While buf <> ""と、
変数bufが空の文字列でない間繰り返せ、としているんだ」
「な~る。"Dir()"の役割が理解できました。
それにワイルドカードを指定したときは、いくつファイル名が返るかわからないから、
Do…Loopステートメントで、常に判定しながら繰り返す必要があったんですね!」

Dir関数の引数に指定するファイル名には、ワイルドカードを指定できます。
指定できるワイルドカードは次の通りです。

文字 説明 結果
* 任意の数の文字 B*.xlsx Book1.xlsx、B01.xlsxなど
? 任意の1文字 Book?.xlsx Book1.xlsx、Book2.xlsxなど

「うん、そのとおり。
岬さんは、本当に飲み込みが早いなあ…感心するよ」

一覧にもどる