Está en la página 1de 24

1

CAPITULO 01


El Entorno de desarrollo
Integrado de VBA
(VBAIDE)



Dentro de AutoCAD, puede desarrollar programas de VBA en el Entorno de desarrollo
integrado (IDE) de Visual Basic para Aplicaciones (VBA). Como lo hace con el IDE de Visual
LISP, Autodesk ofrece la VBAIDE como una parte integral de muchos de sus productos,
incluyendo AutoCAD. A diferencia de la IDE de Visual LISP, Microsoft licencia la VBAIDE a
Autodesk para su inclusin en sus productos. Por lo tanto, sus caractersticas son de
Microsoft, no de Autodesk.
Este captulo explora las facetas del entorno VBAIDE y te muestra cmo aprovechar las
ventajas de sus herramientas. Se tratan los siguientes temas:
Conceptos de Visual Basic.
Iniciando el editor.
Explorando la interfaz de usuario.
Administrando Proyectos.
Usando el editor de texto.
El Explorador de objetos.

Conceptos de Visual Basic
VBA es un entorno de desarrollo de Microsoft Windows, usted encontrar en VBA un
desarrollo ms fcil si usted tiene algn conocimiento de Ventanas. Si usted es nuevo en
Windows, usted encontrar diferencias fundamentales entre la programacin en Windows y
la programacin en otros entornos, tales como Visual LISP. Las siguientes secciones
describen los conceptos de programacin de Windows que pueden ser nuevas para usted.

Ventanas, Eventos y Mensajes
Explicar el funcionamiento interno de Windows requiere mucho ms espacio del que
se dispone en este libro. Pero usted no necesita un amplio conocimiento del
funcionamiento de Windows para crear aplicaciones tiles.
1

2
El Sistema operativo Windows se puede simplificar a tres conceptos bsicos: ventanas,
eventos y mensajes.
Una ventana es una regin rectangular en la pantalla que tiene su propia frontera. La
ventana de dibujo de AutoCAD, el Bloc de notas, un documento de Word, y el lugar donde
se redacta un e-mail son todas las ventanas.
Windows puede tener jerarqua. Una forma de dilogo, que es una ventana dentro de
una aplicacin distinta, contiene componentes y cdigo ActiveX pertinentes. Una ventana de
dibujo es el padre de una ventana de forma de dilogo, y AutoCAD es el padre de las
ventanas de dibujo dentro de ella. El sistema de accin es de la "ventana" padre de todas
las aplicaciones que se ejecutan en l, incluyendo AutoCAD.
Cada ventana reconoce y controla los programas que se ejecutan dentro de ellos o de
sus ventanas subordinadas. Para administrar las ventanas, Windows asigna un identificador
nico a cada ventana, conocido como un handle o hWnd en la jerga de programacin.
Windows utiliza los eventos para monitorear constantemente cada ventana en busca de
signos de actividad. Eventos cambian el entorno de la aplicacin o del estado del sistema.
Se producen cuando un usuario acta, como haciendo clic en el ratn o pulsando una tecla;
programacin; o por otra ventana a travs de los procesos del sistema.
Cada vez que se activa un evento, Windows enva un mensaje a la aplicacin host.
Windows procesa el mensaje y lo transmite a las ventanas. Luego, basndose en sus
propias instrucciones, cada ventana puede tomar medidas apropiadas tales como la
reparacin de s mismo cuando no est cubierta por otra ventana. En el caso de VBA en
AutoCAD, los mensajes de eventos de VBA interceptan espacio de trabajo. Programas de
VBA pueden entonces responder directamente o pasar el evento hasta AutoCAD o a
Windows si es necesario. VBA proporciona un entorno de control dentro de AutoCAD en el
que se puede ejecutar y responder a los eventos, ya sea directamente o permitiendo que
AutoCAD o Windows respondan.
Aunque esto parece mucho trabajo, VBA se esconde la mayor parte de los detalles de
bajo nivel para su comodidad de usted y expone los procedimientos de eventos, que son
rutinas que se ejecutan cuando se produce un evento en particular. Por tal motivo puede
crear rpidamente aplicaciones muy potentes sin preocuparse de los detalles de bajo nivel.

Eventos vs. Programacin
Cuando una aplicacin de procedimiento tradicional se ejecuta, se sigue un camino
predeterminado que controla las porciones y la secuencia de cdigo ejecutadas. Se inicia
con la primera lnea de cdigo y avanza de arriba hacia abajo, llamando a cada
procedimiento cuando sea necesario, hasta llegar a la final del cdigo. Esta trayectoria
predeterminada es la principal diferencia entre las aplicaciones de procedimiento y por
eventos.
Aplicaciones orientadas a eventos no tienen un destino predeterminado. Diferentes
secciones de cdigo se ejecutan en base a los acontecimientos desencadenados en el
orden que se presentan. Dependiendo de qu eventos se producen cuando se ejecuta la
aplicacin, algunas secciones de cdigo no se ejecutan en absoluto.
No se puede predecir la secuencia de eventos, por lo que debe hacer suposiciones
sobre el "estado" de la aplicacin en cualquier momento. Esto parece que sera difcil, pero
en realidad no lo es. Por lo general, usted tiene una serie de posibilidades para trabajar,
como el Click, Doble Click, presionar una tecla y eventos LostFocus. Por ejemplo, usted
podra requerir que el usuario escriba un valor en un TextBox para poder activar un
CommandButton que permita su posterior procesamiento. Entonces el evento Change del
control TextBox debera tener cdigo que active el control CommandButton, como se
3
muestra en este cdigo de ejemplo:

