先日、仕事で複数のエクセル表のデータを1つの表にまとめるということをしました。エクセルVBAでプログラムを作って自動で行いました。
そのときの構成を説明します。
複数の表のデータを1つの表にまとめるには
いくつかの製品の検査結果が書かれたエクセルシートがたくさんありました。そこには各検査の結果が〇×で書かれています。これらのシートは各検査担当が検査を行って結果を書き込んでいくのです。まだ全部終わっていないものもあります。

それぞれのシートから、〇と×の数を数えます。シートごとに検査がどれだけ進んでいるか、Pass(〇)とFail(×)がいくつあるかを以下のような1つの表にまとめるのです。

これを関数を使って行うこともできなくはありません。各シートに〇や×の数を合計する欄をつけて、集計表からはそのシートを参照するようにすればできます。
けれども表が追加されたり、〇×に加えて△も書かれるようになった、などというときには関数を修正するのがえらく大変になってしまいます。それに記述を間違えて誤った集計結果を作ってしまう可能性も高いのです。関数には限界があります。
一方、エクセルVBAでプログラムを作って集計結果をまとめるようにすれば、そんな心配はありません。
表を1つづつ見て、〇と×の数を数え、集計表に書き込む。それをシートの数だけ繰り返せばいいのです。
シートが増えても大丈夫!

シートやファイルが増えたり減ったりしてもいいように、例えばこの図のように、ファイル名とシート名のリストを表に書いておきます。そしてボタンを押すとプログラムが動き出して書かれているファイル名とシート名から1つづつ表のデータをゲットして集計します。
シートが増えたらこの表に書き足せばいいのです。プログラムが自動的に処理してくれます。
ここで、各シートのフォーマットが微妙に違って、書かれているデータのセルが違うこともあるでしょう。本当は全部の表のフォーマットを統一しておきたいところですが、いろんな事情で勝手に変えられないこともよくある話です。
でも大丈夫。上の図のようにシート名の隣の列に、それぞれのシートでデータが何行目の何列のセルから始まるかを書いておきます。その位数字を読めば、プログラムは正しいデータを読み込むことができます。
エクセルVBAのプログラミングは難しくない!

そんなプログラムを作るなんて難しそうだ、と思うかもしれません。でもやり方をちょっと知ってしまえば、そう難しいものではありません。パズルを解くような感覚で作っていけるので楽しいですよ。
それに一からすべて作らなくても、すでに作ってあるサンプルプログラムを部分的に編集するとかすればプログラム作成は楽になります。
こんなふうに表の編集を自動でできるようになったら仕事が楽になると思いませんか。
そのスキルを身につけておけば、職場で「頼りになる人」になれますよ。同僚に貸しを作っておけばいいことがあるかもしれません。
エクセルのプログラミングをちょっとやってみませんか?
エクセルプログラミング初級勉強会

少人数制の勉強会を毎月行っています。
4/20(土)秋葉原、4/28(日)横浜
横浜や東京で毎月やっています。3時間の勉強会で5000円。
クイズ形式で教えるなど、初心者向けにの夫をしています。詳しくはこちら。
コメント