1. ホーム
  2. vba

[解決済み] プロパティの無効な使用 vba クラス

2022-02-02 12:09:56

質問

VBA(Excel)でStudentクラスを以下のように実装しています。

Option Explicit

Private name_ As String
Private surname_ As String
Private marks_ As New Collection


Public Property Get getMean() As Single

    Dim sum As Double
    Dim mark As Double
    Dim count As Integer

    For Each mark In marks_
        sum = sum + mark
        count = count + 1
    Next mark

    getMean = sum / count

End Property

Public Property Let setName(name As String)
    name_ = name
End Property

Public Property Get getName() As String
    getName = name_
End Property

Public Property Let setSurname(surname As String)
    surname_ = surname
End Property

Public Property Get getSurname() As String
    getSurname = surname_
End Property

そして、メインサブに書き込んでいます。

Dim stud1 As New Student

stud1.setName "Andy"

でコンパイルエラーになりました。 stud1.setName "Andy" : プロパティの使用が無効です。 なぜなんでしょうか?何かアイディアがあれば教えてください。

解決方法は?

これは プロパティ (メソッドではありません) を使用する必要があります。 = を使用して値を適用します。

Dim stud1 As New Student

stud1.setName = "Andy"


ちなみに、簡単のために、同じ名前を getset プロパティを使用します。

Public Property Let Name(name As String)
    name_ = name
End Property

Public Property Get Name() As String
    Name = name_
End Property

を作成し、以下のように使用します。

Dim stud1 As New Student
'set name
stud1.Name = "Andy"
'get name
MsgBox stud1.Name