ユーザー定義関数の引数と戻り値の受け渡し~Function~

VBA

ユーザー定義関数の使い方と引数の受け渡し方法について紹介

ユーザー定義関数に引数を渡す

ユーザー定義関数に引数を渡して呼び出す方法を紹介していきます。

Subプロシージャ内で変数messageに文字列を格納して関数testFunctionを呼び出す。

Sub test()
  Dim message As String
    message = "hello world"
    testFunction (message)  //引数として変数messageを渡す
End Sub
※コードの見方
白・・・コード
紫・・・コメント
青・・・プロシージャの宣言
その他・・・コードを見やすくするために使うかも

testFunctionという名前でユーザー定義関数を作成して引数として受け取った変数messageをmsgに格納する。

Function testFunction(msg As String) //messageを受取る
  Debug.Print msg //①
End Function

引数として受け取った文字列”hello world”を出力する。出力が終わったら処理をSubプロシージャに戻す。

ユーザー定義関数の定義の方法については下記を参照

Subプロシージャに戻り値を返す

関数を呼び出して戻り値を受取る方法を紹介

関数に戻り値がある場合は返す値のデータ型を指定する必要がある。

Function testFunction() As String //①
  testFunction = "hello world" //➁
End Function

①関数名の後に記述したAs Stringが返す値のデータ型となる。

➁戻り値の設定は関数名に返す値を格納すること

Sub test()
Dim message As String
    message = testFunction
    Debug.Print message
End Sub

引数が複数ある場合の書き方

引数と戻り値は複数指定することもできる

複数の引数を渡す

引数を2つ渡しで関数を呼び出す方法を紹介します

Sub test()
  Dim message1 As String
  Dim message2 As String
    message1 = "こん"
    message2 = "にちは!"
    testFunction message1, message2 //①
End Sub

複数の引数を渡して関数を呼び出す場合には()カッコを使用せずに変数を(,)カンマで区切る必要がある。

どうしてもカッコを付けて関数を呼び出したい場合にはcallを使用して下記のように呼び出す。

call testFunction (message1, message2)

次に関数を定義する

Function testFunction(msg1 As String, msg2 As String)//➁
  Debug.Print msg1 & msg2
End Function

➁受け取る引数が2つある場合は変数とデータ型を(,)カンマで区切ることで複数の引数を受取ることができます。

文字列を受取るので&で結合して出力します。

タイトルとURLをコピーしました