Private Sub TextBox1_Change()
If Len(TextBox1.Text) > 0 Then
CommandButton1.Enabled = True

Else
CommandButton1.Enabled = False
End If
Ene Sub

Cada vez que se agrega o elimina el texto del control TextBox, el programa ejecuta este
procedimiento de evento. El cdigo comprueba la longitud del texto y si es mayor que cero,
lo que significa que hay algo en el cuadro de texto, activa el control CommandButton, de lo
contrario, se desactiva el control CommandButton.
Cambiar mediante programacin el texto en el TextBox desencadena el evento Change.
Si usted permite que esto ocurra, es posible que obtenga resultados inesperados. El uso de
eventos es muy potente, pero usted debe saber lo que cada evento puede desencadenar en
su aplicacin en otros lugares.

El desarrollo de sus aplicaciones de forma interactiva
En los entornos de desarrollo ms tradicionales, la mayora de los desarrolladores siguen un
claro proceso de tres pasos: la escritura, la compilacin y pruebas. Sin embargo, VBA utiliza
un enfoque ms interactivo para el desarrollo que hace que sea ms fcil para principiantes
y desarrolladores experimentados.
Lenguajes como C++ requieren que se escriba todo el cdigo y luego compilarlo. Durante la
compilacin, usted puede descubrir numerosos errores, desde los errores de escritura
simples hasta los errores de sintaxis ms complejos. El entorno de programacin de Visual
Basic en cambio, interpreta el cdigo de cada lnea de la manera, alertando a los posibles
problemas desde entonces en lugar de esperar un largo ciclo de compilacin.
Puesto que Visual Basic est compilando parcialmente su cdigo mientras lo escribe, se
necesita muy poco tiempo para terminar de compilar el cdigo y ejecutar su aplicacin. A
diferencia de otros lenguajes, usted encontrar que usted est constantemente escribiendo,
ejecutando y perfeccionando su aplicacin. Adems, el entorno de Visual Basic emplea un
entorno grfico. Ms a menudo trabajara primero en la interfaz grfica y segundo en el
cdigo. Esto le permite pasar ms tiempo creando y menos tiempo descompilando y
recompilando.

Iniciando el Editor
Una de las primeras preguntas que se enfrentar es "Cmo se introduce el cdigo fuente
(comandos estructurados) o desarrollar una interfaz de usuario (formularios o cuadros de
dilogo)?" La respuesta es que el IDE, una interfaz grfica de usuario que utiliza para
desarrollar aplicaciones. Es similar a los entornos de desarrollo previstas en otras
aplicaciones, como Microsoft Access y Microsoft Excel. Para mostrar la VBAIDE, seleccione
Tools Macro Visual Basic Editor o presione Alt + F11. Como alternativa, puede iniciar
el editor escribiendo VBAIDE en la lnea de comandos de AutoCAD, como se muestra en la
Figura 1-1.

4




Figure 1-1. La Lnea de comandos de AutoCAD.



Nota AutoCAD includes a Visual Basic menu and toolbar. You can load it by copying ACAD.DVB
from
\Sample\VBA\VBAIDEMenu (in the AutoCAD folder) to a directory in your support path. The toolbar
will then autoload when the first VB command is launched. If you already have an ACAD.DVB, you
can cut and paste from the provided ACAD.DVB to your own. Esto proporciona una barra de
herramientas de AutoCAD para los siguientes comandos: VBAIDE, VBAPREF, VBAMAN,
VBACARGAR y VBARUN. Esto tambin agrega Nuevo, Abrir y Cerrar el archivo desplegable en la
barra de herramientas VBAIDE.





Explorando la interfaz de usuario
El editor se compone de varias ventanas diferentes. La primera vez que lo abra, se ve como
en la Figura 1-2. Utilice el men Ver para controlar qu ventanas son visibles. Para obtener
ayuda sensible al contexto en cualquier ventana, haga clic en l y pulse F1.
El resto de esta seccin trata sobre las ventanas que se utilizan con ms frecuencia.




5
Figure 1-2. La VBAIDE de AutoCAD



El Explorador de Proyectos
La ventana del Explorador del proyecto muestra una vista jerrquica denominada vista de
rbol de los componentes de su proyecto que se cargan en el IDE. La vista muestra todos
los UsersForms, cdigo y mdulos de clase asociados a cada
proyecto. Utilice esta ventana para no perder de vista y mover
componentes entre proyectos. La Figura 1-3 muestra lo que
parece una tpica ventana Explorador de proyectos similares.
A medida que agrega, crea y elimina archivos, el Explorador de
proyectos refleja esos cambios. Usted puede guardar cada
proyecto con una extensin dvb. o puede integrarlo
directamente en un archivo de dibujo. No se puede eliminar el
objeto ThisDrawing necesario, que representa el dibujo activo,
pero nada se requiere para colocar cdigo en este mdulo.
Usted puede cerrar la ventana Explorador de proyectos para
ganar ms espacio en el IDE. Para volver a abrirla, elija Ver
Explorador de proyectos o presione Ctrl + R.
Figure 1-3. Project Properties.

La Ventana de Cdigo
La ventana de cdigo es donde usted va a hacer la mayor parte de su trabajo de desarrollo
para manipular AutoCAD. Usted puede tener una ventana abierta para cada mdulo en el
proyecto, como se muestra en la Figura 1-4.



Figura 1-4. Ventanas en cascada VBAIDE.

Por otra parte, usted puede ver una ventana a la vez haciendo clic en el botn de maximizar
de la ventana, que se muestra en la Figura 1-5, que est en la esquina superior derecha.

6



Figura 1-5. Haga clic en el botn de maximizar para ver una ventana a la vez.
7
Ms adelante, en este captulo se analizaran las caractersticas tales como la lista de
miembros automtica e Informacin rpida automtica que hacen que escribir cdigo sea
ms fcil y menos propenso a errores de escritura comunes.

La ventana de Propiedades
La ventana de propiedades controla el comportamiento de un objeto. Usted puede realizar
consultas o control de propiedades de entidades de AutoCAD, como el color o tipo de lnea
de un objeto lnea, utilizando las propiedades de color o tipo de lnea.
La ventana Propiedades muestra las propiedades de un objeto en
tiempo de diseo. Puede cambiar las propiedades en tiempo de diseo
mientras usted desarrolla su aplicacin. Cambiar las propiedades
durante el desarrollo no tiene efecto sobre lo que se hace en el IDE. Sin
embargo, ninguno de estos cambios de propiedad podra afectar la
eficacia (y, a veces s) con que se ejecutar la aplicacin. La Figura 1-6
muestra las propiedades de un tpico objeto de UserForm.


Nota En tiempo de diseo es cuando usted desarrolla su aplicacin en el
IDE, escribiendo cdigo, agregando formularios y controles.

Figura 1-6. El cuadro de dilogo de Propiedades de un objeto UserForm tpico.

Si usted necesita establecer una propiedad en particular una vez, hgalo en tiempo de
diseo en la ventana de Propiedades, pero en ocasiones necesitara establecer el valor de
una propiedad en tiempo de ejecucin. Adems, algunas propiedades son de slo lectura y
algunas solo estn disponibles en tiempo de ejecucin, esta situacin requiere que
establezca el valor de la propiedad mediante programacin (usando cdigo).
Usted puede cerrar la ventana Propiedades para ganar ms espacio en el IDE. Para
volver a abrir la ventana Propiedades, seleccione Ver Ventana Propiedades o presione
F4.


Los Cuadros Objeto y Procedimiento.
El cuadro Objeto (la mitad izquierda de la figura 1-7) muestra todos los objetos y controles
en su proyecto. El cuadro procedimiento (la mitad derecha de la figura 1-7) muestra todos
los Procedimientos y Eventos ejecutados en su aplicacin.
Cuando se selecciona un objeto en el cuadro Objeto, los procedimientos asociados con
ese objeto aparecen en el cuadro Procedimiento. Figura 1-8 muestra que despus de elegir
un procedimiento, el IDE agrega su marco bsico para su ventana de cdigo, donde se
escribe el cdigo fuente.
Cuando un procedimiento o un evento no aparece en negrita en el cuadro procedimiento,
no contiene ningn cdigo. Por cierto, cuando se elige un objeto, el IDE agrega su
procedimiento de evento predeterminado a la ventana Cdigo. Usted si desea puede optar
por utilizar el procedimiento predeterminado.
8





Figura 1-7. Cuadros de Objeto y procedimiento.





Figura 1-8. Un ejemplo de Procedimiento VBAIDE.



La Ventana Inmediata
La ventana Inmediato sirve como un lugar conveniente para enviar la salida de una
aplicacin que se ejecuta durante el desarrollo. Como alternativa, se puede utilizar para
establecer las variables cuando se ejecuta una aplicacin, o para comprobar el valor de una
variable, como la ruta de acceso al archivo ejecutable de AutoCAD, como se muestra en la
Figura 1-9.




Figure 1-9. Ejecutando en la ventana Inmediato.
9

En este ejemplo, utilice un signo de interrogacin (?) para pedir al VBAIDE el valor de una
variable.
Para establecer el valor de una variable en la ventana Inmediato, escriba la declaracin tal
como lo hara en la ventana Cdigo. La figura 1-10 muestra cmo se hace.




Figura 1-10. Declaracin de una variable en la ventana Inmediato.


Nota Usted no puede declarar las variables en la ventana Inmediato. Adems, el alcance de una
variable y los comandos vlidos de VBA vlidas en la ventana Inmediato son igualmente importantes.
El captulo 2 cubre el alcance de las variables.


El Cuadro de Dilogo Options
El cuadro de dilogo Opciones, que se muestra en la Figura 1-11, le permite personalizar la
apariencia y sensacin del IDE, incluyendo el esquema de color de sintaxis, fuente de
cdigo fuente, y el espaciado de tabulacin. Para abrir el cuadro de dilogo Opciones,
seleccione Tools Options. Esta seccin trata de las opciones ms utilizadas.





Figure 1-11. El cuadro de dialogo Options.

Para la mayora de los desarrolladores, los valores predeterminados estn bien. Sin
embargo, usted debe pensar en cambiar dos parmetros de la ficha Editor: Auto Syntax
Check y Require variable declaration.
Cuando la opcin Auto Syntax Check est activada, los errores de sintaxis en el cdigo
generan un mensaje de error similar a la Figura 1-12.
10


Al comenzar a desarrollar aplicaciones ms
complejas y reusar las lneas de cdigo de otras
posiciones en su aplicacin, estos mensajes de
error se convertirn en una molestia. Cada vez
que se mueve el cursor fuera de la lnea de
cdigo, se obtiene uno de estos mensajes de
error. Pero si se desactiva Auto Syntax Check, el
VBAIDE le notifica los errores cambiando el color
de la lnea de cdigo a rojo.


Figura 1-12.
Cuadro de dilogo
de mensaje de
error.
La opcin Require variable declaration est desactivada de forma predeterminada, lo que
significa que la VBAIDE no requiere que se declare correctamente las variables antes de
usarlas. Esto no es una gran preocupacin cuando se escribe una macro simple, pero
cuando se inicia el desarrollo de aplicaciones ms grandes y complejas, usted encontrar
esta opcin indispensable. Activar esta opcin te obliga a pensar en cada variable y su tipo
de datos. Cuando usted activa esta opcin, el VBAIDE agrega una lnea de cdigo para el
inicio de cada mdulo, como se muestra en la Figura 1-13.



Figura 1-13. Un ejemplo de activar Require Variable Declaration.


Despus de comprobar esta opcin, salir y reiniciar AutoCAD para que sea tenga efecto.
Al declarar las variables para tipo de dato especfico, usted ahorra recursos de memoria. A
las variables no declaradas se le asignan por defecto el tipo de datos variant. Este tipo de
datos utiliza ms memoria y podra dar lugar a problemas de recursos de memoria cuando el
usuario ejecuta la aplicacin. Como una regla general, declare siempre cada variable que
utiliza en su aplicacin, y seleccione el tipo de datos que utiliza la menor memoria posible. El
Captulo 2 discute los tipos de datos y la memoria con ms detalle.


Gestin de Proyectos
La gestin de sus componentes de cdigo es fundamental para desarrollar con xito las
aplicaciones. Esta seccin trata sobre agregar componentes a su proyecto, guardar su
proyecto, cargar y ejecutar una aplicacin.

Componentes del Proyecto
Un proyecto de VBA contiene varios tipos diferentes de archivos, incluyendo los siguientes:
Mdulo UserForm
Mdulo Standard
Mdulo de Clase
Referencia a un archivo .dvb
11
Mdulo UserForm
Los Mdulos UserForms (archivos con una extensin frm.) contienen una descripcin de
texto de su forma, controles designados y ajustes de propiedades. Tambin incluyen
declaraciones de nivel de formulario de usuario de constantes, variables, procedimientos y
procedimientos de evento.

Mdulo Standard
Los mdulos Standard (archivos con una extensin .bas) contienen declaraciones a nivel de
mdulo de tipos de datos definidos por el programador, constantes, variables y
procedimientos pblicos. Un mdulo estndar normalmente contiene rutinas que no encajan
muy bien en una definicin de clase.

Mdulo de Clase
Utilice los mdulos de clase (archivos con la extensin .cls) para crear sus propios objetos,
incluyendo mtodos, propiedades y eventos. Los mdulos de clase son similares a los
mdulos de UserForm excepto que tienen una interfaz de usuario visible. Los mdulos de
clase son muy verstiles y vitales para VBA y AutoCAD. A medida que usted avance a
travs de este libro, vera que las clases y los objetos estn en todas partes.

Referencia a un archivo .dvb
Usted puede hacer referencia al cdigo de otro archivo .dvb en el proyecto actual. Esta
caracterstica le permite reutilizar fcilmente el cdigo entre varios proyectos. No se puede
crear una referencia circular, que es una referencia a un proyecto y una referencia en ese
proyecto al proyecto actual. Si usted crea accidentalmente una referencia circular, AutoCAD
le informa del error, hay que deshacer la referencia antes de poder continuar.

Crear, abrir y Guardar Proyectos
Para extraer, insertar, crear, guardar, cargar y descargar los proyectos de VBA, abra el
cuadro de dilogo VBA Manager, que se muestra en la Figura 1-14. Para abrirlo, escriba
VBAMAN en la lnea de comandos de AutoCAD o seleccione men Tools Macro VBA
Manager.
Usted debe cargar explcitamente todos los proyectos dvb. AutoCAD carga los
proyectos incrustados automticamente cuando se abre el dibujo que los contienen,
dependiendo de cmo haya configurado las opciones de seguridad de AutoCAD. Al hacer
clic en Nuevo crea un nuevo proyecto en el VBAIDE que se puede acceder haciendo clic en
el botn Editor de Visual Basic. Para cargar un proyecto existente, haga clic en el botn
Load. El cuadro de dilogo Open VBA Project aparece en la figura 1-15, permitindole elegir
el proyecto a cargar.


