「ListColumns 見出し For Each」
という検索キーワードでのアクセスが時折あります。
テーブル(ListObjectオブジェクト)の列見出しを、For Each~Nextループで処理するには、どのようなコードを書けばいいのかを探していた方による検索です。
このサイト『インストラクターのネタ帳』では、ListColumnsコレクションからFor Each~NextループでListColumnオブジェクトを順番に取得して、見出し名を取得するサンプルを既にご紹介しています。
他にも見出し名を取得する書き方があります。
見出し名を取得するサンプル
テーブルの存在しているワークシートがアクティブな状態で、以下のSubプロシージャを実行すれば、一つ目のテーブルの列名が、イミディエイトウィンドウに出力されます。
With ActiveSheet.ListObjects(1)
Dim rng As Range
For Each rng In .HeaderRowRange
Debug.Print rng.Value
Next
End With
End Sub
HeaderRowRangeで見出し部分を取得できる
ListObjectオブジェクトに用意されているHeaderRowRangeプロパティを使えば、テーブルのフィールド見出し部分だけを表すコレクションとしてのRangeオブジェクトを取得できます。
取得したコレクションとしてのRangeに対してFor Each~Nextループを回して、RangeオブジェクトのValueプロパティで取得した、セルのデータ(文字列)を出力しているのが、上記のSubプロシージャです。
最終更新日時:2019-11-12 10:33
- Newer:python-pptxなら表内テキストを2重ループを使わず取得できる
- Older:Pythonで年を取得する
Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » テーブル見出しをFor Each~Nextで-HeaderRowRange