• ベストアンサー

VBAの関数で引数渡しでエラー

関数呼び出しでObject型を渡したいのですが「引数の型が一致していません」との エラーになってしまいます。 以下のプログラムをどのように修正すればよいのでしょうか? Sub Test() Dim obj As Object Set obj = CreateObject("Scripting.Dictionary")     :   Sample(obj) End Sub Function Sample(obj As Object) End Function

質問者が選んだベストアンサー

  • ベストアンサー
noname#223464
noname#223464
回答No.3

文法エラーですね。 Sample(obj) ↓変更 Sample obj もしくは Call Sample(obj)

その他の回答 (2)

  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.2

Call Sample(obj) と Function Sample(ByRef obj As Variant) としてみてください。 参照 http://www.it-folder.com/indexd.php?document=excel_vba_key_array_sub&docdir=2010 上記では # 参照渡しの場合 Variant 型を指定する。 と記載されていました。 テストしたら Function Sample(ByRef obj As Object) でもいけましたが、Variant 型のほうがいいのかもしれません。

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

例示のコードのどの行でエラーが発生しましたか? プロシージャSampleはFunctionなのに、なぜ呼出時に戻り値を見ない? 戻り値が必要ないなら、Subではダメなんですか?