Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programacion de Macros PDF
Programacion de Macros PDF
Primeros pasos
en Visual Basic
Visual Basic es uno de los lenguajes
de programacin ms cmodos
y fciles de aprender. Por eso, millones
de programadores en todo el mundo
lo utilizan. Sin embargo, para muchos
usuarios, la palabra programar suena
a ciencia oculta.
En este captulo se intenta demostrar
lo contrario, explicando lo fcil que
es crear macros o programas mediante
la versin de Visual Basic incluida en Qu es una macro? 14
El desarrollo en Office con VBA 16
las aplicaciones de Microsoft Office. Objetos ActiveX 17
El entorno de desarrollo 21
Cmo se programa
en Visual Basic? 24
Mi primer programa Visual Basic 25
SERVICIO DE ATENCIN AL LECTOR: lectores@tectimes.com Resumen del captulo 30
PROGRAMACIN DE MACROS
Qu es una macro?
Las macros de los programas de aplicacin son secuencias de acciones que se
ejecutan automticamente al cliquear un botn o una combinacin de teclas,
permitiendo automatizar tareas que se realizan con frecuencia. Por ejemplo,
quien habitualmente escribe monografas y acostumbra encabezarlas con un
ttulo en negrita, centrado y subrayado, querr tener la posibilidad de pro-
gramar algn mecanismo para que esas tres opciones de formateo se ejecu-
ten rpidamente al presionar por ejemplo las teclas Alt-E (de Encabezado).
O quien escribe cartas formales muy seguido, querr encontrar una forma de
que las palabras De mi consideracin aparezcan automticamente cuando
cliquea un botn especial para crear una nueva carta.
En Microsoft Office, esta tarea se lleva a cabo mediante la opcin Grabar nue-
va macro..., que se encuentra en el men Herramientas / Macro de Word, Ex-
cel y PowerPoint. Para poner a prueba esta utilidad, vamos a crear una macro
que reemplaza todos los espacios en un bloque de texto por tabuladores, pa-
ra poder insertar ese texto en Excel.
PASO A PASO
Grabacin de una macro PASO A PASO
14
Qu es una macro?
1
desee. Deber indicar si la ma-
15
PROGRAMACIN DE MACROS
Para ver si la macro funciona como debera, seleccione un texto y luego eje-
ctela, accediendo a la opcin de men Herramientas Macro Macros..., eli-
giendo el tem FormatearConTabs (o el nombre que le haya puesto) en la lis-
ta de macros y cliqueando el botn Ejecutar.
16
El desarrollo en Office con VBA
de software preparados para llevar a cabo toda clase de tareas con documen-
1
tos, planillas, presentaciones, bases de datos, correos electrnicos y dems ele-
Para comprender un poco ms acerca de este tema, tenemos que saber que
las aplicaciones de hoy en da no se construyen, como ocurra en el pasado,
escribiendo pginas y pginas de cdigo de programacin. En cambio, gran
parte del trabajo de un programador consiste actualmente en tomar piezas
de software prefabricadas y ensamblarlas a modo de rompecabezas para
construir una aplicacin. A estas piezas de software se las denomina com-
ponentes, y tienen la cualidad de cumplir un conjunto de funciones bien
definidas, que evitan al programador la tarea de averiguar en detalle cmo
hacen para cumplir esas funciones.
Objetos ActiveX
Una clase especial de componentes son los objetos ActiveX. Estos tienen la
particularidad de poder utilizarse fcilmente dentro de cualquier entorno que
los acepte, como por ejemplo: documentos de Word, planillas Excel, pginas
Web, mensajes de mail, etc.
Los objetos ActiveX agregan funcionalidad al contenedor en el que estn in-
sertos. Dentro de los objetos ActiveX se distingue una categora especial, de-
nominada controles ActiveX, que incluye objetos utilizados para armar inter-
faces de usuario en programas de aplicacin. En Visual Basic se hace un uso
intensivo de los controles ActiveX para confeccionar las ventanas de las apli-
caciones. Pero un control ActiveX tambin puede insertarse dentro de docu-
mentos, como por ejemplo, una planilla Excel, para que dicho documento
tenga una interfaz de usuario ms amigable.
17
PROGRAMACIN DE MACROS
Abra Excel con una planilla en blanco. Acceda al men Insertar / Objeto...
Aparecer entonces una ventana que muestra todos los objetos inserta-
bles registrados en el sistema.
18
El desarrollo en Office con VBA
1
tas Visual Basic, cliqueando
19
PROGRAMACIN DE MACROS
20
El desarrollo en Office con VBA
El entorno de desarrollo
1
Primeros pasos en Visual Basic
Hasta ahora hemos grabado macros y hemos utilizado controles ActiveX. Es
hora de bucear un poco ms profundo en las aguas de la programacin en
Office. Para ello, no hay ms remedio que meterse en el entorno de desarro-
llo que ofrece este paquete de aplicaciones.
Todas las aplicaciones de Office brindan un entorno de desarrollo idntico,
denominado Editor de Visual Basic, que ofrece todas las herramientas de
programacin para disear formularios, ingresar cdigo, correr los progra-
mas, depurarlos, etctera (Figura 1).
Este entorno suele ser de aspecto muy similar tambin en las diferentes ver-
siones de Office, aunque no siempre estuvo presente en todos los programas,
como veremos a continuacin. Funciona como una ventana separada, pero
asociada a cada uno de los programas de Office, de modo tal que cuando se
cierra el programa asociado, tambin se cierra el Editor, y los programas crea-
dos con el editor se guardan en la planilla activa o en los documentos en uso
en la aplicacin asociada. Por ejemplo, cada documento que se genera con
Word incluye un proyecto de VBA, el cual permanece vaco hasta que se le
21
PROGRAMACIN DE MACROS
22
El desarrollo en Office con VBA
1
los elementos a los que hace referencia cada uno de ellos. Estos ele-
23
PROGRAMACIN DE MACROS
Cmo se programa
en Visual Basic?
Ya conocemos el Editor de Visual Basic y todas la ventanitas y herramientas
que lo componen. Y ahora qu hacemos con todo esto? No hay ms reme-
dio que arremangarse y comenzar a programar, escribiendo las instrucciones
correspondientes en el lenguaje de programacin Basic.
Si bien la escritura en lenguaje Basic es una tarea prcticamente inevitable a
la hora de crear macros de Office, no es imprescindible conocer a fondo to-
do el lenguaje para comenzar a trabajar. Es ms, mediante la grabacin de
macros podemos hacer que Office nos ensee cmo se traducen al lengua-
je Basic determinadas acciones que queremos programar.
24
Cmo se programa en Visual Basic?
1
estos necesitan para cumplir su tarea. Por ejemplo, un procedimiento que di-
25
PROGRAMACIN DE MACROS
Cuando se da la orden para que ejecute esta macro mediante el botn Eje-
cutar en la ventana de macros, Word busca el procedimiento Sub correspon-
diente y ejecuta una tras otras sus instrucciones, hasta toparse con End Sub,
que marca el final del procedimiento. Veamos en el leguaje de programacin,
qu es lo que hacen en realidad las instrucciones de FormatearConTabs.
Las primeras lneas (las que aparecen en verde y comienzan con un apstro-
fo) son comentarios que sirven nicamente para dar informacin adicional a
quien lee el programa, y se ignoran al momento de ejecutar.
Despus sigue una lista de instrucciones que hacen lo mismo que hara el
usuario para realizar la tarea que hace la macro: limpiar los campos donde se
ingresan los textos a buscar y a reemplazar, establecer todas las propiedades de
la bsqueda y, finalmente, ejecutar la bsqueda. Cmo hace la macro todo
esto? Manipulando un muy prctico objeto de Word. Seor lector, le presen-
to al objeto Selection, y a su hijo, el objeto Find. A lo largo del libro (y espe-
cialmente en el captulo 5) van a tener que trabajar mucho juntos.
Selection es uno de los innumerables objetos que ofrece Office para manipu-
lar los datos de sus aplicaciones (se acuerda cuando decamos que Microsoft
26
Cmo se programa en Visual Basic?
1
plo). En particular, Selection hace referencia al bloque de texto seleccionado
Selection.Find.ClearFormatting
ClearFormatting es un mtodo del objeto Find, que hace que este limpie los
formatos especificados como parte de una operacin de bsqueda. Al darle
esta instruccin al objeto Find, ocurre lo mismo que si cliqueramos el bo-
tn Sin formato del cuadro de dilogo Buscar y reemplazar (men Edicin).
Se utiliza este mtodo para asegurar que no se incluyan formatos no desea-
dos en los criterios de bsqueda y sustitucin.
Vale aclarar que los mtodos de un objeto son instrucciones que hacen que
el objeto ejecute una determinada accin sobre los datos que contiene (ms
sobre este tema en el Captulo 4 de este libro).
With Selection.Find
27
PROGRAMACIN DE MACROS
Las instrucciones que siguen hasta End With se utilizan todas para establecer
diferentes propiedades de la bsqueda: .Text establece el texto que la macro
va a buscar; .Replacement.Text establece el texto a utilizar como reemplazo;
.Forward indica que la bsqueda se har hacia delante.
Una buena idea resulta ser consultar la ayuda del programa ante cualquier
duda o inconveniente. Por ejemplo, dentro del editor de Visual Basic, cuan-
do se resalta una palabra por ejemplo, la propiedad Wrap de Selection-
.Find y se presiona F1, aparece ayuda especfica sobre la palabra resaltada.
Esta es la forma ms cmoda de aprender para qu sirve cada instruccin,
propiedad o mtodo de Visual Basic, y cmo es su sintaxis.
Antes de continuar, vamos a aclarar un aspecto: Por qu las dos primeras ins-
trucciones (y la ltima tambin) de la macro no estn incluidas dentro del
bloque With? Algn capricho del grabador de macros, que prefiere usar los
bloques With solo para manipular propiedades, y no para ejecutar mtodos.
Tranquilamente se puede incluir estas tres instrucciones dentro de ese blo-
que, borrndoles el prefijo Selection.Find.
.Execute Replace:=wdReplaceAll
28
Cmo se programa en Visual Basic?
principio del documento, cosa que no tiene mucho sentido, dado que esta
1
macro est hecha para ejecutarse nicamente sobre el texto seleccionado.
.Wrap = wdFindAsk
.Wrap = wdFindStop
29
PROGRAMACIN DE MACROS
PLANILLA TERMINADA
PRUBELO YA!
En el sitio onweb.tectimes.com encontrar disponibles los ejemplos tratados en este libro,
listos para bajar a su PC.
30