このトピックでは,VBAによってソースデータを読み込んでExcelフォーマットの定型レポートを自動生成する方法を例を交えて紹介します。

ワークシートの特定のセル範囲にデータを貼り付けると別のワークシートにフォーマットされたレポートが表示されるような仕組みを作るのは,ある程度までならワークシート関数のみで実現可能です。しかし,一見すると簡単そうなことができなかったり,あるいは実現できてもユーザーのオペレーションの介在が発生するということも珍しくありません。

典型的なのが,作成するレポートの行数や列数が入力データによって変動する場合(例えば,売り上げデータを品目ごとに集計するとき,出現する品目があらかじめ分からない場合など)で,通常のワークシート関数の組み合わせでフォーマットを用意しておくことは不可能です。Excelはこのようなケースに対応するためにピボットテーブルを用意していますが,それは,自動化を目指す限り生成するレポートの表現力がピボットテーブルの機能に制限されることを意味します。

VBAを使えばこのような制約はなくなり,どんなレポートでも自在に作成することができるようになります。マニュアルでできることはVBAからもできるので,テンプレートシートも何もないところから新しいレポートを作成することも可能です。もちろんコードを書く手間はありますが,コーディングの手法はかなりのところまで定石化できるので,芸術的なテクニックを駆使して込み入ったワークシートを作成するよりは簡単とも言えます。

以下のセクションで,簡単な例題を使ってCSVファイルを入力データとするレポートを自動生成していきます。例題の説明(1. レポート生成の例題)のあと,入力データの取り込みと加工,レポートに貼り付けるデータの準備を行う処理について見ていきます。(2. CSVデータの取り込みと集計)続いて,VBAコードでレポートを生成する2つの方法を紹介します。一つはVBAコードのみでゼロからレポートを生成する方法(3. レポートの作成),もう一つはテンプレートを使用する方法(4. テンプレートを使ったレポート作成)です。最後に,生成したExcelワークブックにVBAコードを付加する方法について紹介します。(5. VBAコードの追加
web拍手 by FC2
inserted by FC2 system