0

去年の夏の終わりに仕事のために VBA を学び始めましたが、Google で答えを見つけることができなかったのはこれが初めてです。今週、クラスについて独学し始めましたが、自分のクラスの「インデックス付きプロパティ」を識別できるようにしたい状況に遭遇しました。

それはおそらく最も明確な説明ではないため、ここに仮説的な例を示します。

私がスーパー サンドイッチ ショップ (clsSASS) 用に作成したクラスには、カロリー、グラム単位の重量、価格、および材料のプロパティが含まれています。最初の 3 つは、非常に単純な let ステートメントと get ステートメントを持つ変数です。いいえ:

Public pCal As Integer 

Public Property Get Calories() As Integer
    Calories= pCal
End Property

Public Property Let Calories(Value As Integer)
    pCal = Value
End Property

ただし、Ingredients は、入力順に成分のリストを含むように設計されています。私の最初の本能は、次のようなことをすることでした:

Public pIngd  As Collection

Public Property Get Ingredients(Value As Integer) As Collection
    Ingredients = pIngd(Value)
End Property

Public Property Set Ingredients(Object As Collection)
    Set pIngd = Object
End Property

したがって、ベーコンがリストの最初の材料である場合 (正直に言うと、常にそうなります)、clsNewSandwich.Ingredients(1) のようなものは文字列「ベーコン」を返します。

コンテナー プロパティをクラスに追加したときに問題が発生し、コンテナー内の個々の項目を識別する方法がわかりませんでした。したがって、これはクラスとはまったく関係のない単純な構文の問題である可能性があります。

どうもありがとう!

*明確/連続性のために編集

4

1 に答える 1