3

初めてVBAでクラスを作ろうとしています。いくつかの解決策を調べましたが、クラスに問題はありませんが、テスト コードを実行すると、整数は正しく返されますが、文字列は空になります。

クラス

Property Let Name(strName As String)
    pName = strName
End Property
Property Get Name() As String
    Name = pName
End Property
Property Let Class(strClass As String)
    pClass = strClass
End Property
Property Get Class() As String
    Class = pClass
End Property
Property Let Aggro(intAggro As Integer)
    pAggro = intAggro
End Property
Property Get Aggro() As Integer
    Aggro = pAggro
End Property

試験手順

Sub ClassTest()
    Dim Dog1 As New Critter

    Dog1.Name = "Labrador"
    Dog1.Class = "Canine"
    Dog1.Aggro = 0     

    Debug.Print Dog1.Name  'returns ""
    Debug.Print Dog1.Class  'returns ""
    Debug.Print Dog1.Aggro  'returns 0  
End Sub
4

1 に答える 1

4

あなたが間違っている唯一のことは、プロパティ値を保持するためのプライベート変数を定義していないことです。Integer は 0 に初期化され、値を 0 に「設定」しているため、整数が機能しているように見えます。これをクラスの先頭に追加して、もう一度試してください。

Private pName as String
Private pClass as String
Private pAggro as Integer

:D

于 2013-04-19T00:53:59.950 に答える