Excel VBA 質問スレッド №1423 (未解決)
クラスAのメンバ変数にクラスBの配列を設定して、標準モジュールからクラスAを経由してクラスBのメンバ変数を持ってきたい
投稿者 : 社内vbaマン(クラス勉強中) 投稿日時 : 2023/05/26(Fri) 20:52:14 OS : Windows 10 EXCEL : Office 365
下記コードで標準モジュールから「ClassA.ClassB().文字列」という形でClassBの文字列メンバ変数を持ってきたいのですが、やり方がいまいちわからない状況です。
どのように修正すればよいかご指摘いただけると幸いです。
■コード
標準モジュールのDebug.Printで"結果2"と出力したいです。
標準モジュール--------------------------------------------------------------------------------
ClassAモジュール---------------------------------------------------------------------------------------
Private ClassB_() As New ClassB
Public Property Get ClassB(ByVal index As Long) As ClassB
ClassB = ClassB_(index)
End Property
ClassBモジュール---------------------------------------------------------------------------------------
Public テストデータ As String
'コンストラクタ
下記コードで標準モジュールから「ClassA.ClassB().文字列」という形でClassBの文字列メンバ変数を持ってきたいのですが、やり方がいまいちわからない状況です。
どのように修正すればよいかご指摘いただけると幸いです。
■コード
標準モジュールのDebug.Printで"結果2"と出力したいです。
標準モジュール--------------------------------------------------------------------------------
Public Sub 標準モジュール()
Dim ClassA As ClassA
Set ClassA = New ClassA
ClassA.コンストラクタ
'ここで"結果2"と出力したいがやり方がわからない
Debug.Print ClassA.ClassB(2).テストデータ
End Sub
----------------------------------------------------------------------------------------------ClassAモジュール---------------------------------------------------------------------------------------
Private ClassB_() As New ClassB
Public Property Get ClassB(ByVal index As Long) As ClassB
ClassB = ClassB_(index)
End Property
Public Sub コンストラクタ()
ReDim ClassB_(2)
ClassB_(0).コンストラクタ "結果0"
ClassB_(1).コンストラクタ "結果1"
ClassB_(2).コンストラクタ "結果2"
End Sub
-------------------------------------------------------------------------------------------------------ClassBモジュール---------------------------------------------------------------------------------------
Public テストデータ As String
'コンストラクタ
Public Sub コンストラクタ(ByVal 文字列 As String)
テストデータ = 文字列
End Sub
-------------------------------------------------------------------------------------------------------スポンサーリンク
[返信 1] Re : クラスAのメンバ変数にクラスBの配列を設定して、標準モジュールからクラスAを経由してクラスBのメンバ変数を持ってきたい
投稿者 : hatena 投稿日時 : 2023/05/27(Sat) 15:59:58
ClassAモジュール
Public Property Get ClassB(ByVal index As Long) As ClassB
Set ClassB = ClassB_(index)
End Property
オブジェクト(Class)を代入するときはSetが必要。
ClassAモジュール
Public Property Get ClassB(ByVal index As Long) As ClassB
Set ClassB = ClassB_(index)
End Property
オブジェクト(Class)を代入するときはSetが必要。
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2026-04-03 09:33:09 )