同一のオブジェクトに対して複数のプロパティを変更したり、メソッドを実行したりする場合、Withステートメントが便利です。
Withで指定した同一オブジェクトのプロパティやメソッドを記述する場合はオブジェクトを省略してドット”.”から記述します。
Withステートメントを使用すると同一オブジェクトに対する処理を見やすくすることができます。
- With ステートメント未使用
Range("B3").Value = "テスト" Range("B3").Interior.Color = vbYellow Range("B3").Borders.LineStyle = xlContinuous
- With ステートメント使用後
With Range("B3") .Value = "テスト" .Interior.Color = vbYellow .Borders.LineStyle = xlContinuous End With
次のサンプルマクロは現在表示されているシートのA3セルに値を表示し、セルの書式を変更するものです。
Sub sample5_11()
'現在表示されているシートのA3セルに対してプロパティの変更を行います。
With ActiveSheet.Range("A3")
.Value = "これはテストです。"
.Interior.Color = vbYellow 'セル内の色を黄色にします。
'さらにA3セル内のフォントに対してプロパティの変更を行います。
With .Font
.Size = 12 'セル内のフォントサイズを12にします。
.Bold = True 'セル内のフォントを太字にします。
.Color = vbBlack 'セル内のフォント色を黒にします。
End With
End With
End Sub