スタンダード 模擬問題

Excel VBA スタンダード 模擬問題 第8章 第1問 公開問題

次のコードは、2列目が"Germany"であるデータを、見出し行も含め全てSheet5のセルB1へコピーするマクロである。

空欄に入る適切な語句を解答しなさい。

Sub Exam1()

 With Range("A1").【  ①  】.Range

 .AutoFilter 2, "Germany"

  .Copy Sheets("Sheet6").Range("B1")

 .AutoFilter 2

 End With

End Sub

excel-vba-standard-test-working-with-tables-1
正解

【  ①  】listobject

解説

【8章 テーブル操作】

【テーブルの特定】

テーブルを特定する時は以下①~③のように表すことができます。

テーブルのセルからテーブルを特定する。

構文:テーブル内のいずれかのセル.ListObject

本問題のListObjectの次のRangeは単一のセルのことではなくテーブル全体のことを指します。

またRange("A1")も指定していますので①が正解です。

テーブルをRangeとテーブルの固有の名前で特定する。

構文:Range("テーブルの固有の名前")

excel-vba-standard-test-working-with-tables

*テーブルの固有の名前'左上のボックスに表示されるテーブルの名前で「table1」、「テーブル1」など、自動や任意にテーブルにつけられた名前のことです。

テーブルが存在するシートから、インデックス番号やテーブル名でテーブルを特定する。この場合は・ListObjectsコレクションとなり複数形で表します。

・対象のシート. ListObjects (インデックス番号)

例)Sheet("集計表").ListObjects (1)

・対象のシート. ListObjects (テーブル名)

例)Sheet("集計表").ListObjects ("table1")

excel-vba-standard-test-working-with-tables-

【コード解説】

Sub Exam1()

 With Range("A1").ListObject.Range

' セルA1を含むテーブル全体を指定する。

  .AutoFilter 2, "Germany"

' 指定範囲の2列目を「Germany」を条件に絞り込む。

  .Copy Sheets("Sheet6").Range("B1")

' 絞り込んだ結果を指定のシートのセルにコピーする。

  .AutoFilter 2

' 絞り込んだオートフィルターを解除する。

 End With

End Sub

excel-vba-standard-test-working-with-tables-1-3