Está en la página 1de 18

PROGRAMACIN DE MACROS Captulo 1

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 los antiguos procesadores o editores de texto, crear macros implicaba li-


diar con crpticos lenguajes de programacin, por lo cual el usuario comn
rpidamente abandonaba la tarea. Luego, a medida que los programas se fue-
ron haciendo ms sofisticados, se populariz la opcin de grabar macros. Con
esta facilidad, basta con pedirle al programa en cuestin que aprenda una
secuencia de acciones llevadas a cabo por el usuario, para despus repetirlas
automticamente a pedido del mismo.

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

Abra Word y cargue un documento cualquiera (que contenga algn tex-


to). Marque un bloque de texto (no importa su longitud) y luego selec-
cione Herramientas / Macro / Grabar nueva macro.

Aparecer el cuadro de dilogo Grabar macro. En l, deber asignar a


la macro un nombre y una descripcin. Asgnele por ejemplo el nom-
bre FormatearConTabs (tenga en cuenta que el nombre no debe tener

14
Qu es una macro?

espacios) y la descripcin que

1
desee. Deber indicar si la ma-

Primeros pasos en Visual Basic


cro quedar almacenada en el
documento en uso o en la
plantilla activa o la plantilla
por defecto (por ejemplo, Nor-
mal.dot). Seleccione la planti-
lla por defecto, de modo tal
que la macro quede disponible
para todos los documentos
que vamos a utilizar.

Luego de pulsar Aceptar en el cuadro de dilogo anterior, habr comen-


zado la grabacin de la macro. Cualquier accin que usted realice a
partir de este momento quedar registrada en ella. Solo deber realizar
cada uno de los pasos en la secuencia correcta.

Abra el men Edicin y seleccione la opcin Reemplazar. Como texto a


buscar, coloque simplemente un espacio en el campo Buscar opciones:.
Luego site el cursor sobre el campo Reemplazar con:. Cliquee en el bo-
tn Especial, al pie de la ventana (si no aparece, cliquee antes el botn
Ms), y seleccione la opcin Marca de tabulacin.

15
PROGRAMACIN DE MACROS

Cliquee en Reemplazar todos. Inmediatamente, el programa le avisar


que realiz un determinado nmero de reemplazos y le preguntar si
quiere continuar con el resto del documento. Responda que no.

Finalice la grabacin de la macro presionando el botn de la barra flo-


tante que apareci al comenzar la grabacin. Obviamente, esta accin
no se registra en la macro.

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.

El desarrollo en Office con VBA


Adems de dar la opcin de grabar macros, Microsoft Office cuenta con una
herramienta de programacin que permite editarlas para darles ms funciona-
lidad de la que obtienen, simplemente imitando las acciones del usuario. Di-
cha herramienta es nada menos que Visual Basic para Alicaciones (VBA), una
versin del popular lenguaje de programacin Visual Basic diseada para fun-
cionar dentro de otras aplicaciones. De hecho, la macro creada en el ejemplo
anterior qued registrada en Word como un pequeo programa en Visual Ba-
sic. Ms adelante en este captulo, veremos cmo acceder al entorno de desa-
rrollo para ver el cdigo de programacin correspondiente a esta macro.

Adems de dar la posibilidad de automatizar tareas como en el ejemplo an-


terior VBA brinda a los programadores el poder para desarrollar sistemas
que se valgan de la funcionalidad de Office para realizar tareas complejas. Por
ejemplo, se pueden construir programas que analicen los datos de bases Ac-
cess, muestren resultados a travs de presentaciones PowerPoint y grficos de
Excel, y enven mensajes de Outlook a determinados usuarios con informes
elaborados a partir de plantillas de Word.

Esto es posible gracias a que Microsoft Office no es simplemente un conjunto


de aplicaciones; es una gigantesca caja de herramientas llena de componentes

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-

Primeros pasos en Visual Basic


mentos manipulables por Office.
VBA nos abre la tapa de esa caja de herramientas y nos permite tomar de
ella los componentes de software que queramos para combinarlos y de ese
modo, automatizar tareas o construir nuevas aplicaciones que, en definitiva,
hagan ms fcil nuestro trabajo cotidiano.

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.

Para comprender mejor esta idea, lo conveniente es hacer un ejemplo. En la


siguiente gua paso a paso, insertaremos un calendario dentro de una planilla
Excel para simplificar la seleccin de fechas.

17
PROGRAMACIN DE MACROS

Insertar un control ActiveX en Excel PASO A PASO

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.

Busque el elemento Control Calendar y cliquee en Aceptar. En la planilla


se dibujar un calendario que permite seleccionar fechas grficamente.

18
El desarrollo en Office con VBA

Active la barra de herramien-

1
tas Visual Basic, cliqueando

Primeros pasos en Visual Basic


