- ベストアンサー
Excel VBAの『Call』で呼び出す意味とは?
- Excel VBAのCallは、Subプロシージャなどを呼び出す際に使用されます。具体的には、UserForm1内のCommandButton1_ClickイベントでDATA_CREATEを呼び出す場合、Call DATA_CREATEと記述します。
- しかし、Callを使わずにSubプロシージャを呼び出す方法もあります。例えば、Public Sub CommandButton1_Click()の中で直接DATA_CREATEと記述することでも同様の効果が得られます。
- つまり、Callは必須ではなく、コードを見やすくするために使われることが多いです。特に複数のプロシージャを呼び出す場合には、Callを使うことでコードの組織化がしやすくなります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! すでに回答は出ていますが、 経験上で・・・ 複数Sheetを操作したい場合、シートモジュールでは別Sheetを操作できないコトがあります。 しかし、標準モジュールでは可能です。 Changeイベントなどはシートモジュールになりますので シートモジュールで動かないコードを標準モジュールに記載しておけば 「Call」で呼び出し、別Sheetの操作も可能になることがあります。 そのような場合に「Call」を使ったりします。m(_ _)m
その他の回答 (2)
- FEX2053
- ベストアンサー率37% (7991/21371)
省略可なので、別に書かなくていいんですが、他の言語でも 「サブルーチン」を呼び出すときは「Call」を使うことが多いので、 後で見て分かりやすくするために、あえてつけている人も多い と思いますよ。 サブルーチン名だけ書いていると、一瞬何をやってるのかわから なくなりますから・・・。
お礼
回答ありがとうございました! 他の言語だと、Call必須だったりしますよね~ 色んな言語が混ざって頭がパンクしそうです(笑 回答ありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
>何か意味などありましたら Callステートメントのヘルプをちょっと開いて見てみると ---------------- 解説 プロシージャを呼び出すとき、キーワード Call は省略できます。(以下略) ---------------- と書いてある通り、callを省略してプロシジャ名だけ書いてもcallで実行されてるだけです。 「何か意味」という事で言えば、可読性や、社内などでマクロの書き方ルールを定めている場合にそれに準拠するといった意味があります。
お礼
回答ありがとうございました! callが在っても無くてもあまり変わらないとのことですかね。 callが在ったほうが、このプロシージャに飛んでる!とパッと見て分かるので、これからも書いていこうと思います。 回答ありがとうございました。
お礼
回答ありがとうございました! シートモジュールを使う場合に良くCallを使うのですね! うーん、奥が深いです・・・ 回答ありがとうございました。