テーブル機能を使うなら列名が使いたい

テーブル機能は便利だ。VBAで読むにしてもデータの範囲が決まっているのがありがたい。

今までは「セルが空白になったら」とか 「UsedRangeの範囲外になったら」「印刷範囲外になったら」などの割合あいまいな終了条件を書くことが多かったからだ。テーブル機能を使う場合、列の内容を取得する場合、EnumやConstで定義した列番号でアクセスするのが一般的だ。

しかし、ACCESSやDBでよく使うような列名が使いたい。だってテーブル機能にはヘッダが合って列名があるじゃん!それ使えないんかい!ということで、以前も紹介した集計処理に使用できる Cursorクラスをテーブル用に作成した。

ブレイク処理対応テーブル読み込みクラス

56行目の LO.ListColumns(strCol).Range(1).Column で列名から列番号に変換をかけている。

テーブルの指定がシートに1つ目固定になっているので適宜修正していただきたい。

非表示行をスキップするようになっているのでそっちも適宜で。

このようなテーブル機能で作成された表を読むこととする。

呼び出し側

どうだろうか。便利だと思うのだが。

ABOUTこの記事をかいた人

はてなブックマークで驚愕の1600越えを記録した伝説が今明らかに! エクセル方眼紙 四天王の1人(ほぼ最弱)窓の杜大賞2014 大賞受賞! Excelを便利にする250以上の機能を体系化したアドインはこちらです。