Excel VBA ベーシック 模擬問題 模擬試験

Excel VBA ベーシック 模擬問題 第9章 第2問 公開問題

 

次のコードはブック内のシート名、「2」、「3」のセル内に文字列を代入するマクロである。

なおブック内にシートは3枚あり、シート名は左端から下図の順番に並んでいます。

 

上記のとおりには実行できない、間違っているマクロを選択肢中から2つ解答しなさい。

 

 

VBA ベーシック シートとブックの操作

 

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つ解答しなさい。

 

VBA ベーシック シートとブックの操作

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」をダブルコーテーションで囲って指定していますので正しいです。