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分くらいかかりました。
参考
雑感
標準機能でできるよ!ってあれば教えてください。
会社でエクセルマクロ職人となりつつあるので。
VBAネタならいっぱいあります
差し支えない部分だけ心の中のコードを写経で公開します。
家にエクセルねーから参考画像もなければエディターもないのでGistに直接記入するの疲れました。