VBA Withは同一のオブジェクトの複数のプロパティとメソッドを組み合わせて、同じオブジェクト名の繰り返しに書き込みを回避し、プログラミングと操作の効率を向上させます。
目次
Withのステートメント
With構造は、WithとEnd Withの2つのステートメントで構成され、オブジェクトのプロパティとメソッドはその間に記述されます。 基本的なステートメントは次のとおりです。
With [オブジェクト]
.[プロパティ] = [データ]
.[メソッド]
'他のプロパティとメソッド
End With
Withステートメントでは、オブジェクトのプロパティとメソッドはドット(.)記号で始まり、その後にオブジェクトのプロパティ名とメソッド名が続きます。
Withステートメントの例
次には例を挙げます。ワークブックでSheet1に新しい名前を設定し、ラベルの色を黒に設定して、最後にワークシートを非表示にします。
With構造を使わないと、コードは次となります。
Sub MyCode()
Worksheets("Sheet1").Name = "新しい名前"
Worksheets("Sheet1").Tab.ThemeColor = xlThemeColorLight1
Worksheets("Sheet1").Visible = xlSheetHidden
End Sub
ご覧のとおり、各ステートメントはWorksheets( “Sheet1″)の部分を反復に書き込みます。
With構造を使用すると、同じオブジェクト名を反復に書き込むことを回避できます。コードは次のとおりです。
Sub MyCode()
With Worksheets("Sheet1")
.Name = "新しい名前"
.Tab.ThemeColor = xlThemeColorLight1
.Visible = xlSheetHidden
End With
End Sub
With構造に子オブジェクトをネストする
With構造はネストすることもできます。つまり、With構造では、親オブジェクトのプロパティが他のオブジェクトである場合、この子オブジェクトに対してWith構造を使い続けます。
上の例では、ワークシートSheet1のA1:A10セル領域の背景色を設定し、フォントとフォントサイズを調整する必要がある場合は、次のコードを使用してください。
Sub MyCode()
With Worksheets("Sheet1")
.Name = "新しい名前"
.Tab.ThemeColor = xlThemeColorLight1
.Visible = xlSheetHidden
With .Range("A1:A10")
.Interior.ThemeColor = xlThemeColorAccent1
.Font.Size = 12
.Font.Name = "MS Mincho"
End With
End With
End Sub
まとめ
この記事では、VBAプログラム構造のWith構造について勉強しました。 With構造では、同一のオブジェクトの複数のプロパティとメソッドを組み合わせて、オブジェクト名の重複を回避できます。 さらに、With構造をネストすると、プログラミングとプログラム操作の効率をさらに向上させることができます。
コメントを残す