ブック内のすべてのシートのセルA1からセルA3までに文字列を太字で代入するマクロとである。
空欄に入る適切な語句を解答しなさい。
Sub Exam1()
Dim i As Long
For i = 1 To Sheets.Count
【 ① 】Sheets(i).Range("A1")
.Resize(1, 3).Value = "VBA"
.Resize(1, 3).Font.Bold = True
【 ② 】With
Next i
End Sub
正解
【 ① 】with【 ② 】end
解説
【7章 ステートメント】
【With…End With ステートメント】
With ステートメントは、同じオブジェクトに対する複数のプロパティやメソッドを効率的に記述するために使用されます。
●指定の間は省略した記述ができるステートメント
指定の間「.」から始まる語句は省略して記述されています。
構文
With. 省略する対象
「.」から始まる語句
End With
●With. 省略する対象からEnd Withまでは
語句の最初に「.」とついている場合はVBAでは「省略する対象」を指定しているとみなされます。
本問題では、Sheets(i).Range("A1") を基点として、Resize メソッドで2回使用しています。
【コード解説】
Sub Exam1()
Dim i As Long
' i はシートのインデックス番号を表す変数として宣言されています。
For i = 1 To Sheets.Count
' ①1から現在のブック内のシート数(Sheets.Count)までループ処理を行います。
' 各シートを順番に処理します。
With Sheets(i).Range("A1")
'With ステートメントの開始
'Sheets(i): ブック内の i 番目のシートを指定。
' Range("A1"): A1 セルを基点とする範囲を指定。
.Resize(1, 3).Value = "VBA"
' .Resize(1, 3): 基点(A1)を起点に、1行3列(A1 から C1)までの範囲を拡張。
' Value プロパティに "VBA" を代入し、すべてのセルに "VBA" を入力します。
.Resize(1, 3).Font.Bold = True
' .Font.Bold プロパティを True に設定し、A1 から C1 の文字を太字にします。
End With
' With ステートメントの終了。ここまでで Sheets(i).Range("A1") に対する操作が完了します。
Next i
' ①へもどり次のシートに移動し、ループ処理を続けます。
End Sub