引数があるメソッドの呼び出しエラー
Excel:2010
以前から何度も出くわしているので、前の例は忘れてしまった。
今回の例。
クラスを作成して、setter を配置したところ
呼び出し元でエラー。
[evba language=”vb” firstline=”” highlight=””]
class.setHoge (a)
[/evba]
記述して、改行すると、メソッド名と () の間にスペースが。。。
コーディング中に、「修正候補:=」みたいな感じの
「= がないよ~」という案内が出たと思うけど
確かなことは記憶がない。
「= がないよ~」と言われた気がするので、試しに無意味な変数をかましてみた。
[evba language=”vb” firstline=”” highlight=””]
Dim a
a = class.setHoge(a)
[/evba]
確かに、これだと動くw
でも気持ちが悪いなぁ、と思っていたら、ひょっこり正解に当たった。
あとは、VBAの場合戻り値のない関数を呼ぶ際には「Call」を
先頭につけたほうが安全です。
( なくても呼べる場合もありますが、基本はつけておく。 )YAHOO! JAPAN 知恵袋:Excel2003 VBAのクラスメソッドの呼び出しに…
あw そゆこと?
[evba language=”vb” firstline=”” highlight=””]
call class.setHoge (a)
[/evba]
確かに~!!! ちゃんと動いた。
昔はちゃんと call をつけていたけど、
call がなくても動くので、いつの間にか忘れてた。。。