【VBA】Withステートメントでコードを見やすくする【使い方】

本記事では『Withステートメント』について解説していきます。

 

さっそくですが、下の「A1セルに値・背景色・文字色を加えるコード」を確認してください。

 

上のコードでは「Sheets(“Sheet1”).Range(“A1”)」を何度も書いています。

まだ、この行数であれば少し見づらい程度で済みますが、行数が増えたり、少し分かりづらいクラスを大量に使う場合などはコードの可読性を損うことに繋がります。

なので、こういった同じ記述に対しては『Withステートメント』を用いて省略すると良いです。

スポンサーリンク



Withステートメントの記述方法

『Withステートメント』の記述の仕方は下の通りです。

With object

    [statements(処理)]

End With

 

Withキーワードのあとに、オブジェクト(またはユーザー定義型)を指定します。

省略したい処理の末尾には「End With」を記述して完了です。

 

このWithステートメントを用いることで、入力の手間を省けます

加えて、Withブロックで一連の処理を括ることで対象オブジェクトが明確になり、可読性を高める効果も期待できます

 

Withステートメントの参考コード

ここではWithステートメントの2つのパターンについて解説します。

シンプルなWithステートメントの参考コード

同じオブジェクトのメンバーに連続してアクセスしたい時がありますよね。

例えば、下のような状況とかあります。

 

上のコードの場合、「Sheets(“Sheet1”).Range(“A1”)」を何度も書くのは見栄えが悪いです。

ですが、『With』を用いると下のようになります。

 

Withステートメントのネスト(2重ブロック)

次にWithブロックが複数必要な場合についてです。

例えば、下のようなコードがWithブロックが2重にしたときのモノです。

 

3、4行目が「A1セル」対象にし、6~8行目が「A1セルの文字」を対象にしています。

上のようにオブジェクトが親子関係にある場合は、Withステートメントを入れ子関係にすることで、複数のオブジェクトでもWithブロックで対象にすることができます。

 

スポンサーリンク

コメント