VBAを勉強していると、コードの中に「With」や「End With」といったコードが何度もでてきます。
Withを和訳すると「~と一緒に」と言った意味になりますが、VBAではどういうことか意味不明ですよね。
講師しかし、このWithは実はとても便利で、知っていることでコードがとても見やすくなります。
そこでこの記事ではVBAのWithの意味と使い方を紹介します。
使い方を知ることで今後の効率化にも繋がりますので、是非知識として習得していきましょう。


VBAのWithの意味
VBAでWithを使用すると、同じコードを省略することができます。
例えば前の記事「VBAでワークブックを指定して記述する方法」で紹介したようにブック、シートを指定した場合、複数のコードを入力すると以下のようになります。
Sub テスト()
Workbooks(“Book1”).Worksheets(“sheet1”).Range(“A1”).Value = 1
Workbooks(“Book1”).Worksheets(“sheet1”).Range(“A2”).Value = 2
Workbooks(“Book1”).Worksheets(“sheet1”).Range(“A3”).Value = 3
Workbooks(“Book1”).Worksheets(“sheet1”).Range(“A4”).Value = 4
End Sub
Workbooks(“Book1”).Worksheets(“sheet1”)というように同じコードが何度もあると文字を見るのもしんどいですよね。
しかし、Withを使用すれば以下のようになります。
Sub テスト()
With Workbooks(“Book1”).Worksheets(“sheet1”)
.Range(“A1”).Value = 1
.Range(“A2”).Value = 2
.Range(“A3”).Value = 3
.Range(“A4”).Value = 4
End With
End Sub



Workbooks(“Book1”)という文字が省略していますね!
With ステートメントを使用することでコードをかなり省略することが可能です。
VBAのWithの使い方





Withステートメントを使用するには3つの注意点があります。
WithとEnd With
最初にWithを入れた後、必ず最後にEnd Withを記述する必要があります。
また、End Withを記述した後はコードの省略する意味が終わるので注意が必要です。
Withコードを見やすくする
Sub テスト()
With Workbooks(“Book1”).Worksheets(“sheet1”)
.Range(“A1”).Value = 1
.Range(“A2”).Value = 2
.Range(“A3”).Value = 3
.Range(“A4”).Value = 4
End With
End Sub
上記の書き方でも問題なく動作はできますが、VBAを書くときにはなるべく見やすくすることをおすすめします。
なぜならコードを書く本人も見やすいですが、他の人が編集するときにやりやすくなるような配慮が必要です。
一般的なWithの使い方の際は、途中のコードはTabキーを1回押してインデントを付けます。





右にズレるだけでもコードの意味を区切って見やすくなりますね!
Withを使うメリット
Withを使用する一番のメリットはコードを省略し、文字数を省略できるところでしょう。
しかし、実はそれ以外にもメンテナンスがしやすいというメリットもあります。
メンテナンスがしやすい
例えば今までずっとシート1に入力していたのを、フォーマットの変更でシート2に入力することになったとします。
一つずつ入力していたらすべての数字を変更しないといけませんが、Withを使っている場合は修正が1箇所のみで行えます。


VBAでコードを作る時には名前など変更することがよくある。修正する場所が少ないことで時間短縮に繋がる
まとめ
今回はVBAのWithの意味と使い方について紹介しました。
Withを使用した場合、コードを短く省略することができます。
VBAで入力する字数を短くすることができますし、何か修正があったときのメンテナンスする時間を早くすることができ、結果的に効率的な作業に繋がります。
Withは使いこなすと他の人と大きな時間の差が生まれますので、是非おすすめです。
Excelの機能を使いこなすと、仕事の効率化から大きな時間短縮に繋がります。
仕事術のスキルが増えるとプライベートの時間を時間を増やすことができますので、当サイトで得た知識を是非活用していきましょう。
【ステップ8へ進む▼▼】









