ファイルやフォルダを検索する
ファイルやフォルダを検索するにはDir関数を使用します。引数Pathnameに検索したい対象、引数Attributesに検索する対象の種類(ファイルを検索する場合は省略、フォルダを検索する場合は「vbDirectory」)を指定します。Dir関数を実行すると、ファイルが存在した場合は「見つかったファイル名」、存在しなかった場合は「""(長さ0の文字列)」を返します。Dir関数の構文
ここでは、先ほどコピーした「コピー後.xls」を検索してみましょう。下図のようにサンプルを入力してください。Dir関数の結果を受け取る変数「Result」を宣言し、Ifステートメントを使用して、結果が「""」だった場合は「存在しません」、それ以外の場合(ファイルが検索できた場合)は変数「Result」の値(見つかったファイル名)をMsgBox関数で表示します。
ファイルを検索するサンプル
実行すると、ファイルは存在するので、結果は下図のようになります。
ファイルが存在する場合の実行結果
ちなみに、存在しないファイル名を検索しようとすると、下図のように表示されます。
ファイルが存在しない場合の実行結果
なお、Dir関数が「検索したファイル名を返す」ことを活用すると、フォルダ内にあるファイルのファイル名一覧を作成するVBAプログラムを作成できます。
Dir関数を使用してファイル名一覧を作成
便利なリネームプログラム
今回紹介したFileCopyステートメントとDir関数を活用すると、ファイル名をまとめて変更する、簡単なリネームプログラムを作成できます。まず、リネームしたいファイルが保存されているフォルダを指定して、ファイル名一覧を作成します。リネーム元のファイル名一覧を作成
そして、変更後のファイル名を入力します。連番などを付けたい場合はオートフィル機能を活用できますね。Excelならではの機能といえるでしょう。
変更後のファイルを入力
リネーム後のファイルを保存するフォルダを指定して、FileCopyステートメントによるVBAプログラムを実行すれば、リネーム完了です。
リネーム完了
このリネームプログラムの作成方法については、今後、連載の形で紹介していく予定です。ご期待ください。
VBAのスキルを証明する資格試験「VBAエキスパート」
ところで、VBAのスキルを証明する資格試験があるのをご存知ですか? その名も「VBAエキスパート」。認定元である株式会社オデッセイコミュニケーションズは、Officeの操作スキルを認定する世界共通の資格、MOS(Microsoft Office Specialist)やMCAS(Microsoft Certified Application Specialist)を日本で運営している会社ですので、VBAエキスパートは折り紙つきの資格試験といえるでしょう。そのVBAエキスパートが、2009年3月にリニューアルしました。試験の種類は「Excel VBA Basic」「Excel VBA Standard」「Access VBA Basic」「Access VBA Standard」の4科目。ご覧のとおり、バージョンに依存しない汎用的な試験に生まれ変わりました。
VBAエキスパート公式サイト(2009年11月現在)
公式テキストもリニューアル。ExcelVBAの公式テキストの著者は、日本で初めてExcel MVPを受賞した田中亨氏。書籍やWebサイト「Office TANAKA」、セミナー講師などで活躍されている有名な方です。この公式テキストを一読すると、「必要十分な知識」を「体系的に整理」することができます。なかでも、「やってはいけないことは何か」「それはどのように処理すべきか」といったポイントにキッチリと触れている点は、現場を知り尽くした田中氏ならではの内容です。もちろん、試験範囲を網羅していて、本番に似た形式の模擬試験プログラムも提供されています。VBAエキスパートを受験するなら必携のテキストといえるでしょう。
※公式テキストは一般の書店で販売していません。購入は「アオテンストア」にて。
リニューアルの一報を聞き、実際にExcelVBAの科目を受験してきました(Excel VBA Basic、Excel VBA Standardともに無事合格!)。重箱の隅をつつくような奇問はなく、実務でのスキルを証明するのにふさわしい良問ぞろいで手応え十分の資格試験といえます。
Excelを会社の業務で活用するとき、「より効率的に、間違いなく」作業を進めることが重要になってきました。そこで威力を発揮するのがExcelVBAです。Excelを使いこなせるだけでなく、ExcelVBAによるプログラムで業務の効率化を図ることができる。そんな技能を証明できる資格がVBAエキスパートです。
また、間違った方法でExcelVBAを学習すると、「エラーが起きやすい危険なプログラム」や「必要以上に凝ったプログラム」を作成してしまう場合があります。これに対し、公式テキストによるVBAエキスパートの学習は、必要十分な正しい知識を得る機会にもなるでしょう。
VBAエキスパート。オススメの試験です。ぜひ、挑戦してみてください。