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

Posted by muchag | Excel VBA | 2015-05-20 (水) 18:28:51

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

【環境】
Excel:2010
現象

以前から何度も出くわしているので、前の例は忘れてしまった。
今回の例。

クラスを作成して、setter を配置したところ
呼び出し元でエラー。

  1. class.setHoge (a)

記述して、改行すると、メソッド名と () の間にスペースが。。。

コーディング中に、「修正候補:=」みたいな感じの
「= がないよ~」という案内が出たと思うけど
確かなことは記憶がない。

お試し

「= がないよ~」と言われた気がするので、試しに無意味な変数をかましてみた。

  1. Dim a
  2. a = class.setHoge(a)

確かに、これだと動くw

解決策

でも気持ちが悪いなぁ、と思っていたら、ひょっこり正解に当たった。

あとは、VBAの場合戻り値のない関数を呼ぶ際には「Call」を
先頭につけたほうが安全です。
( なくても呼べる場合もありますが、基本はつけておく。 )

YAHOO! JAPAN 知恵袋:Excel2003 VBAのクラスメソッドの呼び出しに…

あw そゆこと?

  1. call class.setHoge (a)

確かに~!!! ちゃんと動いた。

昔はちゃんと call をつけていたけど、
call がなくても動くので、いつの間にか忘れてた。。。

Excel VBA | 2015-05-20 (水) 18:28:51 |

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

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a comment