リストの全体、見出し、データを選択します

 少し間が空きましたけど、データベース研究所の記事ですよ。

 今回からいよいよ VBA を使ってテーブルデータを制御する方法を解説します。ワークシートのデータをテーブルに変換すると、そのデータ範囲は ListObject オブジェクト として VBA で操作できるようになります。もう少し細かく言うと、作った順番に

ListObjects(1), ListObjects(2), ......

というように自動で分類されます。でも ( ) の中は自分で名づけたテーブル名で扱うこともできますよ。そうしたことも含めて、これから少しずつ ListObject オブジェクト に慣れていきましょう。

 今回の記事では リストの全体、見出し、データの選択 について学びます。
 

データを用意します

 今回は次のような氏名と住所のデータを使って解説します。
 練習してみたい人は持ち帰ってくださいな。もちろんご自身で適当なデータを用意してくださってもかまいません。今回は見出しなどを選択するだけなので、データの中身は何でもいいのです。

氏名 住所
筆 玉枝 東京都目黒区目黒 3-46-11
井方 勝二郎 東京都板橋区赤塚 1-23-10
津高 君章 東京都板橋区若木 2-5-8
女部田 辰之助 東京都葛飾区白鳥 7-4-12
保手 真梨江 東京都荒川区西日暮里 5-33-7

 ワークシートは新しいものを用意してください。上のデータを適当な場所にコピーして [ホーム] ⇒ [テーブルとして書式設定] を順に選択してテーブルに変換します。そのとき現れるダイアログボックスでは必ず [先頭行をテーブルの見出しとして使用する] チェックボックスを ON にしておいてくださいな。
 

リスト全体を選択します

 まずはテーブル範囲全体を選択する簡単なマクロを書いてみましょー。

 Sub リスト全体を選択()
  ActiveSheet.ListObjects(1).Range.Select
 End Sub

 このマクロを実行するとテーブル範囲全体が選択されます。

 ListObjectsリスト全体を選択

 テーブルの範囲は ListObject オブジェクトでは参照できません。
 必ず Range プロパティで Range オブジェクトを取得しておきます。
 

リストの見出しを選択します

 次は見出しの部分を選択してみましょー。
 これも簡単ねー。HeaderRowRange プロパティを使います。

 Sub リスト見出し行選択()
  ActiveSheet.ListObjects(1).HeaderRowRange.Select
 End Sub

 マクロを実行すると ......

 ListObjectsリスト見出しを選択

 このようにテーブルの見出しが選択されますよ。
 

リストのデータ部分を選択します

 応用上は見出しを除いたデータ部分を得るのが最も実用的になります。
 その場合は DataBodyRange プロパティで範囲を得ることになります。

 Sub データ部分選択()
  ActiveSheet.ListObjects(1).DataBodyRange.Select
 End Sub

 で、このマクロを実行すると ......

 ListObjectsリストのデータ部分を選択

 ちゃんとデータ部分だけが選択されていますね!
 次回もまた ListObject オブジェクト について色々と学びます。
 あー、それからね、「リストオブジェクトオブジェクト」て音が重なってるけど、これは別に誤字ではありませんよ。ちょー読みにくいけどね。

 ≫ データベース研究所

Google広告
スポンサーリンク
スポンサードリンク
末尾大型広告
末尾大型広告

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください