VBA 複数の戻り値の受け取りにクラスを使ってみた

クラスモジュール:ResultClass

' プロパティの宣言(フィールドの設定)
Private pVal As String
Private pFlag As Boolean

' プロパティ: ゲッター
Public Property Get Value1() As String
    Value1 = pVal
End Property
' プロパティ: セッター
Public Property Let Value1(ByVal val As String)
    pVal = val
End Property

' プロパティ: ゲッター
Public Property Get Value2() As Boolean
    Value2 = pFlag
End Property

' プロパティ: セッター
Public Property Let Value2(ByVal flag As Boolean)
    pFlag = flag
End Property

‘処理用プロシージャ:zfGetResult

Function zfGetResult() As ResultClass
    Dim resObj As ResultClass
    Set resObj = New ResultClass
    
    '処理を記述*********
    ' 今回は値を設定
    resObj.Value1 = "Hello, VBA!"
    resObj.Value2 = False

    ' クラスを返す
    Set zfGetResult = resObj
End Function

実行用プロシージャ:ReturnMultipleValuesテスト

Sub ReturnMultipleValuesテスト()
    Dim res As ResultClass
    Set res = zfGetResult()

    ' 戻り値を表示
    Debug.Print "Value1: " & res.Value1
    Debug.Print "Value2: " & res.Value2
End Sub

コメント