[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しろということみたいです。

コメント

PAGE TOP
Ads Block Detector Powered by codehelppro.com
Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

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