今回はWithステートメントについてお話します。

 

ステートメントとは「発言、声明」などの意味を表しますが、VBAでは「プログラムの一つの一つの文」と捉えていただければわかりやすいかと思います。

 

では早速いきましょう。

スポンサーリンク

Withステートメントとは?

With オブジェクト
  オブジェクトに対する処理
  オブジェクトに対する処理
  …
End With

これが基本形です。

 

ある一つのオブジェクトに対して2つ以上の指示を行う場合、Withステートメントを使用すれば、そのオブジェクト名を省略できるということです。

 

例えば日本語では

田中さんのペン
田中さんの靴
田中さんの帽子

これを

田中さんのペン
〃    靴
〃    帽子

こうやって書くことができますよね?

 

つまり「〃」はVBAでは「With~End With」と書くと覚えて下さい。難しく考えなくて大丈夫です。

スポンサーリンク

Withステートメント実践編

では実際のコードを見てみましょう。

Worksheets(“sheet1”).Range(“A1”) = 1
Worksheets(“sheet1”).Range(“A2”) = 2
Worksheets(“sheet1”).Range(“A3”) = 3

Worksheets(“sheet1”)の部分が同じですよね。これは下のように書くことができます。

With Worksheets(“sheet1”)
  .Range(“A1”) = 1
  .Range(“A2”) = 2
  .Range(“A3”) = 3
End With

こんな感じですね。

 

1行2行ならいいのですが、ある程度の規模のシステムを作るとなるとWithステートメントが必要になってきます。

 

ちなみにWithとEnd Withの間のステートメントがちょっと右にずれていますよね?

 

これのやり方はTabキーを一度押すだけです。これを行うことによりコードが見やすくなります。

 

日本語でも段落が変わる毎に1文字空けますよね。イメージ的には同じようなものです。

 

Withステートメントの注意点としてはEnd Withを付ける事。これを忘れるとエラーが発生しますので必ず付けるようにして下さい。

 

それではWithステートメントについては以上になります。お疲れ様でした。

 

次回はFor~Next ステートメントについてお話します。

>>Excel VBA講座 目次はこちら