con el botn derecho sobre
cualquiera de las barras de herramientas de Excel y seleccionando la op-
cin Visual Basic en el men contextual.

Uno de los botones de esta barra se denomina Modo Diseo. Seleccine-


lo para pasar a modo Diseo.

Una vez activado el modo Diseo, cliquee sobre el control Calendario


antes insertado en la planilla. Ver que ahora el control no permite
seleccionar fechas; sin embargo, el mismo fue rodeado por puntos de
seleccin que permiten cambiar su tamao y ubicacin en la planilla.
A su vez, al estar en modo diseo, es posible cambiar las propiedades
del objeto, con lo cual se modificar su comportamiento. Cliquee
sobre el control con el botn derecho, seleccione la opcin Objeto Ca-
lendario y Propiedades.

Aparecer una ventana de dilogo que permite modificar las propie-


dades del objeto Calendario, alterando su aspecto y tambin su fun-
cionamiento. Obsrvese que en la seccin General, la propiedad Value
contiene una fecha, correspondiente a la fecha seleccionada en el con-
trol. Esta propiedad es la que permite, mediante cdigo de programa-
cin, averiguar la fecha seleccionada para realizar clculos o llevar a
cabo alguna accin en funcin de ella.

19
PROGRAMACIN DE MACROS

Modifique la propiedad Ttulo de mes o ao destildando la opcin co-


rrespondiente y cliquee en Aceptar.

Cliquee en el botn para salir finalmente del modo Diseo (emplean-


do el mismo que us anteriormente para entrar en l) y observe c-
mo cambi el aspecto del control Calendario, segn se muestra en la
siguiente imagen.

La experiencia realizada en el ejercicio anterior ofrece una vista previa de lo


que significa programar en Visual Basic: insertar controles sobre formularios
o documentos, modificar sus propiedades y (algo que haremos en prximos
prrafos) escribir bloques de instrucciones en lenguaje Basic que permitan
llevar a cabo determinadas acciones cuando ocurre algo (un evento, para ser
ms preciso) sobre los controles.
Obviamente, la programacin en Visual Basic no es solo eso. Las macros y
aplicaciones hechas en Visual Basic, a medida que se van tornando comple-
jas, van requiriendo ms trabajo de escribir cdigo y menos, de dibujar con-
troles. Y a su vez, nos ofrecen una mayor cantidad de posibilidades. Pero ya
habr tiempo para eso. En principio, continuemos conociendo los aspectos
que hacen al entorno de programacin que nos ofrece Office.

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).

Figura 1. El entorno de desarrollo de VBA en Word.

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

comienza a agregar cdigo a travs de grabacin de macros o edicin de m-


dulos. Para entrar al Editor de Visual Basic, se debe acceder a la opcin de
men Herramientas / Macro / Editor de Visual Basic de cualquiera de las apli-
caciones de Office, o bien presionar Alt-F11. Ah veremos en un primer mo-
mento unicamente los mdulos creados con la grabadora de macros.

Es conveniente saber que recin a partir de la versin 2000, Access y Outlook


incorporaron el Editor de Visual Basic al igual que Word, Excel y PowerPoint.
En versiones anteriores de Outlook solo se podan manipular sus objetos des-
de otras aplicaciones de Office u otros entornos de programacin. Y en las
versiones anteriores de Access, la edicin del cdigo VBA se llevaba a cabo di-
rectamente desde la ventana principal de la aplicacin, en lugar de hacerlo
utilizando el Editor de Visual Basic.

El editor de Visual Basic GUA VISUAL 1

22
El desarrollo en Office con VBA

Explorador de proyectos. Muestra una lista de los proyectos en uso y

1
los elementos a los que hace referencia cada uno de ellos. Estos ele-

Primeros pasos en Visual Basic


