HOME > エクセルVBA >Withステートメント

Withステートメント

 同じオブジェクトに対する処理、たとえばフォントを「MS ゴシック」「サイズ=10」「太字」「色=赤」に変更する。このような場合指定するセルは同じ範囲であり、Withステートメントを使用して記述するほうがスマートに記述できます。

 Withステートメントを記述しない場合は

Sub test()


Range("A1").Value = "エクセル職人"
Range("A1").Font.Name = "MS ゴシック"
Range("A1").Font.Bold = True
Range("A1").Font.Size = 12


End sub

 上記のステートメントはすべてセルA1に対する記述です。このような場合Withステートメントを利用すると次のような記述になります。

Sub test()


 With Range("A1")
 .Value = "エクセル職人"
 .Font.Name = "MS ゴシック"
 .Font.Bold = True
 .Font.Size = 12
 End With


End sub

 Withステートメントを利用することにより、同じ記述を省略することが出来ます。プログラムが見やすくなるし、後から修正もしやすいのでぜひ覚えておいてください。

 また、Withステートメントはネストすることが出来ます。ネストとは関数のときにも説明しましたが、制御構造文の中に、同じ制御構造文を入れることです。

 先ほどのプログラムでネストしてみると次のようになります。

Sub test()


 With Range("A1")
 .Value = "エクセル職人"
  With Font
   .Name = "MS ゴシック"
   .Bold = True
   .Size = 12
  End With
 End With


End sub

 Withステートメントを利用するとプログラムが楽になるだけでなく、実行速度も向上するので大規模なプログラムになるとその時間は顕著な差が出てきます。

セルの操作5「数式と値のクリア」「書式のクリア」「データと書式のクリア」  エクセル職人  VBAでワークシート関数の利用

▲TOPへ移動