Excelのマクロは、単にワークシートの中の操作を自動化できるだけではない。ファイルを開いたり保存したりと、ファイルの操作も可能だ。その機能を応用すると、「指定したフォルダの中にあるファイル名の一覧を作成する」といったことまで、Excelだけで実現できる(図1)。早速、そのマクロを作ってみよう。
ファイル名はDirで調査、繰り返し構文とともに活用
実際のコードが図2。一見難しそうだが、1つひとつの処理を順に追っていくと、何をしているかがわかる。このマクロのポイントは、3つある。
まずは、ファイル名を調べるコード「Dir」の使い方だ。これは、カッコの中の引数にファイルのパスを指定すると、ファイルが存在するときはファイル名が、存在しないときは空欄が計算結果になるものだ[注]。
引数のパスには、すべての文字を表す「*」といった記号(ワイルドカード)が使える。フォルダのパスに「¥*.*」を結合すると、「フォルダ内にあるすべてのファイル」という意味になる。これを引数に指定したとき、Dirは図3のような振る舞いをする。Dirを繰り返し呼び出すことで、すべてのファイル名を調べられる。
図2のコードではDirを、最初の1回はパスを指定して呼び出し、2回目以降は引数を省略し、「Do While~Loop」という構文を使って、何度も繰り返し呼び出している。
[注]Dirの引数は、パスを指定しなければならないが、計算結果はファイル名と拡張子だけになる