mentos pueden ser objetos propios de la aplicacin (documentos o
plantillas de Word, por ejemplo), mdulos de cdigo o formularios
(UserForms), o referencias. Podremos llamar a cualquiera de estos ele-
mentos para editarlos.
Ventana de propiedades. Cuando se selecciona un objeto en el explo-
rador de proyectos, se abre un formulario o un mdulo de cdigo, o
bien cuando se selecciona un control dentro de un formulario, esta ven-
tana muestra sus propiedades, en orden alfabtico. Esta ventana es
muy til ya que tambin admite la modificacin de los valores de cada
propiedad (excepto las de solo lectura).
Ventana de edicin de cdigo. Cumple la funcin de un editor de texto
avanzado, en donde se ingresa o modifica el cdigo de programacin de
un mdulo de cdigo, de un mdulo de clase o de un formulario. Puede
haber mltiples ventanas de edicin de cdigo, cada una mostrando los
procedimientos asociados a un elemento de un proyecto. Una herra-
mienta til de esta ventana es que el texto adopta automticamente dis-
tintos colores segn su funcin: las palabras reservadas aparecen en azul;
los comentarios, en verde; el cdigo con errores de sintaxis, en rojo, y to-
do lo dems, en negro.
Formularios. Constituyen las ventanas de los programas VBA, una vez
que fueron desarrollados. Sobre los formularios se disponen controles
para que el usuario, al accionar la macro en Office, pueda ingresar f-
cilmente los datos, elija diferentes opciones de una lista, acepte o can-
cele una determinada accin, etc.
Ventana Inmediato. En esta ventana, se ejecutan instrucciones indivi-
duales que se procesan en el momento, a diferencia de las instruccio-
nes en mdulos de cdigo o formularios. Un ejemplo elemental del uso
de esta ventana, consiste en escribir Print 2 + 2 y presionar Enter. Inme-
diatamente aparecer el resultado de sumar 2 ms 2.
Cuadro de herramientas. Contiene un conjunto de controles que se uti-
lizan para el diseo de los formularios (botones, listas desplegables, ba-
rras de desplazamiento, cuadros de texto, etc.). Ms adelante, veremos
en detalle la funcionalidad de cada una de estas herramientas.

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.

Las instrucciones Basic se escriben dentro de bloques de instrucciones llama-


dos procedimientos, que pueden ser de tipo Sub o Function (no se preocupe
que nos referiremos ms a esto en el Captulo 2).
Estos procedimientos son el equivalente informtico a una receta de coci-
na: sus instrucciones son rdenes que, en vez de ser ledas y ejecutadas por
una cocinera, son ledas y ejecutadas por el motor de ejecucin de Visual
Basic, por supuesto, a travs de nuestra computadora. Estas rdenes dicen
cosas tales como obtener tal rango de la planilla, hacer tal cosa con este
bloque de texto, etc., solo que en un lenguaje ms sinttico.

Las instrucciones en un procedimiento se ejecutan secuencialmente desde la


primera a la ltima; salvo que ocurra un error, en cuyo caso la ejecucin se
detiene, generando el mensaje correspondiente o devolviendo la posta a una
instancia superior que deber encargarse de tratar ese error debidamente.
A su vez, los procedimientos pueden ser invocados desde otros procedimien-
tos. La idea de esto es dividir la funcionalidad de los programas en muchas
partes, cada una con una tarea bien definida, y adems no tener que escribir
muchas veces un mismo programa que se usa en distintas situaciones. Por
ejemplo, se puede hacer un procedimiento genrico para enviar mensajes de
correo electrnico, estableciendo el destinatario, mensaje, asunto, etc. Luego,
cuando se necesite enviar un mail desde un programa, en vez de programar
todos los pasos necesarios, simplemente se invoca este procedimiento, pasn-
dole como parmetros el destinatario, mensaje, asunto, etc.

24
Cmo se programa en Visual Basic?

Es conveniente saber que los parmetros de un procedimiento son datos que

1
estos necesitan para cumplir su tarea. Por ejemplo, un procedimiento que di-

Primeros pasos en Visual Basic


buja una lnea entre dos puntos necesita, como mnimo, que se le indique
desde dnde y hasta dnde dibujar la lnea. Las coordenadas de los extremos
de la lnea a dibujar sern, entonces, sus parmetros.
Por ltimo, sepa que siempre que necesite escribir instrucciones para hacer
una determinada tarea en Office, y no conozca la forma correcta de hacerlo,
haga que el mismo Office le ensee: grabe una macro que lleve a cabo esa ta-
rea y luego vea el cdigo de la macro con el Editor de Visual Basic.

Mi primer programa Visual Basic


A continuacin, vamos a hacer una primera incursin en el entorno de pro-
gramacin de VBA, introduciendo una pequea modificacin en la macro
FormatearConTabs, creada anteriormente en este captulo.
Para ello, primero deber entrar al Editor de Visual Basic de Word, (no se
acuerda cmo? Muy sencillo: con Alt-F11 o a travs de la opcin Herramien-
tas / Macro / Editor de Visual Basic). La ventana del Explorador de proyectos
muestra un proyecto por cada documento que Word tenga abierto. En ella
debera poder ver dos proyectos: Normal, correspondiente a la plantilla acti-
va, y Project (Documento1), correspondiente al documento abierto (si tiene
un nombre diferente de Documento1, aqu figurar ese nombre). Por cada
documento que se abre o se crea, se suma otro proyecto a la lista.

Tal como lo muestra el Explorador, un proyecto se compone de un conjun-


to de carpetas. En el caso del proyecto Normal, estas carpetas son Microsoft
Word Objetos y Mdulos. En esta ltima, se encuentra el mdulo NewMacros,
que es donde se guarda el cdigo de las macros asociadas a la plantilla, in-
cluyendo tambin el de la macro grabada anteriormente. Para ver el cdi-
go de programacin de cualquiera de las macros, busque en el Explorador
el mdulo NewMacros y, cliqueando con el botn derecho del mouse sobre
l, seleccione la opcin Ver Cdigo.

