[VBA]関数実行しようとしたら、オブジェクトが必要です(エラー 424)

下のような、関数にRangeオブジェクト送る関数書いて実行しようとしたら

「実行時エラー’424′: オブジェクトが必要です。」

と言われて実行できなかった。

Sub Macro1()
    Dim a As Range
    Set a = Range("A1")
    Test(a)
End Sub

Function Test(a As Range)
    a.Cells(1, 1) = 5
End Function

調べると、Setで変数を指定してないと出るエラーだとか、よく出るんだけど、

Set a = Range(“A1”)

とは記載している。

結論から言うと、Function Testの戻り値を受けるオブジェクトがいないことに対してエラーを出していたようだ。

    Dim m
    m = Test(a)

と、元の4行目で、適当に戻り値を受けるようにしたら走るようになりました。。。

Functionは、戻り値を明示的に返さなくても走るが、受け側は必要なのが解せない。。。

因みに、Subでなく、functionで定義してる関数ですが、call Test(a)でもエラー無く走ったので、戻り値必要ないなら、callしろということみたいです。

コメントを残す

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