Public Function test(ByVal x As Integer) As Integer
If x = 1 Then
test = 1 ' does not exit immediately. You must manually terminate...
Exit Function ' to exit
End If
' Still here? return 0 as default.
test = 0
' no need for an Exit Function because we're about to exit anyway.
End Function
オブジェクト以外の戻り値型の場合は、次のように関数名に値を代入する必要があります。
使用例。
関数が Object 型を返す場合は、次のように
Set
キーワードを使用する必要があります。使用例です。
関数名に戻り値を代入しても、関数の実行は終了しないことに注意してください。関数を終了させたい場合には、明示的に
Exit Function
と言う必要があります。たとえば、以下のようになります。ドキュメント: http://msdn.microsoft.com/en-us/library/office/gg264233%28v=office.14%29.aspx
VBAの関数は、関数名そのものを一種の変数として扱います。ですから、"
return
"文を使う代わりに、単にしかし、これでは関数から抜け出せないことに注意してください。この文の後のコードもすべて実行されます。このように、
test
に異なる値を代入する代入文をたくさん作ることができ、関数の最後に到達したときの値が戻り値になります。返り値を関数名に設定するだけでは、Java(または他の)の
return
文とは 正確には 同じではありません。VBでは、正確に同等のものが2行必要ですもしあなたが関数の最後に戻り値を設定していないならば。つまり、VBでは正確な裏付けは次のようになります。
このように、メソッド内の他の変数と同じように、戻り値の変数を使用できることも知っておくといいでしょう。こんな感じです。