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