オブジェクト レベルのイベントを使用するためには、まず新しいクラス モジュールを作成し、イベントを使用できる AcadObject タイプのオブジェクトを宣言する必要があります。
たとえば、EventClassModule という名前のクラス モジュールを新しく作成するとします。新しいクラス モジュールには、WithEvents という VBA キーワードを持つアプリケーションの宣言が含まれます。
以下の例では、イベントを使用するライトウェイト ポリラインを作成します。ポリライン用のイベント ハンドラは、ポリラインが変更されるたびに新しい面積を表示します。イベントを発生させるには、AutoCAD でポリラインのサイズを変更するだけです。イベント ハンドラをアクティブにする前に CreatePLineWithEvents サブルーチンを実行する必要があることを覚えておいてください。
Public WithEvents PLine As AcadLWPolyline Sub CreatePLineWithEvents() ' This example creates a light weight polyline Dim points(0 To 9) As Double points(0) = 1: points(1) = 1 points(2) = 1: points(3) = 2 points(4) = 2: points(5) = 2 points(6) = 3: points(7) = 3 points(8) = 3: points(9) = 2 Set PLine = ThisDrawing.ModelSpace. _ AddLightWeightPolyline(points) PLine.Closed = True ThisDrawing.Application.ZoomAll End Sub Private Sub PLine_Modified _ (ByVal pObject As AutoCAD.IAcadObject) ' This event is triggered when the polyline is resized. ' If the polyline is deleted the modified event is still ' triggered, so we use the error handler to avoid ' reading data from a deleted object. On Error GoTo ERRORHANDLER MsgBox "The area of " & pObject.ObjectName & " is: " _ & pObject.Area Exit Sub ERRORHANDLER: MsgBox Err.Description End Sub