lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

Excel VBAでグルーピングしてセルに色を付ける

概要

第1キーと第2キーが存在するデータで第1キーでグルーピングを行い
セルに色を付けてデータを見やすくします。
まあ、ただのキーマッチングです。

前提

  • ソート済みであること

動作確認

  • office 2010, 2013で確認
  • 100万レコードで実行済み

本番で使用するデータはだいたい1~2万レコード程度で
そのうちインプット時に抽出されシートに出力されるデータは1,000件程度を想定しています。
実行速度は5~10秒くらいです。

暇だったんで100万レコードでも動作するか確認してあります。
※一番大事な読み込みロジックは、まだ記事にしてないんだけどね

想定データ

親キー 子キー 項目A 項目B 項目C 項目D 項目E
1111 0001
1111 0002
1111 0003
1111 0004
2222 0005
2222 0006
3333 0007
3333 0008
3333 0009
4444 0010
4444 0011
6666 0012
6666 0013

ソース

rowGroupingがメソッドを呼び出してるメイン処理になります。
colorSwの方は色設定を実行しているメソッドです。
(サブルーチンとかファンクションとか言った方がいいのかな?)

なるべくコメントたくさん書いたんでここでは解説しなくてOK?

1個1個見て着色してるので50万レコードの有効データで30分くらいかかりました。


gistbb818c3c3cf03e332885580e6076567a

参考

雑感

標準機能でできるよ!ってあれば教えてください。

会社でエクセルマクロ職人となりつつあるので。
VBAネタならいっぱいあります
差し支えない部分だけ心の中のコードを写経で公開します。

家にエクセルねーから参考画像もなければエディターもないのでGistに直接記入するの疲れました。