ULALA'Sブログ

ULALA'Sブログ

2020年09月17日
XML
カテゴリ: VBA
​​​​ 前回に引き続き、テーブルについての内容を
記載していこうと思う。



①Range("テーブル名").ListObject.HeaderRowRange



本当は、タイトル行、データ行、全体
と3パターン記載したかったのだが、
タイトル行だけで
いろいろと 罠?
仕掛けられているのが分かったため、

今回はタイトル行に絞って記載してみる。

​​​​​前回の画像に「テーブル行取得」というボタンを
つけて、タイトル行を取得してみる。



ソース
​​​
Sub getTableHeader ()
' ヘッダ行の選択 ​​​

​​    Range ("テーブル1") .ListObject.HeaderRowRange .Activate
​​

    ' ヘッダ行から
​​​    MsgBox ( Range ("テーブル1") .ListObject.HeaderRowRange(1) .Value)​​​
​​​    MsgBox ( Range ("テーブル1") .ListObject.HeaderRowRange(2) .Value)​​​
​​​    MsgBox ( Range ("テーブル1") .ListObject.HeaderRowRange(3) .Value)​​​
​​​    MsgBox ( Range ("テーブル1") .ListObject.HeaderRowRange(4) .Value)​​​

​' 範囲外の取得がどうなるか?​
​​​    MsgBox ( Range ("テーブル1") .ListObject.HeaderRowRange(0) .Value)​​​
​​​    MsgBox ( Range ("テーブル1") .ListObject.HeaderRowRange(26) .Value)​​​
​End Sub​

結果





結果より、
上記までは想像がつく。

結果1枚目は、
Range ("テーブル1") . .ListObject.HeaderRowRange
テーブルのヘッダ行をアクティブにする。
つまり選択状態にすることが確認できた。

Range .ListObject.HeaderRowRange(1)~ (4)
はヘッダ行をひとつずつダイアログで出力している。
ここまでは想定内の結果が得られた。

となると、javaの試験のクセで、テーブルの範囲外を
指定した場合、一体どうなるか?も見てみたくなる。

プログラム上では既に範囲外を表示する2文を追記
しているので、以下がその結果。

.ListObject.HeaderRowRange(0) .Value ​​


なるほど、、 テーブルの枠を超えて外側を
指定することもできる ようだ。

ちなみにもう1列テーブルの左側に増やせば、
​​
.ListObject.HeaderRowRange(-1) .Value ​​
で値を取得することも可能。
※今は存在しないので-1を指定した場合、エラーになる。

では +方向に超えた場合は どうなるか?
たぶん何もないメッセージが表示されるだろう
と思ったのだが、、

.ListObject.HeaderRowRange(26) .Value ​​​​​​​


なんと、 .HeaderRowRange と銘打って
いるのに、​データ部を表示する​ ことが判明。
※これを書く前に発覚したので、
 わかりやすいようにデータがひとつしかない「梨」
 を指定してみた。


テキストにはここまで記載されていないので、
試験として出題されるかは不明だが、覚えておくと
良いかと思う。​​​​​​​​


​​​​​ Excel VBAスタンダード VBAエキスパート公式テキスト [ 田中亨 ] ​​​​ ​​
​​​​​
​​





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2020年09月17日 22時47分30秒
コメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

プロフィール

ULALA13

ULALA13

カレンダー


© Rakuten Group, Inc.
X
Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: