宣言したオブジェクトを Automation オブジェクトに接続するには(VBA/ActiveX)

ただし、プロシージャを実行する前に、宣言したクラス モジュール内のオブジェクトを Circle オブジェクトと接続する必要があります。

  1. メイン モジュールのコード ウィンドウで、次の行を宣言セクションに追加します。
    Dim X As New EventClassModule
  2. 同じウィンドウで "MyCircle" という円を作成し、イベントを含むように初期化します。
    Sub InitializeEvents()
     Dim MyCircle As AcadCircle
     Dim centerPoint(0 To 2) As Double
     Dim radius As Double
     centerPoint(0) = 0#: centerPoint(1) = 0#: centerPoint(2) = 0#
     radius = 5#
     Set MyCircle = ThisDrawing.ModelSpace.AddCircle(centerPoint, radius)
     Set X.Object = MyCircle
    End Sub
  3. メイン モジュールのコード内で、InitializeApp サブルーチンの呼び出しを追加します。
    Call InitializeEvents

    InitializeEvents プロシージャが実行されると、クラス モジュール内の Circle オブジェクトによって作成された Circle オブジェクトが指し示され、イベントが発生したときにクラス モジュール内のイベント プロシージャが実行されます。

    注: VBA でコーディングをする場合、Modified イベントで有効化されるすべてのオブジェクトに対して、必ずイベント ハンドラを用意しなければなりません。ハンドラがないと、VBA が突然終了してしまう可能性があります。