Cada macro de la plantilla tiene asociado un procedimiento de tipo Sub en


el mdulo NewMacros. Por lo tanto, el cdigo de la macro FormatearCon-
Tabs aparecer luego de la instruccin Sub FormatearConTabs() (Figura 2).

25
PROGRAMACIN DE MACROS

Figura 2. Las instrucciones de la macro FormatearConTabs.

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?

Office es una gigantesca caja de herramientas? Pues este es el primer ejem-

1
plo). En particular, Selection hace referencia al bloque de texto seleccionado

Primeros pasos en Visual Basic


en un documento en un momento determinado. Y Find es un objeto hijo
de Selection que permite hacer una bsqueda sobre el texto contenido en Se-
lection (ms sobre los objetos y sus relaciones se tratar en el captulo 4).
Observe la primera de las instrucciones de FormatearConTabs:

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).

Esta primera instruccin nos da la pauta de cmo se utilizan los objetos en


el lenguaje de programacin Basic: se coloca el nombre del objeto (en este ca-
so, Selection), luego un punto, a continuacin el nombre del objeto hijo,
si lo hubiere (en este caso, Find) y, finalmente, se escribe el nombre del m-
todo a ejecutar (en este caso, ClearFormatting).
La siguiente instruccin hace lo mismo que la anterior, pero en este caso, so-
bre un hijo del objeto Find (o un nieto del objeto Selection) denominado
Replacement. Al ejecutar el mtodo ClearFormatting del objeto Replace-
ment, se limpian los campos a utilizar como sustitucin del texto buscado.
Lo que viene a continuacin es el comienzo de un bloque de instrucciones With:

With Selection.Find

Los bloques With se utilizan para abreviar la escritura de cdigo, deleitando


a los amantes de la ley del menor esfuerzo. Cuando se inicia un bloque With,
se establece que todas las instrucciones siguientes que comiencen con un

27
PROGRAMACIN DE MACROS

punto harn referencia al objeto indicado a la derecha de la palabra With (en


este caso, Selection.Find) hasta tanto no se encuentre la instruccin End With.
De este modo, se evita la necesidad de tipear el nombre del objeto en cada
una de las instrucciones.

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.

La ltima instruccin de la macro es el mtodo Execute, el cual se encarga de


efectuar el reemplazo del texto segn las propiedades establecidas anterior-
mente. Ahora, este mtodo no se ejecuta as noms, sino que se le indica un
valor para el parmetro Replace:

.Execute Replace:=wdReplaceAll

El valor asignado a dicho parmetro (la constante wdReplaceAll) indica que se


reemplacen todas las ocurrencias del texto buscado. No se preocupe, ya que en
el captulo 2 se explica ms detalladamente el uso de parmetros y constantes.
Esta macro tiene un pequeo defecto: cuando termina de ejecutar, siempre
aparece un mensaje preguntando si queremos continuar la bsqueda desde el

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.

Primeros pasos en Visual Basic


Pero con una mnima edicin del cdigo Basic de la macro podemos corre-
gir este problema muy rpidamente.

Busque en el cdigo de la macro la siguiente instruccin:

.Wrap = wdFindAsk

Ahora reemplace lo que hay a la derecha del signo = por: wdFindStop. La


instruccin corregida debe quedar as:

.Wrap = wdFindStop

Vuelva a ejecutar la macro y ver que el molesto mensaje ya no aparece ms.

Para finalmente grabar esta modificacin, cliquee el botn Grabar en la barra


de herramientas. Si desplaza el mouse por encima de dicho botn, ver que
el texto del botn (el ToolTip) dice Guardar Normal. Esto significa que,
al cliquear en este botn, las modificaciones hechas a la macro se guardarn
en la plantilla Normal, para poder ser empleada en cualquier otro momento.

Figura 3. La macro ser guardada en la plantilla Normal.

29
PROGRAMACIN DE MACROS

Resumen del captulo


En este captulo hemos aprendido lo que es una macro y cmo se utilizan las
macros en las aplicaciones de Microsoft Office. Hemos utilizado la opcin de
grabacin de macros de Word para crear un sencillo programa en Visual Ba-
sic para Aplicaciones, para luego modificarlo mediante el editor de Visual Ba-
sic que ofrece Word.

Se recomienda utilizar los conocimientos adquiridos hasta aqu para experi-


mentar con la grabacin de distintas macros en Word, Excel y Power Point,
viendo y aprendiendo en cada uno, cmo estas aplicaciones traducen las
acciones del usuario en programas Visual Basic.

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

También podría gustarte