Gets the VBAIDE extensibility object.
Supported platforms: Windows only
Read-only: Yes
Type: Microsoft VBE object
The VBAIDE extensibility object.
This property allows you to access the VBA IDE object model from AutoCAD's object model. The property will throw an exception if the VBAIDE is not available. For example, the VBAIDE is not available if the acvba.arx app has not been loaded.
The following line of code returns the name of the active VBA project description string:
ThisDrawing.Application.VBE.ActiveVBProject.Description
VBA:
Sub Example_VBE() ' This example uses the VBA IDE extensibility model to dynamically ' create a VBA subroutine. After running this example, see the first line of code ' in the VBA IDE code window to see a new subroutine. Then ' remove the new subroutine before continuing. Dim VBEModel As Object Dim newRoutine As String Set VBEModel = VBE ' Get the VBE object ' Define new subroutine to be added. This could be created dynamically from user feedback. newRoutine = "Sub Dynamic_Procedure()" & vbCrLf newRoutine = newRoutine & vbTab & "MsgBox ""New subroutine.""" & vbCrLf newRoutine = newRoutine & "End Sub" & vbCrLf ' Insert new subroutine VBEModel.CodePanes(1).CodeModule.InsertLines 1, newRoutine MsgBox "A new subroutine was added called Dynamic_Procedure." End Sub
Visual LISP:
(vl-load-com) (defun c:Example_VBE() ;; This example uses the VBA IDE extensibility model to dynamically ;; create a VBA subroutine. After running this example, see the first line of code ;; in the VBA IDE code window to see a new subroutine. Then ;; remove the new subroutine before continuing. ;; Note: You might need to add a code module to the default project first. (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) (setq VBEModel (vla-get-VBE acadObj)) ;; Get the VBE object ;; Define new subroutine to be added. This could be created dynamically from user feedback. (setq newRoutine (strcat "Sub Dynamic_Procedure()" "\n MsgBox \"New subroutine.\"" "\nEnd Sub")) ;; Insert new subroutine (vlax-invoke-method (vlax-get-property (vlax-invoke-method (vlax-get-property VBEModel 'CodePanes) 'Item 1) 'CodeModule) 'InsertLines 1 newRoutine) (alert "A new subroutine was added called Dynamic_Procedure.") )