[ノンプロ研VBA中級講座3期第6回]テーブル

『コミュニティ「ノンプログラマーのためのスキルアップ研究会」VBA 中級コース3期第6回のツイートまとめです。コンテンツは「テーブル」です。 https://tonari-it.com/community-nonpro-semi/
5
alice @alice37308108

テーブルのセル範囲の取得→4種類 全体を取得 ・ListObjectオブジェクト.Range 個別に取得 ・ヘッダー行  ListObjectオブジェクト.HeaderRowRange ・データ行  ListObjectオブジェクト.DataBodyRange ・集計行  ListObjectオブジェクト.TotalsRowRange #ノンプロ研 #VBA中級講座

2021-10-15 20:40:03
alice @alice37308108

※RangeプロパティはRangeオブジェクトのRangeプロパティとは別物 #ノンプロ研 #VBA中級講座

2021-10-15 20:40:03
根岸 @2a9SouLnhptnIqG

ListObjectオブジェクト .Range:テーブル全体 .HeaderRowRange:ヘッダー行 .DataBodyRange:データ行 .TotalsRowRange:集計行 セル範囲を取得できるプロパティが用意されているので、テーブルに変更が加えられても、コードを変更しなくてOK。 #ノンプロ研 #VBA中級講座

2021-10-15 20:40:28
Takushi✨プログラミング学習中 @Taxi3134

【ListObject からのセル範囲取得】 ・Range  テーブル全体 ・HeaderRowRange  ヘッダー行 ・DataBodyRange  データ行 ・TotalsRowRange  集計行 #ノンプロ研 #VBA中級講座

2021-10-15 20:41:25
alice @alice37308108

テーブルの範囲を変更してもちゃんとデータを取得できるの便利✨ #ノンプロ研 #VBA中級講座

2021-10-15 20:44:37
alice @alice37308108

【フィールド・レコードのコレクション】 →ListObjectオブジェクトの下にある ListRowsコレクションの取得 →ListObjectオブジェクト.ListRows ListColumnsコレクションの取得 →ListObjectオブジェクト.ListCoumns #ノンプロ研 #VBA中級講座

2021-10-15 20:45:52
くのへ@くのへ塾やってます @MasazaneKunohe

#ノンプロ研 #VBA中級講座 テーブルをVBAで操ると、テーブルを移動してもコードはそのままでOK!!

2021-10-15 20:46:05
根岸 @2a9SouLnhptnIqG

ListObjectオブジェクト.ListRows ListObjectオブジェクト.ListCoumns テーブル内の行や列を取得できるコレクション #ノンプロ研 #VBA中級講座

2021-10-15 20:47:24
kudou @kudou32323

テーブル切り取って別のセルへ貼り付けしたら →Addressもちゃんと移行先になる #ノンプロ研 #VBA中級講座

2021-10-15 20:48:45
alice @alice37308108

ListRowsはデータ行だけなのでヘッダー行は含まれない #ノンプロ研 #VBA中級講座

2021-10-15 20:49:33
根岸 @2a9SouLnhptnIqG

ListObjectオブジェクト.ListRows はデータ行のみ (ヘッダー行・集計行は含まない) #ノンプロ研 #VBA中級講座

2021-10-15 20:50:37
alice @alice37308108

テーブルだと行数や列数が変化してくれるのでループするときに便利✨ マジックナンバーにならない #ノンプロ研 #VBA中級講座

2021-10-15 20:51:14
alice @alice37308108

テーブル行の操作 ListRowオブジェクトの取得 ListRowsコレクションを経由して取得する →ListRowsコレクション[._Default](Index) ※インデックスは整数 #ノンプロ研 #VBA中級講座

2021-10-15 20:53:01
alice @alice37308108

テーブル行のセル範囲の取得 ListRowオブジェクト.Range #ノンプロ研 #VBA中級講座

2021-10-15 20:53:40
alice @alice37308108

For Each文によるテーブル行のループ ListRowsコレクションをループさせることによりListRowオブジェクトを取得できる For Each 変数 In ListRowsコレクション  処理 Next 変数 #ノンプロ研 #VBA中級講座

2021-10-15 20:59:41
alice @alice37308108

ListRowオブジェクトはデータベースで言うとレコードなので変数名を「record」にするとわかりやすい #ノンプロ研 #VBA中級講座

2021-10-15 21:00:39
Takushi✨プログラミング学習中 @Taxi3134

【ListRow からのセル範囲取得】 ・Range  1行全体 これだけ #ノンプロ研 #VBA中級講座

2021-10-15 21:02:08
根岸 @2a9SouLnhptnIqG

Dim record As ListRow ListRowの1行を取り出すときの変数名は「record」にすればいいのか~。 (いつも変な変数名つけてた・・・) #ノンプロ研 #VBA中級講座

2021-10-15 21:03:01
alice @alice37308108

テーブル行の追加 →コレクションを使う ListRowsコレクション.Add([Position]) ※Positionはインデックスを表す整数(省略可能)  省略した場合は最終行に追加  1→1行目、2→2行目に追加 ※戻り値は追加したListRowオブジェクトになる #ノンプロ研 #VBA中級講座

2021-10-15 21:06:30
根岸 @2a9SouLnhptnIqG

ListRowsコレクション.Add(インデックス番号) インデックス番号の位置に行を追加する。 省略すると最終行に追加する。 戻り値は追加したListRowオブジェクト #ノンプロ研 #VBA中級講座

2021-10-15 21:06:43
ichihuku@Bizrobo×VBA @ichihuku55

テーブルのデータ追加に配列が使えるのか! #ノンプロ研 #VBA中級講座

2021-10-15 21:09:51
alice @alice37308108

ListRowsコレクションのAddメソッドはListRowオブジェクトを返す ListRowオブジェクトにRangeプロパティをあてることによってRangeオブジェクトにすることができる Rangeオブジェクトにしたら値を代入できる #ノンプロ研 #VBA中級講座

2021-10-15 21:13:39
ichihuku@Bizrobo×VBA @ichihuku55

VBAにテーブル使ってたけどVlookupの検索範囲ぐらいにしか活用してなかった。もうちょっといろいろできそう。 #ノンプロ研 #VBA中級講座

2021-10-15 21:15:27
kudou @kudou32323

スタイリッシュなテーブルの追加の方法を教えてもらった! #ノンプロ研 #VBA中級講座

2021-10-15 21:15:36
alice @alice37308108

Withステートメントを使うとスッキリとテーブル行を追加できる With ListObjects(1).ListRows Dim record As ListRow: Set record = .Add record.Range.Value = Array("Ivy", 24, "banana") End With #ノンプロ研 #VBA中級講座

2021-10-15 21:18:46