Tip La incorporacin de macros VBA en dibujos est muy bien para dibujos que permanecen dentro
de su organizacin. Evite incrustar macros cundo vas a entregar los dibujos a los usuarios o clientes
de fuera, ya que impone un riesgo para la seguridad de su parte para confiar en las macros en su
entorno.

Este cuadro de dilogo es similar al cuadro de dilogo estndar de Abrir archivos en
Windows. Al igual que en la creacin de un nuevo proyecto, cuando usted elige el proyecto
12
.dvb que desea, haga clic en el botn Editor de Visual Basic para empezar a trabajar en su
proyecto.
13




Figura 1-14. El cuadro de dialogo VBA Manager.




Figura 1-15. El cuadro de dialogo Open VBA Project.


Existen otras dos formas de crear y cargar archivos de proyecto DVB:

Escriba VBAIDE en la lnea de comandos de AutoCAD o presione Alt + F11 para abrir
o crear un archivo de proyecto DVB.

Tipo VBALOAD en la lnea de comandos de AutoCAD para abrir el cuadro de dilogo
Abrir proyecto de VBA para que pueda elegir un proyecto para cargar.

Para guardar el proyecto, seleccione men Archivo Guardar o presione Ctrl + S. Si
usted no ha guardado previamente el proyecto, el cuadro de dilogo estndar de Save As
aparece como se muestra en la Figura 1-16.
14



Figura 1-16. Save As dialog box


A diferencia de Visual Basic, no es necesario guardar cada mdulo de proyecto por
separado. AutoCAD guarda todos ellos en un archivo .dvb. Sin embargo, como la siguiente
seccin se ilustra, puede exportar cada mdulo en un archivo separado.



Tip Evite guardar sus archivos de programa personalizados en el rbol de carpetas de instalacin de
AutoCAD. En su lugar, cree un rbol de carpetas distinto para ellos. Esto evita que las instalaciones
de AutoCAD y actualizaciones afecten sus archivos de programa.





Agregar, guardar y eliminar archivos
A veces se quiera agregar a su proyecto de VBA un archivo como un mdulo UserForm
comn o una coleccin de rutinas en un mdulo estndar. Para ello, seleccione men File
Import File o presione Ctrl + M. Aparecer el cuadro de dilogo Importar archivo, como se
muestra en la Figura 1-17.
Para exportar un mdulo en otro archivo, seleccione el nombre del mdulo en la ventana
Explorador de proyectos, y despus puede seleccionar men File Export File o pulse Ctrl
+ E. Aparecer un cuadro de dilogo Guardar como para el tipo de archivo a exportar.
Alternativamente, se puede seleccionar el nombre del mdulo en la ventana Explorador de
proyectos, haga clic con el botn derecho del mouse para invocar el men emergente y
seleccione exportar archivo.
Para eliminar un archivo de su proyecto, seleccione el nombre del mdulo en la ventana
Explorador de proyectos. A continuacin, seleccione men File Remove (se le ofrecer la
opcin de exportar el archivo antes de la eliminacin). Tambin puede seleccionar el nombre
del mdulo, haga clic derecho para invocar el men emergente de la figura 1-18, a
continuacin, elija Remove.
Tenga en cuenta que este men tambin incluye la opcin Export File.
15





Figura 1-17. Cuadro de dialogo Importar Archivo.





Figura 1-18. El men
emergente Eliminar
mdulo.



Adding ActiveX Controls and Code Components
Cuando usted comienza un proyecto y agrega un mdulo de UserForm, aparece un cuadro
de herramientas comn que contiene una coleccin estndar de los controles ActiveX
llamados controles intrnsecos. En el captulo 3 se describen los controles intrnsecos con
ms detalle. Si desea insertar un control ActiveX que no est en el cuadro de herramientas,
seleccione Tools Additional Controls o haga clic derecho en la ventana de cuadro de
herramientas y seleccione Additional Controls. Aparecer el cuadro de dilogo Additional
Controls como se muestra en la Figura 1-19.




Figura 1-19. Cuadro de dilogo Additional Controls


Este cuadro de dilogo muestra todos los controles ActiveX que estn debidamente
registrados en la mquina. Sin embargo, si desea utilizar un control ActiveX determinado,
consulte su Acuerdo de Licencia de Usuario Final (EULA) para determinar si usted tiene una
licencia para usarlo en una aplicacin host VBA.
16

Muchos controles ActiveX instalados con Microsoft Visual Basic, incluyendo TreeView,
ListView, File, Directory y Drive, no tienen licencia para su uso en una aplicacin host VBA.
Sin embargo, el captulo 19 explica algunas maneras fciles que usted puede utilizar con
interfaz de programacin de aplicaciones de Windows (API) para solucionar este dilema.
Usted puede agregar ms componentes de cdigo ActiveX controls que son quizs an
ms comunes. Este es el medio por el cual su aplicacin puede tener acceso a otras
aplicaciones de automatizacin de ActiveX, como Microsoft Excel, Access y Word. La
automatizacin de ActiveX es la clave para la construccin de potentes aplicaciones que
aprovechan los objetos expuestos por otras aplicaciones.
Para utilizar los objetos, mtodos, propiedades y eventos que otras aplicaciones
exponen, en primer lugar, agregue una referencia a esa aplicacin. Seleccione men Tools
References, para abrir el cuadro de dilogo referencias como se muestra en la Figura 1-
20.
Compruebe la referencia que desea agregar. El cuadro de dilogo contiene una lista
alfabtica de las referencias que su aplicacin no utiliza. Ms tarde, cuando usted escribe
sus propios objetos usando mdulos de clase, aqu es donde usted les va a agregar a su
proyecto.




