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"と出力したいです。

標準モジュール--------------------------------------------------------------------------------
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が必要。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2026-04-03 09:33:09 )
タイトルとURLをコピーしました