【Excel・VBA】繰り返しの記述を省略する [With~End With]
VBAコードを構築していると
同じ記述を繰り返し記載してしまう事も有るかと思います。
その場合は「With ~ End With」をご検討下さい。
それでは例題とサンプルコードです。
例題とサンプルコード
解説の為、
簡単な例題とサンプルコードを下記に用意しました。
例題
例えば、Sheet1~3まであり
Sheet2に処理を複数行うとした場合、
「Withを使用しない場合」と「使用した場合」を比較してみましょう
サンプルコード(Withを使用しない場合)
ThisWorkbook.Worksheets("Sheet2").Range("A1:A3") = 1
ThisWorkbook.Worksheets("Sheet2").Range("B1:B3") = 2
ThisWorkbook.Worksheets("Sheet2").Range("C1:C3") = 3
サンプルコード(Withを使用した場合)
With ThisWorkbook.Worksheets("Sheet2")
.Range("A1:A3") = 1
.Range("B1:B3") = 2
.Range("C1:C3") = 3
End With
使用の有・無で得られる結果は変わりありません。
しかし、重複した記述が無い分、見やす事は確実です。
何よりスッキリしたコードで、
あとで振りかえっても分かりやすく纏まっている
これは重要ですね。
ちなみにもっと実用的にコードを構築するとなると
Dim mySht1 As Worksheet
Set mySht1 = ThisWorkbook.Worksheets("Sheet2")
With mySht1
.Range("A1:A3") = 1
.Range("B1:B3") = 2
.Range("C1:C3") = 3
End With
といった感じでしょうか?
コードも、よりスッキリした印象ですね。
以上になります。
日常業務のお役に立てれば幸いです。