コードがすっきりするWithステートメント

スポンサーリンク

VBA(マクロ)コードを誰から見ても見やすくする配慮は大事

VBAに慣れてくると人の書いたコードを見ることもあるのですが、人の書いたコードの見にくさを実感しています。
今日はVBAのコードが見やすくなるための記述方法のうち、Withステートメントについてお伝えします。

Withステートメントを覚えておくメリット

私自身はあまりコードを作る際にWithステートメントを使うことは少ないです。ですが、マクロ機能を用いてコードを作成したあと修正しようとしたとき、場合によってはWithステートメントが記録されている場合があります。
そのため、マクロ機能で記録されたVBAコードを編集・改良する際には若干の知識が必要です。

スポンサーリンク

しつこい繰り返しを書かないための記述方法

ある対象に対してたくさんのプロパティを変更する場合に有効です。例えばあるセルに書かれている文字のフォントサイズを変え、太線にして、斜体にして、下線を引き、色を変え、塗りつぶしを変える場合などです。(そんなに頻繁に行うわけではないと思いますが)

Sub Macro1()
Cells(1, 1).Font.Size = 11’セルA1のフォントサイズを11にする
Cells(1, 1).Font.Bold = True’セルA1のフォントを太字にする
Cells(1, 1).Font.Italic = True’セルA1のフォントを斜体にする
Cells(1, 1).Font.Underline = xlUnderlineStyleSingle’セルA1のフォントにアンダーラインを引く
Cells(1, 1).Font.Color = -16776961’セルA1のフォントの色を赤にする
Cells(1, 1).Interior.Color = 65535’セルA1の背景色を黄色にする
End Sub

Cells(1, 1)の部分が共通なので、Withステートメントを用いて表すと以下のようになります。

Sub Macro1()
With Cells(1, 1) ’セルA1について
.Font.Size = 11’フォントサイズを11にする
.Font.Bold = True’フォントを太字にする
.Font.Italic = True’フォントを斜体にする
.Font.Underline = xlUnderlineStyleSingle’フォントにアンダーラインを引く
.Font.Color = -16776961’フォントの色を赤にする
.Interior.Color = 65535’背景色を黄色にする
End With ’セルA1についてまとめた記述を終了する
End Sub

必要な部分をまとめられる

対象となる部分をまとめて記述することで、見やすくなります。マクロ機能で書いたコードは違う部分でWithステートメントを使っていたりする場合もあります。

Sub Macro1()
With Cells(1, 1).Font ’セルA1のフォントについて
.Size = 11’サイズを11にする
.Bold = True’太字にする
.Italic = True’斜体にする
.Underline = xlUnderlineStyleSingle’アンダーラインを引く
.Color = -16776961’色を赤にする
End With ’セルA1のフォントについてまとめた記述を終了する
Cells(1, 1).Interior.Color = 65535’セルA1の背景色を黄色にする
End Sub

どちらでもよいですが、整理しておくと後々編集するのが楽になります。

おすすめ書籍 amazonicon Amazon rakutenicon 楽天 Yahooicon Yahoo検索

コメント