ALL EXCEL Program Tips VBA

【解説付】VBA-Callの理解と注意点│完全理解│【EXCEL VBA】

本記事の信頼性

Nakamura(@nkmr_dai

本記事で分かること

本記事では、以下のことが分かります。

ポイント

EXCEL-VBAのCallを理解することができる

Callって何?

Callとは、VBA動作中に別マクロを呼び出せるコードとなります。
マクロAの動作中にマクロBを呼び出すことが出来る、ということです。

ここでCallを理解するための予備知識を説明すると、
EXCEL-VBAでは、「Sub~EndSub」を1つの単位にプログラムが実行されます。

マクロAは「Sub〜EndSub」で構成され、当然ですが、
マクロBも「Sub〜EndSub」で構成されています。

Callとは、言い換えれば Sub〜EndSubを実行中に別のSub〜EndSubを呼び出せるコード ということになります。

はてな

もしSub〜EndSubについて、もっと知りたい方がいましたら
別記事の「Chapter 2 -Sub~EndSub」で説明しているため そちらを参照下さい。
【Chapter 2-基本/動作】超初心者から始めるEXCEL VBA【1週間で分かる】

続きを見る


Callの使用方法

Callでは、別で作成したSub~EndSubを呼び出せます。

<Callの使用方法>

Callの注意点

Callを通じての変数(保存BOX)利用には 注意が必要です。

変数には有効範囲があり、
Call使用時によく間違えてしまう箇所になります。

変数の有効範囲を知っておきましょう

Sub ~EndSub内で宣言(Dim)した変数

Sub ~End Sub で囲われた間で宣言した変数(Dim a As String)は、
宣言したSub ~End Sub 内のみ有効です。

ポイント

有効範囲:Sub~EndSubのみ

Sub ~EndSubの外で宣言(Dim)した変数

Sub ~End Sub ので宣言した変数(Dim a As String)は
宣言したモジュール内でのみ有効です。

ポイント

有効範囲:宣言したモジュール全体

Publicで宣言した変数

Publicで宣言した変数は全モジュールで有効です。

有効範囲:全モジュール


終わりに

いかがでしたでしょうか。

Callは便利な反面、管理も変数も複雑となりやすいので、しっかり管理して利用していただければ良いかなと思います。

こちらは宣伝になりますが、
もしVBA全般のルール・基本知識を身に付けたい方がいらっしゃいましたら、
本ブログでは「1週間で分かるVBA 」 なる記事もご紹介していますので、
一度 覗いてみてくれると幸いです。(当然、無料です。)




-ALL, EXCEL, Program, Tips, VBA
-,