Excel VBA スタンダード 模擬問題 模擬試験

Excel VBA スタンダード 模擬試験 ランダム順出題 ⓵ 第1問

次のコードを実行した時に表示されるメッセージは【  ①   】である。

【   ①   】に入る適切な語句を解答しなさい。

Sub Exam1()

 Dim A As Long

 With Range("A1").ListObject

  .ListColumns.Add

 A = .ListColumns.Count

  .ListColumns(A).DataBodyRange = "=[@Data3]*0.7"

 End With

  MsgBox WorksheetFunction.Sum(Range("D2:D10"))

End Sub

 

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

【  ①  】3150

解説

【8章 テーブル操作】

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

【構造化参照を使いセルへ入力する】

指定子を使い表します。

[@Data3]などの指定子の表現はシートのセル内のみ使えます。

「@」は入力したセルと同じ行を指定するという意味です。

  *指定方法はセル内に直接入力し指定します。

.ListColumns(A).DataBodyRange = "=[@Data3]*0.7"

本問題では右辺の[@Data3]の記述はセル内に、このセルと同じ行の「Data3」列の値を指定したことになります。

そこに0.7をかけ算した結果を左辺へ代入しています。

構造化参照ではセル内では日本語も使用でき、以下の指定ができます。

テーブルすべて'[#すべて]

データ部分'[#データ]

見出し'[#見出し]

集計部分'[#集計]

*セル内への入力をコードで使用したいときは場合は以下のように””で囲みます。

例 ="テーブル1[#すべて]" 、 "=[@送料]*0.5"

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

【コード解説】

Sub Exam1()

 Dim A As Long

 With Range("A1").ListObject

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

  .ListColumns.Add

'テーブルに列を挿入する。

  A = .ListColumns.Count'

テーブルの列を数え変数に代入する。

   .ListColumns(A).DataBodyRange = "=[@Data3]*0.7"

'挿入した一番右の列4列目に、構造化参照でData3列の値に0.7をかけ算した値を入力する。

End With

 MsgBox WorksheetFunction.Sum(Range("D2:D10"))

'4列目の値の合計を表示する。

End Sub