VBAのWithの意味とは?使い方と注意点も解説

VBA_Withの意味

VBAを勉強していると、コードの中に「With」や「End With」といったコードが何度もでてきます。
Withを和訳すると「~と一緒に」と言った意味になりますが、VBAではどういうことか意味不明ですよね。

[keikou]しかし、このWithは実はとても便利で、知っていることでコードがとても見やすくなります。[/keikou]
そこでこの記事ではVBAのWithの意味と使い方を紹介します。

使い方を知ることで今後の効率化にも繋がりますので、是非知識として習得していきましょう。

 

目次

VBAのWithの意味

VBAでWithを使用すると、同じコードを省略することができます。

例えば前の記事「VBAでワークブックを指定して記述する方法」で紹介したようにブック、シートを指定した場合、複数のコードを入力すると以下のようになります。
[aside type=”lime”]
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。
[/aside]

Workbooks(“Book1”).Worksheets(“sheet1″)というように何度もあると文字を見るのもしんどいですよね。

しかし、Withを使用すれば以下のようになります。

[aside type=”lime”]
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
[/aside]

With ステートメントを使用することでコードをかなり省略することが可能です。

 

memo

マクロで様々な操作を行うには、複数の命令文を書く必要がある。この一つ一つの命令の文をステートメントという

 

VBAのWithの使い方

VBA_Withの意味2

Withステートメントを使用するには3つの注意点があります。

  • 最初にWithと省略したいコードを入力
  • 最後にEnd With
  • Tab を使ってコードを見やすくする

 

WithとEnd With

最初にWithを入れた後、必ず最後にEnd Withを記述する必要があります。

また、End Withを記述した後はコードの省略する意味が終わるので注意が必要です。

 

コードの省略はWithとEnd Withの間のみ効果を表す

 

Withコードを見やすくする

[aside type=”lime”]
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
[/aside]

上記の書き方でも問題なく動作はできますが、VBAを書くときにはなるべく見やすくすることをおすすめします。

なぜならコードを書く本人も見やすいですが、他の人が編集するときにやりやすくなるような配慮が必要です。

一般的なWithの使い方の際は、途中のコードはTabキーを1回押してインデントを付けます。

VBA_Withの意味3

Withを使うメリット

Withを使用する一番のメリットはコードを省略し、文字数を省略できるところでしょう。

しかし、実はそれ以外にもメンテナンスがしやすいというメリットもあります。

 

メンテナンスがしやすい

例えば今までずっとシート1に入力していたのを、フォーマットの変更でシート2に入力することになったとします。

一つずつ入力していたらすべての数字を変更しないといけませんが、Withを使っている場合は修正が1箇所のみで行えます。

VBA_withの意味4

 

まとめ

今回はVBAのWithの意味と使い方について紹介しました。

Withを使用した場合、コードを短く省略することができます。
[keikou]打つ文字数を短くすることができますし、何か修正があったときのメンテナンスする時間を早くすることができ、結果的に効率的な作業に繋がります。[/keikou]

Withは使いこなすと他の人と大きな時間の差が生まれますので、是非おすすめです。

Excelの機能を使いこなすと、仕事の効率化から大きな時間短縮に繋がります。

仕事術のスキルが増えるとプライベートの時間を時間を増やすことができますので、当サイトで得た知識を是非活用していきましょう。

 
[enclose color=”#8fbc8f”]

【ステップ8へ進む▼▼】
[kanren url=”https://xcelworkblog.com/vba-module/”]
[btn]マクロ・VBAのまとめ記事はこちら[/btn]

[/enclose]

 

以下のExcel記事もおすすめです。

[topic color=”orange” title=”おすすめ記事”]

[/topic]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次