機能 "AddWeight"はすべてのペットに重量を追加できます。私はすべての私の動物(Inherit)が同じ名前( "data")のbasicInfo型を持っていることを知っているので、 "AddWeight"関数が適切に処理できると確信しています。異なるタイプの同じ機能を使用するためのvbaのインターフェースの使用
もちろん、Vbaは私にそれをさせません、私はオブジェクトまたはバリアントの関数タイトルで宣言しようとしました。彼らの何も私のために働くものはありません。
誰も創造的なアイデアはありますか?
私はすべての動物のために、この関数を記述するために、私はまた、そのような関数を呼び出すことがエレガント見つからないしたくない:
Call addWeight(Max_Cat.data)
誰かが別のアイデアを持っていますか?コメントで述べたように、事前
Type basicInfo
name As string
weight as integer
height as integer
End Type
Type cat
data As basicInfo
mustacheType As String
End Type
Type dog
data As basicInfo
bark_volume as integer
End Type
Dim Max_Cat as cat
Dim Buddy_Dog as dog
.
. some code
.
Call addWeight(Max_Cat)
Call addWeight(Buddy_Dog)
Public Function AddWeight(petName as object) 'not work also for petName as variant
petName.data.weight =petName.data.weight+50
End Function
なぜクラスを使用しないのですか?または型名を与えるモジュール?モジュール "cat":cat.addweight(catnameとしてのペットの名前) – Pierre
'petName.date.weight = petName.date.weight + 50'ではなく' petName.data.weight = petName.data.weight + 50'を意味しますか? –
@Pierre私はあなたの答えやそのやり方を理解していません、クラスは型として働くことができますか? – David