Figura 1-20. Cuadro de dialogo de Referencia.


Para mejorar el rendimiento, desactive cualquier referencia de su aplicacin que no
utilice. Cada referencia debe ser resuelta antes de cargar su proyecto. Dependiendo del
tamao de su proyecto, esto podra disminuir en gran medida el tiempo que el usuario
espera en para cargar y ejecutar la aplicacin.



Nota Si su aplicacin utiliza un objeto de otra aplicacin, no se puede quitar la referencia a l sin
retirar primero el objeto.
17

El Examinador de Objetos
Cuando se establece una referencia a la biblioteca de objetos de una aplicacin, el
Examinador de objetos muestra todos los objetos, mtodos, propiedades, constantes y
eventos que la aplicacin expone. Para abrir el Explorador de objetos, seleccione el men
View Object Browser o presione F2. Por defecto, el Examinador de objetos enumera
todas las bibliotecas que su proyecto hace referencia actualmente. Para ver slo la
biblioteca de AutoCAD, por ejemplo, haga clic en AutoCAD en la lista desplegable del
Examinador de objetos, como se muestra en la Figura 1-21. El Examinador de objetos le da
una perspectiva de los objetos de una aplicacin y expone los mtodos, propiedades,
eventos y constantes que dichos objetos exponen para manipular su aplicacin.



Figura 1-21. Cuadro de dialogo Examinador de Objetos.

Carga y ejecucin de aplicaciones
Usted puede cargar y luego ejecutar sus aplicaciones de VBA de muchas maneras
diferentes. Esta seccin explica las formas ms comunes.

Acad.dvb
AutoCAD busca en la ruta de support file search path el archivo acad.dvb. Si AutoCAD
encuentra este archivo, ste lo carga en la sesin actual. El siguiente ejemplo ilustra cmo
implementar esta caracterstica.

Public Sub Start()
Application.ActiveDocument.SetVariable "OSMODE", 35
End Sub

Coloque este cdigo en el mdulo ThisDrawing y guarde el archivo como acad.dvb. Guarde
este archivo en cualquier subdirectorio especificado en la ruta de bsqueda de archivo de
soporte. Ahora, cada vez que se inicia una sesin de AutoCAD, AutoCAD carga este
archivo. Adems, si se incluye una rutina llamada AcadStartup, AutoCAD lo ejecuta cuando
se carga acad.dvb.
El ejemplo de la Figura 1-22 muestra cmo utilizar las macros que se haya almacenado en
el archivo acad.dvb.
18



Figure 1-22. La lnea de comandos de AutoCAD.


Escriba -vbarun luego el nombre de la macro que se va a ejecutar (start en este caso).
En este ejemplo, el valor de la variable del sistema OSMODE se establece en 35. Esta es
una forma conveniente para almacenar macros que AUTOCAD pueda invocar con una
configuracin particular.

Acaddoc.lsp
AutoCAD busca automticamente en las rutas de bsqueda por defecto (una combinacin
de la ruta de soporte / ruta de archivo, la carpeta de trabajo actual, y la carpeta de inicio del
acceso directo) un archivo llamado acaddoc.lsp. Si AutoCAD encuentra este archivo, ste lo
carga en el dibujo actual. A diferencia de acad.dvb, que se carga slo cuando se inicia una
nueva sesin de AutoCAD, AutoCAD carga acaddoc.lsp cada vez que abre o crea un dibujo.



Tip Para verificar la lista actual de las rutas de bsqueda, vaya a lnea de comandos de AUTOCAD,
escriba -insert, introduzca una cadena de caracteres sin sentido como sdfsdfsdf (sin embargo,
mantenerlo a menos de 31 caracteres), y pulse Enter. AutoCAD muestra una lista de carpetas en las
que se trat de encontrar su archivo cuando fall.



AutoCAD proporciona una funcin especial definido por el programador llamado S ::
STARTUP que si se incluye en acaddoc.lsp o cualquier archivo LISP de inicio por defecto,
se ejecuta automticamente al abrir o crear un dibujo. Usted puede definir S :: STARTUP en
acaddoc.lsp para realizar operaciones de configuracin para cada dibujo.
Usted puede definir una funcin S :: STARTUP en varios lugares diferentes, incluyendo
acad.lsp, acaddoc.lsp, un archivo .mnl o cualquier otro archivo de AutoLISP cargado desde
alguno de estos archivos. Usted puede sobrescribir una funcin S :: STARTUP previamente
definido lo que significa que otra definicin puede sobrescribir su rutina S :: STARTUP.



Note Nunca modifique o reemplace los archivos acad2006.lsp o acad2006doc.lsp, ya que pueden
ser sobrescritos por la instalacin de Service Pack sin previo aviso. Tambin es una buena idea para
aadir la funcin S :: STARTUP lugar de definirlo, ya que muchos productos de terceros se basan en
S :: STARTUP para inicializar su entorno. Si se define una nueva S :: STARTUP, se poda desactivar
algunas o todas de otro producto cargado en el proceso.


