テーブル機能の備忘録 ① テーブルの指定方法
最近頻繁に、テーブルをマクロで操作することが多くなった。
そこで今回、備忘録を兼ね、テーブルについてまとめてみる。
テーブル機能については、既に多くの方が丁寧に解説されている。
詳細説明は、そちらにお願いするとしよう。
設定方法は実に簡単で、主に以下の二通り。
テーブルとして書式設定する表の一部、又は全てを選択し、以下の何れかを行う。
- 「テーブルとして書式設定」ボタンを押す
- Ctrlキーを押しながら、Tを押す。
テーブルとして書式設定ボタンは、ホームタブの「条件付き書式」の右隣。
だから、例え正体が分からずとも、普段から見ている人は多いと思う。
ボタンを押して、テーブルに変換する範囲の指定と、先頭行をテーブルの
見出しとして使用するか否かを決める。
見出しとは、この表で言えば一行目の「名前」「ふりがな」など、その列の情報が何を表しているか説明する情報行を指している。大抵は、あった方が都合が良いと思う。
さて、VBAにおいて、テーブルはListObjectであり、ListObjectsコレクションのメンバーである。だそうな。
docs.microsoft.com
従って、テーブルを変数にセットする場合、変数の型はListObjectまたはValiant(=何でも入る型)の何れかを選択する。こんな感じだ。
Dim Tb As Excel.ListObject
「Excel」を省略して、単に
Dim Tb As ListObject
と書くこともできる。ほとんどの場合は省略されており、私も省略で良いと思う。
※ただし、Word側から操作するなどの場合は省略不可。
ListObjcetは、ListObjcetの集合体、つまりListObjectsコレクションの中の一つだ。
従って変数にセットする際は、以下のように指定する。今回は、二通りのご紹介。
Dim Tb As Excel.ListObject ' 何番目のListObjcetか?で指定する場合。 Set Tb = ActiveSheet.ListObjects(1) ' 名前で指定する場合。 Set Tb = ActiveSheet.listobjcets("テーブル1")
これ以外の方法も有るかもしれないが、私が知る限りはこの二つ。
何番目?で指定する場合、何番目か知らないと指定できない。シート毎に1番から
始まるので、対象シートにテーブルが一つしかない場合は、前者でも充分か。
※番号は、作成順に附番される。
※テーブルとしての書式設定が解除されたり、削除されると、その後のテーブルは
番号が自動的に繰り上がる。
テーブルが複数ある場合、名前で指定した方が確実だ。名前は、テーブルデザインタブで確認することが出来る。
こちらで、名前の変更も可能だ。
次回は、テーブルの範囲についてご紹介。
明日に続きます。
参考まで。