ML, I'm not sure you've got what he wants correctly. He's talking about using F8 to step through his code one line at a time in the VBAIDE. When input is needed in acad, such as a selection, he wants focus to switch to the acad window. If you use Application.VBE.MainWindow.Visible = False while stepping through code, it just flashes the IDE off for the split second that it takes to get to the next line of code. I tried the old awesomey acad sample events code dvb to see if a selection fired any events and it doesn't appear to. I used the code below. The object modified event fires when the width is changed but that's the only event that fired for me.
' AutoCAD 2000
'
' Events Example Code ActiveX Automation.
'
' Copyright (C) 1999 by Autodesk, Inc.
'
' Permission to use, copy, modify, and distribute this software
' for any purpose and without fee is hereby granted, provided
' that the above copyright notice appears in all copies and
' that both that copyright notice and the limited warranty and
' restricted rights notice below appear in all supporting
' documentation.
'
' AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
' AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
' MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
' DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
' UNINTERRUPTED OR ERROR FREE.
'
' Use, duplication, or disclosure by the U.S. Government is subject to
' restrictions set forth in FAR 52.227-19 (Commercial Computer
' Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
' (Rights in Technical Data and Computer Software), as applicable.
'
Option Explicit
Public WithEvents PLine As AcadLWPolyline ' Use with Modified Event Example
Public WithEvents ACADApp As AcadApplication ' Use with Application Event Examples
'------------------------------------------------------------------
' Document Events
'------------------------------------------------------------------
Private Sub AcadDocument_Activate()
' This example intercepts a drawing Activate event.
'
' This event is triggered when a drawing window becomes active.
'
' To trigger this example event: Either open a new drawing or switch from
' one drawing window to another
MsgBox "You have just activated a drawing!"
End Sub
Private Sub AcadDocument_BeginClose()
' This example intercepts a drawing BeginClose event.
'
' This event is triggered when a drawing receives a request to close.
'
' To trigger this example event: Close an open drawing
MsgBox "A drawing has just been closed!"
End Sub
Private Sub AcadDocument_BeginCommand(ByVal CommandName As String)
' This example intercepts a drawing BeginCommand event.
'
' This event is triggered when a drawing receives
' any command compatible with this event.
'
' To trigger this example event: Issue any command to an open drawing from
' either the command line, VBA, the ACAD menus, the ACAD toolbars, or LISP.
' Use the "CommandName" variable to determine which command was started
MsgBox "A drawing has just been issued a " & CommandName & " command."
End Sub
<whacked a big chunk out here because my post was too long>
'----------------------------------------------------------------------------
' Modified (PLINE) Event Sample
'----------------------------------------------------------------------------
Sub Example_Modified()
' This example creates a light weight polyline in model space and
' references the new PolyLine using the public variable (PLine) which
' is setup to intercept Modified events.
'
' This example then modifies the new object, triggering the code
' in the Modified event.
Dim points(0 To 9) As Double
' Define the 2D polyline points
points(0) = 1: points(1) = 1
points(2) = 1: points(3) = 2
points(4) = 2: points(5) = 2
points(6) = 3: points(7) = 2
points(8) = 4: points(9) = 4
' Create a light weight Polyline object in model space
'
' * Note: We are returning the new PolyLine object into a Module
' level variable. This allows us to intercept events associated
' with that particular object.
Set PLine = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
ThisDrawing.Application.ZoomAll
' Modify object to trigger event.
'
' * Note: The event code for the PolyLine modification will be triggered
' before we move forward and refresh the view, so the line will not
' appear red when the event message box is displayed
PLine.color = acRed
ThisDrawing.Regen acAllViewports
End Sub
Private Sub PLine_Modified(ByVal pObject As AutoCAD.IAcadObject)
' This example intercepts an object's Modified event.
'
' This event is triggered when an object supporting this event is modified
'
' To trigger this code: Modifiy an object connected to this event
' * Note: By connected, we mean the object setup to intercept events using
' the VBA WithEvents statement
' Use the "pObject" variable to determine which object was modified
MsgBox "You just modified an object with an ID of: " & pObject.ObjectID
End Sub
Sub test()
Dim objPL As AcadLWPolyline
Dim varPnt As Variant
ThisDrawing.Utility.GetEntity objPL, varPnt
objPL.ConstantWidth = 1
End Sub