Withステートメントとは 1つのオブジェクトに対してあれこれまとめて指示を出したい!
そんな時使う便利な書き方なので、通常の書き方とWithステートメントを使用した場合を比較してご紹介します。
Withステートメントとは
例文を使ってWithの利用方法をご紹介
A1セルに値を入れて、書式の設定も合わせてしていきます
- A1のセルに「Withの使い方」と記入
- A1のセルのフォントサイズを指定する
- A1のセルのフォントの種類を指定する
- A1のセルのフォントの色を指定する
- 1のセルの塗りつぶしの色を指定する

指定する項目いっぱいでプログラムを書くのが大変そう
Withを使わない場合の書き方
- Worksheets(“Sheet1”).Range(“A1″).Value=”Withの使い方”
- Worksheets(“Sheet1”).Range(“A1”) .Font.Size=16
- Worksheets(“Sheet1”).Range(“A1″) .Font.Name=”メイリオ”
- Worksheets(“Sheet1”).Range(“A1”) .Font.Color =vbRed
- Worksheets(“Sheet1”).Range(“A1”) .Interior.ColorIndex = 1
Withを使う場合の書き方
構文:With オブジェクト名
.プロパティ=値
.メソッド
End With
コード
- With Worksheets(“Sheet1”).Range(“A1”)
- .Font.Size=16
- .Font.Name=”メイリオ”
- .Font.Color =vbRed
- .Interior.ColorIndex = 1
- End With
解説
- セルA1について下記項目を指定する
- フォントのサイズを16ポイントにする
- フォントの種類を”メイリオ”にする
- フォントの色を赤にする
- セルの色を黒にする
- A1についての変更点は以上
Withのネスト(入れ子)の方法をご紹介
入れ子というのはWithのWithを入れるという事です!!
さっぱり分からない説明の為例文を使ってWithのネストについて紹介します
コード
- With Worksheets(“Sheet1”).Range(“A1”)
- .Font.Size=16
- .Font.Name=”メイリオ”
- .Font.Color =vbRed
- .Interior.ColorIndex = 1
- End With
解説
- セルA1について下記項目を指定する
- フォントのサイズを16ポイントにする
- フォントの種類を”メイリオ”にする
- フォントの色を赤にする
- セルの色を黒にする
- A1についての変更点は以上
先ほどの例文ですが、セルA1についてという共通点を元にWithを使ってプログラムを書きましたが、上記の②~④に関してはフォントについての共通点があります。共通点が多いなら更にまとめて書いた方がいいのでは?がネストの考えです。あんまりネストを多用すると逆に読みにくくなる事もあるのでネストはお好みで使用してみてください
ネスト使用コード
- With Worksheets(“Sheet1”).Range(“A1”)
- With .Font
- .Size=16
- .Name=”メイリオ”
- .Color =vbRed
- End With
- .Interior.ColorIndex = 1
- End With
ネスト未使用コード
- With Worksheets(“Sheet1”).Range(“A1”)
- .Font.Size=16
- .Font.Name=”メイリオ”
- .Font.Color =vbRed
- .Interior.ColorIndex = 1
- End With
ネスト使用時のコードの方は、フォントの変更内容が②~⑥にまとめて記述してある形になります。お好みで良かったら使ってみてください。
まとめ
Withステートメントとは…同一のオブジェクトに対してまとめて、プロパティやメソッドの指示を行う時に簡略化してプログラムを記入できる方法。
構文:With オブジェクト名
.プロパティ=値
.メソッド
End With
次回は、色の指定の仕方についてご説明したいと思っています。
最後まで読んでいただきありがとうございました

