HOME > 初級編 > 「With」を使ってオブジェクト省略

With

Withステートメントを使用することで、オブジェクトの記述を省略することができます。
1つのオブジェクトに対して、複数のプロパティを設定したりメソッドを実行するときにオブジェクトの記述を省略できるため、コードをすっきりさせることができます。

●構文
With 省略対象オブジェクト
.オブジェクトに対する操作等
End With

Withブロックの中は必ず「.」から始まります。
省略オブジェクト.プロパティということです。

早速、Withステートメントを使用していないプログラムと、使用したプログラムを比較して見ましょう。

●Withステートメント未使用
Sub sample()
Range("A1").Borders(xlEdgeLeft).LineStyle = xlContinuous1
Range("A1").Borders(xlEdgeTop).LineStyle = xlContinuous2
Range("A1").Borders(xlEdgeBottom).LineStyle = xlContinuous3
Range("A1").Borders(xlEdgeRight).LineStyle = xlContinuous4
Range("A1").Font.Color = -167769615
Range("A1").Font.Size = 186
Range("A1").HorizontalAlignment = xlCenter7
End Sub

●コードの説明
1.セルの左罫線の設定
2.セルの上罫線の設定
3.セルの下罫線の設定
4.セルの右罫線の設定
5.フォントカラーの設定
6.フォントサイズの設定
7.センタリング

どうでしょうか?なんか同じオブジェクト(Range("A1"))を書き続けるのバカらしいですよね。
では次にWithステートメントを使用した例を見ていきます。

●Withステートメント使用
Sub sample()
With Range("A1")
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Font.Color = -16776961
.Font.Size = 18
.HorizontalAlignment = xlCenter
End With
End Sub


Withステートメントを使うとこんなにもスッキリします。
このWithブロックの中はRange("A1")に対する操作なんだなと、一発で理解することができます。
メンテナンス性の向上にもつながります。





配列 メッセージウィンドウを表示する





inserted by FC2 system