With~End Withは記述の可読性向上のために重要です。
VBAコードを簡潔に記述するステートメントですので、どんどん利用していきましょう。
こんにちは、じゅんぱ店長(@junpa33)です。
エクセルVBAのコードの組み立てでは、視認性や可読性を上げるためにできるだけ記述を簡潔にしたいところです。
Withステートメントは、そういったコード記述を簡潔にする役割があります。
コンテンツ
With~End Withの使い方。VBAコードを簡潔に記述する
記述のルールがあり、方法を理解できればごく簡単に使えるようになると思います。
「例えば・・・」で説明しますと、このようなイメージです。
近畿地方には、大阪府と京都府と兵庫県と滋賀県と奈良県と和歌山県があり近県には徳島県と三重県があります。
これをWithの基本構文を使って説明します。
.ドットはよく書き忘れて構文エラーを出しがちですが、ドットを「の」と読むと書き忘れないと思います。
With 近畿地方
.(の) 大阪府
.(の) 京都府
.(の) 兵庫県
.(の) 滋賀県
.(の) 奈良県
.(の) 和歌山県
End With
四国地方.(の) 徳島県
東海地方.(の) 三重県
となります。
同じグループがある場合、それを纏めるのがWithになります。
大阪府には大阪市と堺市と吹田市と茨木市と東大阪市と羽曳野市があります。といった場合は、
With 近畿地方.(の) 大阪府
.(の) 大阪市
.(の) 堺市
.(の) 吹田市
.(の) 茨木市
.(の) 東大阪市
.(の) 羽曳野市
End With
のようになります。
全く難しくないですよね。
前回の記事でWithステートメントを使っていました。この記事の内容を参考にしていきます。
シートクリアーを目的のメソッド別にVBA最速理解説明順は次のように行います。
Withメソッドを使わない時
Withステートメントを利用しない時のコード記述はこのようになっています。
Sub クリアH()
Worksheets("Sheet1").Cells.Clear
Worksheets("Sheet1").DrawingObjects.Delete
Worksheets("Sheet1").PageSetup.PrintTitleRows = False
Worksheets("Sheet1").PageSetup.PrintArea = False
Worksheets("Sheet1").PageSetup.RightHeader = ""
Worksheets("Sheet1").PageSetup.CenterFooter = ""
End Sub
Withステートメントを使った時1
Withステートメントを利用した時1のコード記述です。
全然、見やすくなりました。
Sub クリアH()
With Worksheets("Sheet1")
.Cells.Clear
.DrawingObjects.Delete
.PageSetup.PrintTitleRows = False
.PageSetup.PrintArea = False
.PageSetup.RightHeader = ""
.PageSetup.CenterFooter = ""
End With
End Sub
Withステートメントを使った時2 入れ子構造
Withステートメントを利用した時2のコード記述です。
入れ子構造になっています。
あまり見やすくなったとは言えないような・・・
Sub クリアH()
With Worksheets("Sheet1")
.Cells.Clear
.DrawingObjects.Delete
With.PageSetup
.PrintTitleRows = False
.PrintArea = False
.RightHeader = ""
.CenterFooter = ""
End With
End With
End Sub
With~End Withの使い方のまとめ
お読みいただいたように、Withステートメントはこのように全く難しくはないのではと思います。
非常に見やすくもなりますので、使える部分ではどんどん使っていく方が吉だと思います。
ちなみに、入れ子構造のWithは、逆に視認性や可読性が悪くなることもあり、
Withステートメントの良さが失われる場合もあると思っておきましょう。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です今回の記事はここまでです。 最後までご覧いただき有難うございました。
<記事内容についての告知>
VBAコードの記述記事においては、その記述には細心の注意をしたつもりですが、掲載のVBAコードは動作を保証するものではりません。 あくまでVBAの情報の一例として掲載しています。 掲載のVBAコードのご使用は、自己責任でご判断ください。 万一データ破損等の損害が発生しても当方では責任は負いません。
アンケートでポイ活しよう!!
アンケートに答えれば答えるほど ”使える” ポイントがたまります。