ULALA'Sブログ

ULALA'Sブログ

2020年09月22日
XML
カテゴリ: VBA
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ ​前回はタイトル行に絞って記載した。
データ行、全体行の3パターンで記載してみる
とのことで記載したが、ちょっと変更させて頂こうと思う。

今回は前回伝えきれなかった、データ行、全体行
という区分けではなく、列の指定方法について
記載してみる。
​※必然的に次回は行の指定方法になるわけだが、、​​



①Range("テーブル名").ListObject.ListColumns
②Range("テーブル名").ListObject.ListColumn



以下画像は前回のものから「テーブル列取得」
というボタンを新たに追加してみた。

ボタンを押下した時に


転記する元データはテーブル1のタイトル部と
データ部の1行目を対象にしている。



ソース

Sub getTableColumns ()
    ' 列名をセルに表示
Range ("B14"). Value = Range ("テーブル1"). ​ListObject ​.ListColumns(1)​
Range ("C14"). Value = Range ("テーブル1"). ​ListObject ​.ListColumns(2).Name​
Range ("D14"). Value = Range ("テーブル1"). ​ListObject ​.ListColumns("値段")​
Range ("E14"). Value = Range ("テーブル1"). ​ListObject ​.ListColumns("日付").Name​

    ' 列データをセルに表示
Range ("B15"). Value = Range ("テーブル1"). ​ListObject ​.ListColumns(1).Range(2)​
Range ("C15"). Value = Range ("テーブル1"). ​ListObject ​.ListColumns(2).Range(2).Value​
Range ("D15"). Value = Range ("テーブル1"). ListObject . ​ListColumns("値段").DataBodyRange(1)​
Range ("E15"). Value = Range ("テーブル1"). ​ListObject ​.ListColumns("日付").DataBodyRange(1).Value​

End Sub

結果



.ListColumns
→テーブルに存在する全列(データ部含む)を表す。

.ListColumns(1)
→テーブルの1列目を表す。( =
.ListColumn ​)
※この場合「お店」列
​​ .Name はつけてもつけなくても良いがパターンとして記載してみた。

.ListColumns(1).Range(2)
→「お店」列の2つ目の値を表すので、上記画像の場合、
 "八百屋A"となる。

 ちなみに​​
.ListColumns(1).Range(1) とすると
 タイトルである"お店"が転記される。

.ListColumns("値段").DataBodyRange(1)
→「値段」列のデータ部の1つ目を表すので、
 上記画像の場合、"150"となる。

 同じく、
.ListColumns("値段").DataBodyRange(0) とすると​
 データ部の0番目 (そんなのないが、、) である、
 "値段"、すなわちタイトル部が転記される。
 ※あまりこういう使い方することは無いと思うが、
 エラーにはならず、値として取得できる為、一応記載。


テーブルと列、データの関係を簡単に
色分けして、範囲で
表してみた。



次回は、行についての指定方法を記載する予定。





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

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


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

PR

プロフィール

ULALA13

ULALA13

カレンダー


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