次のコードはブック内のシート名、「2」、「3」のセル内に文字列を代入するマクロである。
なおブック内にシートは3枚あり、シート名は左端から下図の順番に並んでいます。
上記のとおりには実行できない、間違っているマクロを選択肢中から2つ解答しなさい。

1.
Sub Exam1()
Sheets(2).Range("A1").Value = ”ABC”
ActiveSheet.Range("A1").Value = ”ABC”
End Sub
2.
Sub Exam1()
Sheets(1).Range("A1").Value = ”ABC”
Sheets(3).Range("A1").Value = ”ABC”
End Sub
3.
Sub Exam1()
Sheets("Sheet2").Range("A1").Value = ”ABC”
Sheets("Sheet3").Range("A1").Value = ”ABC”
End Sub
4.
Sub Exam1()
Sheets("2").Range("A1").Value = ”ABC”
Sheets("3").Range("A1").Value = ”ABC”
End Sub
正解
1,3
解説
【9章 シートとブックの操作】
【シートの指定 左からの位置】
●ブック内で左からシートが何枚目にあるか数値で指定します。
Sheets(番号)
例
Sheets(1)…左から1枚目のシートを指定しますダブルクォーテーションで囲みません。
・非表示のシートにも数値が割り当てられます。
*Sheetsは全ての種類のシートという意味です。
ワークシートのみ指定するときは「Worksheets」指定します。
●アクティブ状態のシート
ActiveSheet
●シート名で指定するときは以下シート名をダブルクォーテーション囲い記述します。
Sheets("シート名")
例
Sheets("Sheet1")
次のコードはブック内のシート名、「2」、「3」のセル内に文字列を代入するマクロである。
なおブック内にシートは3枚あり、シート名は左端から下図の順番に並んでいます。
上記のとおりには実行できない、間違っているマクロを選択肢中から2つ解答しなさい。

1.
Sub Exam1()
Sheets(2).Range("A1").Value = ”ABC”
’左から2番目のシート名「1」を指定しセル内に文字列を代入する。
ActiveSheet.Range("A1").Value = ”ABC”
’アクティブ状態のシート名「3」を指定しセル内に文字列を代入する。
End Sub
誤り。
左から2番目のシートは「1」なので、Sheets(2)はシート名「1」を指定したことになり、
アクティブ状態のシートは図のとおりシート名「3」を指定したことになります。
2.
Sub Exam1()
Sheets(1).Range("A1").Value = ”ABC”
’左から1番目のシート名「3」を指定しセル内に文字列を代入する。
Sheets(3).Range("A1").Value = ”ABC”
’左から3番目のシート名「2」を指定しセル内に文字列を代入する。
End Sub
正しい。
番号を指定すると左からのシートの位置を指定したことになります。
Sheets(1)はシート名「3」を、 Sheets(3)はシート名「2」指定することになります。
3.
Sub Exam1()
Sheets("Sheet2").Range("A1").Value = ”ABC”
’シート名「Sheet2」を指定しセル内に文字列を代入する。
Sheets("Sheet3").Range("A1").Value = ”ABC”
’シート名「Sheet3」を指定しセル内に文字列を代入する。
End Sub
誤り。
シート名「Sheet2」、「Sheet3」指定しているので誤りです。シート名「2」、「3」を指定します。
4.
Sub Exam1()
Sheets("2").Range("A1").Value = ”ABC”
’シート名「2」を指定しセル内に文字列を代入する。
Sheets("3").Range("A1").Value = ”ABC”
’シート名「3」を指定しセル内に文字列を代入する。
End Sub
正しい。
シート名で指定する場合、シート名「2」、「3」をダブルコーテーションで囲って指定していますので正しいです。