このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】Callステートメントの使い方(引数に注意あり)

2024年3月13日

今回はCallステートメントの使い方を紹介します。

Callステートメントは他のプロシージャ(Sub, function)を呼び出すために使います。

ちなみにCall無しでも他のプロシージャの呼び出しできるため、そちらの方法も併せて紹介します。

この記事では↓の内容が分かります。

  • Callステートメントの使い方
  • Callステートメント無しで呼び出す方法
  • 引数の注意点

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらうのはいかがでしょうか?
マクロの作成請負をしていますので、こちらからご相談ください。

Callステートメントの使い方

Sub Sample1()
    Call 呼び出すプロシージャ("Hello", "World")
End Sub
Sub 呼び出すプロシージャ(str1 As String, str2 As String)
    MsgBox str1 & str2
End Sub

サンプルコードではCallステートメントを使って、別のプロシージャを呼び出しています。

ステップ実行するとCallステートメントのところで別のプロシージャに処理が移り、メッセージが表示されるのが分かると思います。

Call 呼び出すプロシージャ(引数1, 引数2, …)

Callステートメントを使うときは↑のように記載します。

気を付けて欲しいのは引数を囲むかっこ()が必要になることです。

このかっこを忘れると構文エラーが起こります。

Callステートメント無しで呼び出す方法

Sub Sample2()
    呼び出すプロシージャ "Hello", "World"
End Sub
 
Sub 呼び出すプロシージャ(str1 As String, str2 As String)
    MsgBox str1 & str2
End Sub

別のプロシージャの呼び出しは実はCallステートメント無しでもできます。

呼び出すプロシージャ 引数1, 引数2, …

Callステートメント無しのときは↑のように記載します。

気を付けて欲しいのはCallステートメントと違い、かっこ()を書かないことです。

引数が1つだけのときはかっこ有りでも動くのですが、基本的に書かないでください。
(ちなみに引数が2つ以上のときにかっこを付けると構文エラーとなります)

引数の注意点まとめ

  • Callステートメント有り:かっこを付ける
  • Callステートメント無し:かっこを付けない

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらうのはいかがでしょうか?
マクロの作成請負をしていますので、こちらからご相談ください。

VBA

Posted by やろまい