Excel VBAのCallステートメントに引数を渡す方法!複数の引数も!

Excel VBAのCallステートメントに引数を渡す方法を知りたいときはないでしょうか。


けど、そんな中で悩むことは、

・Excel VBAのCallステートメントに引数を渡す方法がわからない
・Excel VBAのCallステートメントに複数の引数を渡す方法がわからない

ですよね。

今回はそんなお悩みを解決する

・Excel VBAのCallステートメントに引数を渡す方法
・Excel VBAのCallステートメントに複数の引数を渡す方法

についてまとめます!

Excel VBAのCallステートメントに引数を渡す方法は?

Excel VBAのCallステートメントに引数を渡す方法について説明をします。


引数を定義する


まず、呼び出すサブルーチンまたは関数の定義部分で、引数を定義します。
引数元の値を変えたくないので、値渡し(ByVal)を使っています。

Sub MySub(ByVal str As String)

タカヒロ
タカヒロ
()内に変数と型宣言を加えてください。


以下サンプルコードです。受け取った引数の値をメッセージボックスで表示させる内容となります。

Sub MySub(ByVal str As String)
    ' サブルーチンの本体
    MsgBox str
End Sub

タカヒロ
タカヒロ
引数が参照渡しである場合には、ByValの代わりにByRefを使用します。なお、デフォルトでは参照渡し(ByRef)となり記載の省略が可能です。


引数を指定する


次に、Callステートメントでサブルーチンを呼び出す際の引数を指定します。

Call MySub("こんにちは!エク短!")

以下の例では、引数strに”こんにちは!エク短!”を渡しています。

Sub CallMySub()
    Call MySub("こんにちは!エク短!")
End Sub

実行する


サンプルコードを実行してみましょう。
以下のように表示されましたね!

"こんにちは!エク短!"

Excel VBAのCallステートメントに複数の引数を渡す方法

複数の引数を渡す場合には、Callステートメントで引数をカンマで区切って指定します。


引数を定義する


呼び出すサブルーチンまたは関数の定義部分で、引数を複数カンマ区切りで定義します。

Sub MySub2(ByVal str As String, ByVal dt As Date)

タカヒロ
タカヒロ
()内に変数と型宣言をカンマ区切りで加えてください。


以下サンプルコードです。前と同様に複数の引数の値をメッセージボックスで表示させる内容となります。

Sub MySub2(ByVal str As String, ByVal dt As Date)
    ' サブルーチンの本体
    MsgBox str & "今は" & dt
End Sub

引数を指定する


Callステートメントでサブルーチンを呼び出す際の引数を指定します。

Call MySub2("こんにちは!エク短!", Date)

以下の例では、引数strに”こんにちは!エク短!”と今日の日付を渡しています。

Sub CallMySub2()
    Call MySub2("こんにちは!エク短!", Date)
End Sub

実行する


サンプルコードを実行してみましょう。
以下のように表示されましたね!

"こんにちは!エク短!今はyyyy/mm/dd"

VBAの実装手順

実装手順は以下の通りです。

Excel側にVBAを実装していきます。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。

さいごに

いかがでしょうか。

今回は、

・Excel VBAのCallステートメントに引数を渡す方法
・Excel VBAのCallステートメントに複数の引数を渡す方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です