- ベストアンサー
VBAのCollectionについて
- VBAのCollectionを使用してアイテムを追加する際に、最新のアイテムを小さい添え字で取得するための方法についての質問です。
- 現在はアイテムを追加する際に、アイテム数が0の場合とそれ以外の場合で異なる表記をしていますが、よりスマートな方法はないか検討しています。
- 質問者は、アイテムの追加部分が増えてくるにつれて表記が複雑になることに困っています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
標準モジュールに以下のようなコードを記述すれば、呼び出し元では 「CollectionAddFoward "あ", abc」とか 「Call CollectionAddFoward("あ", abc)」 の1行で、ご希望の動作をさせることができるかと思います。 (Subの名前は適当につけただけなので、必要に応じて変更して下さい) Public Sub CollectionAddFoward(Obj As Variant, Col As Collection) On Error GoTo エラー処理 Col.Add Obj, Before:=1 終了処理: Exit Sub エラー処理: Select Case Err Case 5 'アイテム不在によるエラー時 Col.Add Obj Case Else '上記以外のエラー時はエラーメッセージを表示 MsgBox Err & ":" & Error$, , "CollectionAddFoward" End Select Resume 終了処理 End Sub ・・・以上です。 もちろん、ご質問文のようなIf文で対応してもOkです。 Public Sub CollectionAddFoward(Obj As Variant, Col As Collection) If Col.Count Then 'アイテム存在時(0以外はTrueと判定されます) Col.Add Obj, Before:=1 Else 'アイテム不在時 Col.Add Obj End If End Sub
その他の回答 (1)
- watabe007
- ベストアンサー率62% (476/760)
>アイテムの追加部分が増えてくるにつれて、この表記はあまりにつらくなってきました。 アイテムの追加部分が増えても "あ" の部分を変数で扱えば上記の5行で済むと思いますが それとも If abc.Count = 0 Then abc.Add "あ" Else abc.Add "あ", Before:=1 かな?
お礼
お二人共に回答ありがとうございました。 とても参考になりました。