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を入れるという事です!!
さっぱり分からない説明の為例文を使って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

次回は、色の指定の仕方についてご説明したいと思っています。
最後まで読んでいただきありがとうございました