非表示にできる< 目次 >
本記事の信頼性
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を呼び出せるコード ということになります。
はてな
別記事の「Chapter 2 -Sub~EndSub」で説明しているため そちらを参照下さい。
-
【Chapter 2-基本/動作】超初心者から始めるEXCEL VBA【1週間で分かる】
続きを見る
Callの使用方法
Callでは、別で作成したSub~EndSubを呼び出せます。
<Callの使用方法>
1 |
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 」 なる記事もご紹介していますので、
一度 覗いてみてくれると幸いです。(当然、無料です。)