次のコードは、2列目が"Germany"であるデータを、見出し行も含め全てSheet5のセルB1へコピーするマクロである。
空欄に入る適切な語句を解答しなさい。
Sub Exam1()
With Range("A1").【 ① 】.Range
.AutoFilter 2, "Germany"
.Copy Sheets("Sheet6").Range("B1")
.AutoFilter 2
End With
End Sub
正解
【 ① 】listobject
解説
【8章 テーブル操作】
【テーブルの特定】
テーブルを特定する時は以下①~③のように表すことができます。
①テーブルのセルからテーブルを特定する。
構文:テーブル内のいずれかのセル.ListObject
本問題のListObjectの次のRangeは単一のセルのことではなくテーブル全体のことを指します。
またRange("A1")も指定していますので①が正解です。
⓶テーブルをRangeとテーブルの固有の名前で特定する。
構文:Range("テーブルの固有の名前")
*テーブルの固有の名前'左上のボックスに表示されるテーブルの名前で「table1」、「テーブル1」など、自動や任意にテーブルにつけられた名前のことです。
③テーブルが存在するシートから、インデックス番号やテーブル名でテーブルを特定する。この場合は・ListObjectsとコレクションとなり複数形で表します。
・対象のシート. ListObjects (インデックス番号)
例)Sheet("集計表").ListObjects (1)
・対象のシート. ListObjects (テーブル名)
例)Sheet("集計表").ListObjects ("table1")
【コード解説】
Sub Exam1()
With Range("A1").ListObject.Range
' セルA1を含むテーブル全体を指定する。
.AutoFilter 2, "Germany"
' 指定範囲の2列目を「Germany」を条件に絞り込む。
.Copy Sheets("Sheet6").Range("B1")
' 絞り込んだ結果を指定のシートのセルにコピーする。
.AutoFilter 2
' 絞り込んだオートフィルターを解除する。
End With
End Sub