Withステートメントを使って楽をしよう-Excel VBA Tips

初心者のためのExcel VBA

Withステートメントの使い方

Withステートメントを使えば、何度も同じことを書く手間を省くことができます。Withステートメントを理解するには実際のコードを見るのが手っ取り早いでしょう。

文法

With object

End With

objectとは例えばセルを表すRangeオブジェクト等の総称です。Rangeオブジェクト以外にも様々なオブジェクトを表しています。例えば、Worksheets(“Sheet1”)などもオブジェクトです。ちなみにオブジェクトとはExcelを構成する部品のようなものです。

Withステートメントをあえて使わずに書いたサンプルコード

Withステートメントを理解するには、Withステートメントをあえて使わずに書いたサンプルコードと、実際にWithステートメントによって簡略化されたサンプルコードを見比べるのが一番です。

このサンプルコードを眺めてみると、Worksheets(“Sheet1”)をいちいち書かなくていけないところがとっても面倒くさいですね。Withステートメントはこの例のように同じオブジェクトを何度も何度も書かなくて済むようにするための構文です。ではこのサンプルコードをWithステートメントを使って書き換えてみましょう。

Withステートメントによって簡略化されたサンプルコード

どうでしょうか?だいぶスッキリしましたよね。最初に、
With Worksheets(“Sheet1”)と書くことで、End Withが登場するまでの間、Worksheets(“Sheet1”)を書く必要がなくなります。

入れ子になったWithステートメント

まずはお約束で、Withステートメントを利用しない版のサンプルコードを記載しますね。

Withステートメントは重複しているオブジェクトの表記を省略することのできる便利な技でした。それではこのサンプルコードの「重複しているオブジェクト」を探してみましょう。まず最初に気が付くのは、Range(“A1”)が3つもある点ですね。さらによーく観察すると、Fontというオブジェクトが2つあります。どうやらRangeFontWithステートメントで省略できそうですね。

では以下にWithステートメントで重複したオブジェクトを省略したサンプルコードを記載しますね。

確かに3つあったRangeが1個になり、2つあったFontが1個になりましたね。慣れるまではちょっと読みにくいかもしれませんが、けっして難しいことはありません。慣れれば簡単です!このサンプルコードの特徴はWithステートメントが入れ子になっている点です。Withステートメントの中でもさらにWithステートメントが使えるということですね。

 

使える!Excel VBA Tips集TOPに戻る

 

[AD]自分のペースでゆったり学ぶ Excel VBA

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA