ファイル名一覧を作成するマクロを作成しよう
ここまで整理できれば、マクロは簡単に作成できます。整理したイメージをマクロにすると下図のようになります。VBEを起動して標準モジュールを挿入し、コードを入力してみましょう。今回入力するマクロコード
大きなポイントは、Dir関数が返したファイル名を変数FileNameに格納している点。詳しい説明は省略しますが、これもDir関数の書き方が1つめと2つめ以降とで違うための対処です。したがって、ファイル名をセルに入力する命令、Do...Loopステートメントの終了条件ともに、変数FileNameを使用して記述しています。
大きなポイントは変数FileName
また、セルB2に入力されたフォルダパスを使って検索できるように、Dir関数の引数を下図のように書き換えます。セルB2に入力されているデータは、RangeオブジェクトのValueプロパティを使って取得します。
ワークシートに入力されたフォルダパスを検索する
なお、処理が終了したことが明確にわかるように、MsgBox関数で「ファイル名一覧を作成しました」というメッセージを最後に表示しています。
ワークシートに入力されたフォルダパスを検索する
エラーが発生しないように対策する
なお、次のような場合にDir関数が実行されるとエラーが発生します。1.【ケース1】フォルダパスを入力するセルB2が空白の状態でマクロを実行した場合
2.【ケース2】セルB2に入力したフォルダパスが存在しない場合
ここでは、【ケース1】に備えて、次のようにコードを追加しておきましょう。このコードは、セルB2が空白だった場合に「コピー元フォルダ名を入力してください。」というメッセージを表示し、「Exit Sub」でマクロの実行を強制的に終了します。このコードを、Dir関数が実行される前に入力してください。
【ケース1】のエラー対策
なお、【ケース2】については、それこそDir関数の出番なのですが、このマクロでは別の方法でこのケースのエラーを回避します。この方法については、連載の後半で紹介します。
ファイル名一覧を作成するマクロの完成
最後に、ワークシート上にボタンを追加して、このボタンに作成したマクロを登録すれば完成です。ワークシートにボタン追加
セルB2にファイル名一覧を作成したいフォルダパスを入力して、「旧ファイル名一覧」ボタンをクリックすると、ファイル名一覧が作成されます。
作成したマクロでファイル名一覧が作成できた