ユーザー定義関数の使い方と引数の受け渡し方法について紹介
ユーザー定義関数に引数を渡す
ユーザー定義関数に引数を渡して呼び出す方法を紹介していきます。
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つある場合は変数とデータ型を(,)カンマで区切ることで複数の引数を受取ることができます。
文字列を受取るので&で結合して出力します。