スタンダード 模擬問題

Excel VBA スタンダード 模擬問題 ① 第8問 4章-1

以下のコードはセルの値を取得し、マクロが書かれているブックから複数のファイルを一つずつ開くマクロである。【 ① 】に入る適切な語句を答えなさい。

Sub Exam1()

 Dim i As Long

 For i = 2 To 6

  Workbooks. Open _
  "C:¥Local¥” & 【 ① 】. Sheets(1).Cells(i, 1) & ".xlsx"

 Next i

End Sub

ファイルの操作  模擬問題

 

正解

【 ① 】thisworkbook

解説

新たにブックを開く度に、そのブックがアクティブブック、開いたシートがアクティブシートと変化します。
そのような中では、ActiveWorkbookを記述すると変化に対応できません。マクロが記述されているブックは常に固定されているThisWorkbookと指定して正常に動作させることが必要となります。

[コード解説]

Sub Exam1()

 Dim i As Long

' カウンタ変数iを宣言しています。

 For i = 2 To 6

' セル範囲の2行目から6行目までを順番に処理します。

 Workbooks.Open _
"C:\Local\" & ThisWorkbook.Sheets(1).Cells(i, 1) & ".xlsx"

' マクロが書かれているブック(ThisWorkbook)のシート1から
' セル(i, 1)の値を取得し、その値に基づいてファイルパスを組み立て、
' 指定されたExcelファイルを開いています。

 Next i

' ループの終了を示します。

End Sub