VBAメモ メソッドでCollectionを戻り値で返してみる
VBA独特と言うかクセと言うか…なんか困ったのでメモしとくことに。
ざっくりこんな感じ?
- 戻り値にSetを指定する
- 受け取り側で代入する方にSetを指定する
んで、まずは呼び出される方はこんな感じ。
Private Function GetValues() ' コレクションを作成する Dim objValues As Collection Set objValues = New Collection ' お試しの値を設定する objValues.Add "a" objValues.Add "b" objValues.Add "c" ' 値を返すときにSetを指定する Set GetValues = objValues End Function
んで、呼び出す方はこんな感じ。
Public Sub Proto() ' 変数を定義する Dim objCollection As Collection Dim objValue As Variant ' Functionを呼び出す ' 値を取得するときはSetを指定すること Set objCollection = GetValues() ' 値を取得できたかをイミディエイトウィンドウに出力して確認してみる For Each objValue In objCollection Debug.Print objValue Next ' オブジェクトを破棄する If Not objCollection Is Nothing Then Set objCollection = Nothing End If End Sub
実行してみるとこんな感じになった。
a b c
知っていると簡単なんだけど知らんとテンパるな…。
そんなこんなで、明日への自分へのメモで。
ディスカッション
コメント一覧
まだ、コメントがありません