第七回目 SCHOOL OF VBA 講義内容

こんにちは。伊川(@naonaoke)です。

今回は、Withステートメントを紹介します。

Withステートメントは、非常に便利な機能です。

しかし、初学者の基本書には、ほんの一部しか紹介されていません。

もちろん、このブログでも全部は紹介できませんが、少し、違うことも紹介します。

Withステートメント

With~End Withの間では、同じ言葉を省略できるということです。

私のイメージとしては、中学校の数学の中で、共通因数で括るということを勉強したと思います。

同じオブジェクトに対して複数の処理を実行するときに使う方法です。

共通因数でくくる
例えば、ax+bx⇒ x(a+b)ということを勉強しました。
私は、この感覚でWithステートメントを理解しました。

 

Withステートメントを使わないで、セルA1に 伊川直助を表示する


上の図のコードを実行します。


上の図のような結果になります。

しかし、Range(“A1”)という言葉が何度も記載しなければならず、また、見栄えも悪いです。

Withステートメントを使って、セルA1に 伊川直助を表示する


今度は、上のコードを実行します。


全く同じものが、セルA1とセルA2に表示されました。

Range(“A1”)が省略されて、すっきりしたと思います。

Withステートメントを使って、ワークシート関数を使う


上のコードを実行します。


セルC1にCountA, セルC2にSUMが実行されました。

ここで重要なのでは、必ずしも、コードのはじめに、ピリオド【.】が無くても良いのです。

結構、勘違いしている方もいらっしゃるので、気を付けましょう。

私はこのコードを見たときは、感動しました。

伊川
この本は本当にわかりやすいです。
VBAを勉強したい方、Excelでデータベースを作成したい方は、
ぜひ、一読してみるといいです。
created by Rinker
¥1,889 (2020/12/04 11:34:01時点 Amazon調べ-詳細)

 

 

Withステートメントについて思う オブジェクト指向

今から話すことは、覚えなくてもいいです。

読みたくない人は、読み飛ばしてください。

プログラムを作成する際に、概念的な考え方ですが、オブジェクト指向というのがあります。

その、オブジェクト指向の中に、カプセル化というのがあります。

つまり、1つのブロック(カプセル)を作成します。

そのカプセルの中にあるコードは、他のコードに影響を与えないということです。


このように考えると、IF構文は、Endifで1つのカプセルを作成します。

Select Case構文は、End Selectで1つのカプセルを作成します。

正しいのかはわかりませんが、オブジェクト指向は、今後のプログラムを作成するのに重要な概念です。

ぜひ、言葉だけでも覚えてください。

ここがポイント

ここがポイント
Function8.png
Withステートメントは、コードが見やすくなるデバックがあっても修正がカンタン色々理由があり、VBAの上級者は頻繁に利用するのだと思います。

 

まとめ

次回は、端から端までをループで実行します。


今回のサンプルファイルは、ありません。

サンプルファイル
VBAを勉強中の悩みを解決
  • なんで動かないの?
  • もうやだ!
  • どこにも情報がない!
スポンサーリンク

Twitterでフォローしよう

おすすめの記事