制御構文とステートメントのWith~End Withは記述の可読性向上のために重要です。
VBAコードを簡潔に記述するステートメントですので、どんどん利用していきましょう。
エクセルVBAのコードの組み立てでは、視認性や可読性を上げるためにできるだけ記述を簡潔にしたいところです。
Withステートメントは、そういったコード記述を簡潔にする役割があります。
こんにちは、じゅんぱ店長(@junpa33)です。
コンテンツ
With~End Withの使い方。VBAコードを簡潔に記述する
記述のルールがあり、方法を理解できればごく簡単に使えるようになると思います。
「例えば・・・」で説明しますと、このようなイメージです。
近畿地方には、大阪府と京都府と兵庫県と滋賀県と奈良県と和歌山県があり近県には徳島県と三重県があります。
これをWithの基本構文を使って説明します。
.ドットはよく書き忘れて構文エラーを出しがちですが、ドットを「の」と読むと書き忘れないと思います。
With 近畿地方
.(の) 大阪府
.(の) 京都府
.(の) 兵庫県
.(の) 滋賀県
.(の) 奈良県
.(の) 和歌山県
End With
四国地方.(の) 徳島県
東海地方.(の) 三重県
になります。
同じグループがある場合、それを纏めるのがWithになります。
大阪府には大阪市と堺市と吹田市と茨木市と東大阪市と羽曳野市があります。といった場合は、
With 近畿地方.(の) 大阪府
.(の) 大阪市
.(の) 堺市
.(の) 吹田市
.(の) 茨木市
.(の) 東大阪市
.(の) 羽曳野市
End With
のようになります。
全く難しくないですよね。
前回の記事でWithステートメントを使っていました。この記事の内容を参考にしていきます。
説明順はこのようになります。
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の独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です
エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできると思います。
エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。
このサイトでよく使うVBAのコードのトピックを纏めています。
今回の記事はここまでです。 最後までご覧いただき有難うございました。