MW211 EXIT

devlog
ExcelVBA実験/コンストラクタで他クラスを実行
2018年02月15日
あるクラスのコンストラクタで他クラスを呼び出したら、どの順で実行されるか?
┌──────────────────────────────────────┐
│Public Sub 実験コンストラクタで他クラスを実行()                             │
│    Dim objクラス1 As New クラス1                                           │
│    Call objクラス1.実行                                                    │
│End Sub                                                                     │
├──────────────────────────────────────┤
│'クラス1.cls                                                                │
│Private Sub Class_Initialize()                                              │
│    Dim objクラス2 As New クラス2                                           │
│    Call objクラス2.実行                                                    │
│End Sub                                                                     │
│Public Sub 実行()                                                           │
│    MsgBox "②クラス1実行"                                                  │
│End Sub                                                                     │
├──────────────────────────────────────┤
│'クラス2.cls                                                                │
│Public Sub 実行()                                                           │
│    MsgBox "①クラス2実行"                                                  │
│End Sub                                                                     │
└──────────────────────────────────────┘
当たり前だが「コンストラクタ(→他クラスを実行)→自クラスを実行」の順で実行される
分類:ExcelVBA