100722 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

ULALA'Sブログ

ULALA'Sブログ

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
2020.09.22
XML
カテゴリ:VBA
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​前回はタイトル行に絞って記載した。
データ行、全体行の3パターンで記載してみる
とのことで記載したが、ちょっと変更させて頂こうと思う。

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

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

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

ボタンを押下した時に
14、15行目にデータを
転記する、というシンプルなものを作成。
転記する元データはテーブル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番目(そんなのないが、、)である、
 "値段"、すなわちタイトル部が転記される。
 ※あまりこういう使い方することは無いと思うが、
 エラーにはならず、値として取得できる為、一応記載。


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



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





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

Last updated  2020.09.22 23:44:15
コメント(0) | コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
別の画像を表示
上の画像で表示されている数字を入力して下さい。


利用規約に同意してコメントを
※コメントに関するよくある質問は、こちらをご確認ください。


PR

Profile

ULALA13

ULALA13

Calendar


© Rakuten Group, Inc.