1. ホーム
  2. エクセル

[解決済み】VBAの関数から結果を返す方法

2022-03-28 09:58:23

質問

関数から結果を返すにはどうしたらいいですか?

例えば

Public Function test() As Integer
    return 1
End Function

これは、コンパイルエラーになります。

この関数が整数を返すようにするにはどうしたらいいですか?

どのように解決するのですか?

オブジェクトでない戻り値の型は、このように関数名に値を代入する必要があります。

Public Function test() As Integer
    test = 1
End Function

使用例です。

Dim i As Integer
i = test()

関数がObject型を返す場合は Set のようなキーワードがあります。

Public Function testRange() As Range
    Set testRange = Range("A1")
End Function

使用例です。

Dim r As Range
Set r = testRange()

関数名に戻り値を代入しても、関数の実行が終了するわけではないことに注意してください。もし関数を終了させたいのであれば、明示的に Exit Function . 例えば

Function test(ByVal justReturnOne As Boolean) As Integer
    If justReturnOne Then
        test = 1
        Exit Function
    End If
    'more code...
    test = 2
End Function

ドキュメンテーション 機能説明