引数があるメソッドの呼び出しエラー

Posted by muchag | Excel VBA |
初回投稿:2015-05-20 (水) 18:28:51 | 最終更新:2015-05-20 (水) 20:10:02

前から気になっていたことがやっと解決したのでメモ。

【環境】
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 がなくても動くので、いつの間にか忘れてた。。。

Posted by muchag | Excel VBA |
初回投稿:2015-05-20 (水) 18:28:51 | 最終更新:2015-05-20 (水) 20:10:02

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment