ULALA'Sブログ

ULALA'Sブログ

2020年09月23日
XML
カテゴリ: VBA
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ 引き続き、今回はテーブルの
行についての
指定方法を記載する。



①Range("テーブル名").ListObject.ListRows
②Range("テーブル名").ListObject.ListRow



下記画像の
​「テーブル行取得」ボタンを押下することで、
テーブル6行目(=Excelの8行目)のデータを
15行目に転記されるように作成してみる。​




ソース
Sub getTableRows()

' 6行目を取得し、セルに転記
Range ("B15"). Value = Range ("テーブル1"). ​ListObject ​.ListRows(6).Range(1).Value​
Range ("C15"). Value = Range ("テーブル1"). ​ListObject ​.ListRows(6).Range(2).Value​
Range ("D15"). Value = Range ("テーブル1"). ​ListObject ​.ListRows(6).Range(3).Value​
Range ("E15"). Value = Range ("テーブル1"). ​ListObject ​.ListRows(6).Range(4).Value​
' 補足:6行目の開始から14個目のデータセルは?
Range ("F15"). Value = Range ("テーブル1"). ​ListObject ​.ListRows(6).Range(14).Value​

End Sub

結果




上記画像の15行目を確認してみる。

タイトルを除くデータ行の6行目について、
それぞれデータが転記できたことを確認。

. ​​​ListObject ​.ListRows(6).Range(14).Value​
​​​についてだが、これは​テーブル内のデータセル
について転記されているので、6行目の1セル目から
右へ数えていく( データがなくなったら次の行のひとつめから)
9行目の2列目が、14番目の値となり、それが転記されている
ことになる。

また、
. ​​​ListObject ​​.ListRows(6).Range( 0 ).Value​​
​​​​​​​​​ ​​とすると、 "左範囲外" が取得できる。
​​
列取得同様、どちらもあまり一般的な使用方法では
なさそうなので、範囲外を指定したらこうなるんだな、​​

程度に抑えておくだけで良いと思う。

​​こちらも​テーブル列の時と同様、範囲とプログラムの
指定方法を記載してみる。​




列の場合、 DataBodyRangeというメンバは存在したが
行には存在しないため、Rangeで取得する ことになる。

また、列の場合​

取得できたのに対し、 行はタイトルを取得する方法が存在しない
※深く調査したらあるのかもしれないが本来の使い方とは異なるので割愛。

次回は構造化参照というちょっと複雑なテーブルデータの
指定方法について記載しようと思う。





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

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


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

PR

プロフィール

ULALA13

ULALA13

カレンダー


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