El siguiente ejemplo muestra cmo garantizar que su funcin startup trabaje con otras
funciones.

(defun-q Startup ()
(command "-vbarun" "Start")
)
(setq S::STARTUP (append S::STARTUP Startup))
19

This code appends your startup function to any existing S::STARTUP function, and then
redefines the S::STARTUP function to include your startup code. Esto funciona
independientemente de cualquier otra existencia de una funcin S :: STARTUP.



Note En AutoLISP, debe utilizarse defun-q en lugar de defun para que este ejemplo funcione
correctamente. Visual LISP formula la funcin de manera diferente de AutoLISP entre defun y defun-
q.




Proyectos Integrados
AutoCAD permite incorporar un proyecto de VBA en un dibujo. Cada vez que el dibujo est
cargado, AutoCAD tambin carga el proyecto de VBA incorporado en el dibujo. De todas las
opciones para cargar los proyectos de VBA automticamente, este es el peor. Almacena el
proyecto de VBA con el dibujo, haciendo que su archivo de dibujo sea mucho ms grande.
Si copia el archivo de dibujo para crear un nuevo dibujo, tambin copia de su proyecto de
VBA. Si usted desea cambiar el proyecto de VBA, es necesario cambiar cada proyecto VBA
en cada archivo de dibujo que ha creado del original. Adems, la entrega de dibujos con
macros incorporadas a los clientes, impone un serio riesgo potencial de seguridad de su
parte. Bueno, te haces una idea de por qu esta es la peor opcin para elegir.

VBARUN and the Macros Dialog Box
La versin de un cuadro de dilogo del comando VBARUN cuenta con varias opciones que
amplan la forma de crear y ejecutar una macro VBA.
Puede ejecutar una macro VBA desde la lnea de comandos de AutoCAD. Para ejecutar una
macro desde la lnea de comandos de AutoCAD, escriba -VBARUN, presione Enter y
escriba el nombre de la macro, similar a la del ejemplo de la Figura 1-23.




Figura 1-23. La lnea de comandos de AutoCAD.


En este ejemplo, AutoCAD ejecutara la macro Start.
Si la macro que desea ejecutar es nico entre todos los proyectos de VBA cargados,
entonces slo tiene que especificar el nombre de la macro despus del comando -
VBARUN. Sin embargo, si tiene varias macros cargadas con el mismo nombre, especifique
la macro para ejecutar con cualquiera de estas sintaxis:

ProjectName.ModuleName.MacroName

or

ModuleName.MacroName

Qu tan abajo en el interior de su proyecto y sus mdulos se sita la macro, y si tiene
varios proyectos cargados determinar qu sintaxis es apropiada?
20

Tambin puede ejecutar una macro a travs del cuadro de dilogo Macros, que se
muestra en la Figura 1-24. Para abrir este cuadro de dilogo, escriba VBARUN en la lnea
de comandos de AutoCAD. Tambin puede seleccionar Tools Macro Macros o
presione Alt + F8. Para el principiante o el usuario final, esta es una excelente manera de
ejecutar macros.



Figura 1-24. Cuadro de dialogo de Macros


Macros
Las tareas que se producen con frecuencia o que son de naturaleza compleja son
candidatos ideales para una macro. Usando una macro le da una forma ms coherente y
conveniente para llevar a cabo estas tareas. Las macros permiten crear este proceso una
vez y luego volver a utilizarlo varias veces.
Usted puede crear macros en dos lugares, ya sea en el mdulo ThisDrawing o en un
mdulo estndar. En cualquier caso, siempre declararlas como subprocedimientos Public y
no funciones que devuelven un valor, a pesar que no pueden recibir argumentos. A pesar de
estas limitaciones, las macros son una herramienta poderosa para aumentar la
productividad del usuario final de AutoCAD.
Un ejemplo de cmo es posible que desee utilizar una macro es al inicializar las
preferencias del usuario cada vez que se crea o se abre un dibujo, como en el siguiente
cdigo:

Public Sub Setup()
Application.Preferences.OpenSave.AutoSaveInterval = 15
End Sub

En este ejemplo, AutoCAD guardar el trabajo del usuario cada 15 minutos. Le
recomendamos que utilice una macro similar a esta para ajustar diferentes variables del
sistema para cada dibujo que usted trabaja o quizs para cuando comience cada sesin de
AutoCAD. La seccin anterior explic cmo hacer rutinas VBA que se ejecuten de forma
automtica al inicio de una sesin de AutoCAD o un dibujo.
21

The Macros Dialog Box
Utilice el cuadro de dilogo Macros para crear, ejecutar, depurar, modificar y eliminar
macros. Usted tambin puede controlar cmo se ejecuta una macro utilizando varias
opciones. En esta seccin se explica cada botn de este cuadro de dilogo.

Run
Este botn ejecuta su macro. Tambin puede ejecutar su macro desde dentro de la VBAIDE
seleccionando Run Run o presionando F5.


Step Into
Este botn permite desplazarse lnea a lnea a travs del cdigo de la macro que selecciona.
It enters the VBAIDE in step (or debug) mode at the beginning of the selected macro.
Tambin puede iniciar Step Into desde dentro del VBAIDE seleccionando Debug Step
Into o presionando F8.

