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 」 なる記事もご紹介していますので、
一度 覗いてみてくれると幸いです。(当然、無料です。)




  • この記事を書いた人

Nakamura(nkmr)

NakamuraBlog(ナカログ)運営 [ 2.5万PV/月 ] │ブロガー│ 【経歴】IT会社に新卒入社 ▶︎ 通用しない ▶︎ プログラミングに出会う ▶︎ 年間1億円以上のコスト削減プログラムを開発 ▶︎ 会社賞受賞 ▶︎ 少しでも世の中の苦しんでる私と似た人に役に立てればと思いブログを開設。 ● 文系がプログラムと出会って会社員人生が変わった人。 ● 2020年より「嫁を置いて1人旅」の旅動画を投稿開始。

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