中小企業診断士村松です。

普段はシステムインテグレーターとして、お客様の情報化支援を行っています。そうしたなかで、システムにかかわる様々な情報を集計したり、分析したり、報告書にまとめたりといったExcelにからむ業務が日々大量にあります。しかし、多くのデータは最初から定型のExcelのデータとして存在しているわけではなく、システムから吐き出されたCSVファイルだったり、お客様が管理しやすいように加工されたExcelだったり、毎月生成される大量のデータだけのExcelファイルだったりします。

普段Excelを使い慣れているかたはご存じでしょうが、一度定型の一つのExcelにデータとしてまとめられれば、それ以降の加工や集計はExcelの機能の独壇場です。マクロはあるし、関数はあるし、ちょっと凝った処理ならVBAでプログラムもありです。しかし、形式や形態のバラバラなデータを、一つ一つExcelに取り込んで加工して、連携させて、また加工してというのは、非常に手間のかかる作業です。もちろん毎回同じプロセスを繰り返すのであれば、Excelを駆使して自動化は可能かもしれません。しかし、Excelのプログラム(VBA)や関数はExcelの中の話なので、仕組みを埋め込んだExcelを開いてそこから始めなければなりません。

一度自動化の仕組みをVBAで組み込んだとしても、列が増えたり、移動したりすると、その書き換えはプログラムが高度であればあるほど難しくなるというジレンマを抱えます。

わたしは、この精神衛生上、非常によろしくない環境から脱すべく、VBSを使った簡易集計テンプレートを作りました。VBS(Visual Basic Script)は、VBAと言語体系は同じですがExcelの中に埋め込むのではなく、独立したスクリプトプログラム(テキストに書かれたプログラムを直接実行するかたち)として実行するものです。このスクリプトプログラムからExcelをリモートコントロールする方法で、VBAと同じ処理を自由に呼び出してExcelを読み出したり、生成したりすることができます。また、テキストファイルの処理も自在にできますので、CSVも同時に扱うことができます。

とはいえ、これだけではVBAを外だししただけで、Excelのフォームの変更でメンテナンスの手間が複雑なのは変わりません。そこで、VBS/VBAでよくつかわれるDictionaryを駆使した、Excelの簡易操作テンプレートにまとめ、だれでも数十分程度で高度な加工ができるようにしたのです。

本ブログでは、そこで蓄積したExcel加工やCSV操作を容易にするTIPS群を紹介していきたいと考えています。

ちなみに、そんなまどろっこしいことは抜きにして、最終形のテンプレートが欲しいという方は<Support@Info-Advisor.com>にメールをください。