Edit
This button lets you edit your macros code. It opens the VBAIDE in edit mode at the
beginning of the selected macro. This is identical to typing VBAIDE at the AutoCAD
command prompt and navigating to the appropriate project, module, and macro.

Create
To create a macro, enter a name in the Macros dialog box and
press the Create button. This opens a dialog box that lets you
choose where you want to create your macro. You can also
specify the project in which to create the macro. If you do not
specify a project name, the Select Project dialog box, shown in
Figure 1-25, appears. Choose from the list of loaded projects.

Delete
To delete a macro from the project file,
select the Delete button. If you accidentally
delete a macro, retrieve it by immediately
switching to the VBA editor, bring the
module that contained your source code into
focus, and either choose Edit Undo or
press Ctrl+Z.






Figure 1-25. The Select
Project dialog box


Caution This command deletes the source code associated with the macro. Be careful!
22


VBA Manager
This button opens the VBA Manager dialog box, which lets you create, edit, load, unload, close, embed, and
extract your VBA projects.



Note For more about this dialog box, see Creating, Opening, and Saving Projects, earlier in this
chapter.




Options

AutoCAD VBA provides three options for controlling how AutoCAD handles VBA projects by default. Table 1-1
explains these options.

Table 1-1. VBA Options in AutoCAD

Option Meaning Default Value
Enable Auto Embedding Determines whether a VBA project will be
embedded in the current drawing
False or unchecked
Allow Break on Errors Determines whether VBA is instructed to
enter Break mode when an error occurs in
your application
True or checked
Enable Macro Virus Protection Determines whether macro virus protection
is enabled
True or checked


Using the Text Editor

Fortunately, the VBA text editor is not just a plain old text editor. It has some pretty nice features that make your
application-development efforts more efficient. This section tells you how to take advantage of their usefulness.

Auto List Members

When you type a valid object name in your code and then type a period (.), VBA drops down a list of properties
and methods available for that object, as shown in Figure 1-26. Typing the first few letters of the property or
method name moves you to that selection in the list. Pressing the Tab key completes the typing for you. You can
also press the Complete Word button on the Edit toolbar. This option is also helpful when you arent sure which
properties are available for an object.
Visual Basic 6 and VB.NET 11 1 programmers know this feature by its other name: IntelliSense.
23





Figure 1-26. An Auto List Members example



Tip If you disable the Auto List feature, you can still access it by pressing Ctrl+J.




Informacin rpida automtica
Auto Quick Info displays the syntax of statements, procedures, and functions that are early-
bound (there is a reference set to the object library youre using). This feature is not available
for late-bound objects (no reference set to the object library). When you type the name of a
valid Visual Basic statement, procedure, or function, the IDE shows the syntax immediately
below the current line, with the first argument in boldface, as shown in Figure 1-27. After
entering the first argument value, the second argument appears in boldface, and so on.




Figure 1-27. An Auto Quick Info example



Tip If you disable the Auto Quick Info feature, you can still access it by pressing Ctrl+I.



You may have noticed that this feature also provides you with a functions return value,
which can be very helpful when you use an unfamiliar function for the first time.
24


Descripcin General de los Comandos AutoCAD VBA
AutoCAD ofrece una serie de comandos para acceder al editor de VBA y ejecutar cdigo
VBA. La Tabla 1-2 resume los comandos que se pueden introducir en la lnea de comandos
en AutoCAD.
Tabla 1-2. Comandos del editor de VBA

Comando Descripcin
VBALOAD Carga un archivo (.dvb) de proyecto de VBA en la memoria de AutoCAD. Si usted va
a editar el proyecto, es posible que desee hacer clic en la opcin Editor de Visual
Basic. Esto le pone en el editor de VBA para la edicin inmediata.
VBAIDE Abre el VBAIDE. Si ha cargado un proyecto, esto abre el editor de VBA para que
pueda comenzar a editar.
VBAUNLOAD Descarga el proyecto actual. Si ha realizado cambios sin guardarlos, AutoCAD le pide
que guarde su proyecto VBA primero.
VBARUN Abre un cuadro de dilogo desde el que puede elegir una macro de VBA para
ejecutar. Esta opcin tiene una serie de caractersticas que usted puede elegir.
-VBARUN Ejecuta una macro VBA desde la lnea de comandos AutoCAD. Si usted tiene macros
con el mismo nombre en ms de un archivo de mdulo, entonces usted debe usar la
sintaxis <modulename.macroname>.
VBAMAN Invokes the VBA Manager dialog box, which lets you view, create, load, close, embed,
and extract projects.
VBASTMT Ejecuta una expresin VBA desde la lnea de comandos de AutoCAD.



Resumen
Este captulo abarca una tremenda cantidad de informacin acerca del entorno de desarrollo
integrado de Visual Basic para Aplicaciones, o VBAIDE. Aunque que esto es suficiente para
la mayora de sus necesidades de desarrollo en AutoCAD VBA, puede obtener ms ayuda
de los archivos de Ayuda de AutoCAD. El siguiente captulo es una introduccin al lenguaje
de programacin Visual Basic y sus variables, constantes, estructuras de control, y ms.
Tambin es una introduccin a los conceptos bsicos de la programacin orientada a
objetos.

También podría gustarte