スタンダード 模擬問題

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

次のコードは、ブックを続けて開きメッセージをブック名を表示するマクロである。

以下の空欄に入る適切な語句を選択肢の中から解答しなさい。

・マクロ実行後、最後にアクティブ状態となるブックは【  ①  】である。

Sub Exam1()

 Dim i As Long

  For i = 2 To 5

   Workbooks.Open "C:\Data\" & ThisWorkbook.ActiveSheet.Cells(i, 1) & ".xlsx"

  Next i

   MsgBox ActiveWorkbook.Name

End Sub

excel-vba-standard-test-working-with-files

1.1.xlsx

2.2.xlsx

3.3.xlsx

4.total.xlsx

正解

4

解説 

【4章 ファイルの操作】

【Openメソッド】

パスを指定したブックを開きます。

構文

Workbooks.Open "ファイルパス"

本問題ではセルの値の順番で新たにブックを開く度に、そのブックがアクティブブック、

開いたシートがアクティブシートへと変化します。

・「1→2→3→total」と順番にブックを開きます。

最後のセルの値「total」と名前がついたブックがアクティブブックとなり、メッセージボックスにその名前が表示されます。

excel-vba-standard-test-working-with-files-40

【コード解説】

Sub Exam1()

 Dim i As Long

  For i = 2 To 5

’①For…Nextステートメント 変数の開始値から終了値の間で繰り返し処理をする。

   Workbooks.Open "C:\Data\" & ThisWorkbook.ActiveSheet.Cells(i, 1) & ".xlsx"

’指定したパス(C:\Data\)と、セルに入力された値を組み合わせて、ブックを開きます。

  Next i

’⓵へ戻る。変数「i」の終了値まで繰り返し処理をする。

  MsgBox ActiveWorkbook.Name

’Name プロパティでアクティブ状態のブックの名前を取得し表示する。

End Sub