プロが教えるわが家の防犯対策術!

件名の通り、collection型を引数にしたファンクション・サブプロシージャを作成して実行しようとすると「コンパイルエラー:引数は省略できません」が出力されます。

ファンクションの引数を

Private Function Test(ByRef coltest As Collection)
MsgBox ("Test")
End Sub

のように参照渡しにしても同様の結果となります。

ネットで検索してみましたが、解決策になる回答がみつかりませんでした。
collection型に限らない現象かも知れませんが、どなたか解決策をご存知の方がいらっしゃいましたらご教授願えないでしょうか。

<動作環境>
バージョン:access2003
OS:Windows XP professional sp2

A 回答 (2件)

#1さん 括弧つけるときは「Call」が必要ですよ



Dim c As New Collection
Call Test(c)
    • good
    • 2
この回答へのお礼

迅速にご回答いただき誠にありがとうございました。

Callをつけると問題なく実行できました。

しかし、引数の型をString等にした場合はCallがつかなくても
実行できるようです。

VBAの言語仕様なのでしょうか。
(言語を書き忘れていましたが、VBAです)

お礼日時:2008/07/09 13:49

この関数の呼び出し側どうなってます?


c = New Collection
Test(c)
だとコンパイルエラー出たけど
Test c
だと出なかった。

#以前話題になったことあるけど,未だに理解してない
#多分VB.NET以降は両方括弧あって大丈夫だと思う
    • good
    • 0
この回答へのお礼

迅速にご回答いただき誠にありがとうございました。

仰るとおり、Test(c)と記述しておりました。

Test c と記述することで実行できました。

お礼日時:2008/07/09 13:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A