With
Withステートメントを使用することで、オブジェクトの記述を省略することができます。1つのオブジェクトに対して、複数のプロパティを設定したりメソッドを実行するときにオブジェクトの記述を省略できるため、コードをすっきりさせることができます。
●構文
With 省略対象オブジェクト .オブジェクトに対する操作等 End With |
---|
Withブロックの中は必ず「.」から始まります。
省略オブジェクト.プロパティということです。
早速、Withステートメントを使用していないプログラムと、使用したプログラムを比較して見ましょう。
●Withステートメント未使用
Sub sample() Range("A1").Borders(xlEdgeLeft).LineStyle = xlContinuous…1 Range("A1").Borders(xlEdgeTop).LineStyle = xlContinuous…2 Range("A1").Borders(xlEdgeBottom).LineStyle = xlContinuous…3 Range("A1").Borders(xlEdgeRight).LineStyle = xlContinuous…4 Range("A1").Font.Color = -16776961…5 Range("A1").Font.Size = 18…6 Range("A1").HorizontalAlignment = xlCenter…7 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")に対する操作なんだなと、一発で理解することができます。
メンテナンス性の向上にもつながります。
配列 | メッセージウィンドウを表示する |
---|