人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excel VBAについて質問です。

Collectionを戻り値に取る
下記のようなFunctionを定義したのですが、

Public Function ReturnCollection() As Collection
Dim col As New Collection
col.Add ("hoge")
ReturnCollection = col
End Function

このFunctionを呼ぼうとすると
「引数は省略できません」とエラーになってしまいます。

エラーになってしまう原因と対処方法を教えてください。


●質問者: kenk
●カテゴリ:コンピュータ
✍キーワード:ADD as Excel hoge VBA
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● 黒ひよこ
●40ポイント

Collectionはオブジェクトなので、

Functionの返し値代入の頭にSet付ければいくかと。

Letと違って省略不可です。

◎質問者からの返答

ありがとうございます。

解決しました。


2 ● Mook
●30ポイント ベストアンサー

オブジェクトの代入には Set が必要です。

今回の場合、下記のようにしたらうまくいかないでしょうか。

Sub main()
 Set cc = ReturnCollection()
End Sub

Public Function ReturnCollection() As Collection
 Dim col As New Collection
 col.Add ("hoge")
 Set ReturnCollection = col
End Function
◎質問者からの返答

ありがとうございます。

戻り値の設定も通常の代入と同じようにするのですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