cap i tulo gratis visual basic

18
Primeros pasos en Visual Basic Capítulo 1 Visual Basic es uno de los lenguajes de programación más cómodos y fáciles 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 capítulo se intenta demostrar lo contrario, explicando lo fácil que es crear macros o programas mediante la versión de Visual Basic incluida en las aplicaciones de Microsoft Office. PROGRAMACIÓN DE MACROS SERVICIO DE ATENCIÓN AL LECTOR: [email protected] ¿Qué es una macro? 14 El desarrollo en Office con VBA 16 Objetos ActiveX 17 El entorno de desarrollo 21 ¿Cómo se programa en Visual Basic? 24 Mi primer programa Visual Basic 25 Resumen del capítulo 30

Upload: carlosfritz5834

Post on 25-Jul-2015

31 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Cap i Tulo Gratis Visual Basic

Primeros pasosen Visual Basic

Capítulo 1

Visual Basic es uno de los lenguajes

de programación más cómodos

y fáciles 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 capítulo se intenta demostrar

lo contrario, explicando lo fácil que

es crear macros o programas mediante

la versión de Visual Basic incluida en

las aplicaciones de Microsoft Office.

PROGRAMACIÓN DE MACROS

SERVICIO DE ATENCIÓN AL LECTOR: [email protected]

¿Qué es una macro? 14El desarrollo en Office con VBA 16

Objetos ActiveX 17El entorno de desarrollo 21

¿Cómo se programaen Visual Basic? 24

Mi primer programa Visual Basic 25Resumen del capítulo 30

Page 2: Cap i Tulo Gratis Visual Basic

¿Qué es una macro?Las macros de los programas de aplicación son secuencias de acciones que seejecutan automáticamente al cliquear un botón o una combinación de teclas,permitiendo automatizar tareas que se realizan con frecuencia. Por ejemplo,quien habitualmente escribe monografías y acostumbra encabezarlas con untítulo en negrita, centrado y subrayado, querrá tener la posibilidad de “pro-gramar” algún mecanismo para que esas tres opciones de formateo se ejecu-ten rápidamente al presionar –por ejemplo– las teclas Alt-E (de Encabezado).O quien escribe cartas formales muy seguido, querrá encontrar una forma deque las palabras “De mi consideración” aparezcan automáticamente cuandocliquea un botón especial para crear una nueva carta.

En los antiguos procesadores o editores de texto, crear macros implicaba li-diar con crípticos lenguajes de programación, por lo cual el usuario comúnrápidamente abandonaba la tarea. Luego, a medida que los programas se fue-ron haciendo más sofisticados, se popularizó la opción de grabar macros. Conesta facilidad, basta con pedirle al programa en cuestión que “aprenda” unasecuencia de acciones llevadas a cabo por el usuario, para después repetirlasautomáticamente a pedido del mismo.

En Microsoft Office, esta tarea se lleva a cabo mediante la opción 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 macroque reemplaza todos los espacios en un bloque de texto por tabuladores, pa-ra poder insertar ese texto en Excel.

PASO A PASOGrabación de una macro PASO A PASO

Abra Word y cargue un documento cualquiera (que contenga algún tex-to). Marque un bloque de texto (no importa su longitud) y luego selec-cione Herramientas / Macro / Grabar nueva macro.

Aparecerá el cuadro de diálogo Grabar macro. En él, deberá asignar ala macro un nombre y una descripción. Asígnele –por ejemplo– el nom-bre FormatearConTabs (tenga en cuenta que el nombre no debe tener

PROGRAMACIÓN DE MACROS

14

Page 3: Cap i Tulo Gratis Visual Basic

espacios) y la descripción quedesee. Deberá indicar si la ma-cro quedará almacenada en eldocumento en uso o en laplantilla activa o la plantillapor defecto (por ejemplo, Nor-mal.dot). Seleccione la planti-lla por defecto, de modo talque la macro quede disponiblepara todos los documentosque vamos a utilizar.

Luego de pulsar Aceptar en el cuadro de diálogo anterior, habrá comen-zado la grabación de la macro. Cualquier acción que usted realice apartir de este momento quedará registrada en ella. Solo deberá realizarcada uno de los pasos en la secuencia correcta.

Abra el menú Edición y seleccione la opción Reemplazar. Como texto abuscar, coloque simplemente un espacio en el campo Buscar opciones:.Luego sitúe el cursor sobre el campo Reemplazar con:. Cliquee en el bo-tón Especial, al pie de la ventana (si no aparece, cliquee antes el botónMás), y seleccione la opción Marca de tabulación.

¿Qué es una macro?

15

Prim

eros

pas

os e

n V

isua

l Bas

ic1

Page 4: Cap i Tulo Gratis Visual Basic

Cliquee en Reemplazar todos. Inmediatamente, el programa le avisaráque realizó un determinado número de reemplazos y le preguntará siquiere continuar con el resto del documento. Responda que no.

Finalice la grabación de la macro presionando el botón de la barra flo-tante que apareció al comenzar la grabación. Obviamente, esta acciónno se registra en la macro.

Para ver si la macro funciona como debería, seleccione un texto y luego eje-cútela, accediendo a la opción 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 botón Ejecutar.

El desarrollo en Office con VBAAdemás de dar la opción de grabar macros, Microsoft Office cuenta con unaherramienta de programación que permite editarlas para darles más funciona-lidad de la que obtienen, simplemente “imitando” las acciones del usuario. Di-cha herramienta es nada menos que Visual Basic para Alicaciones (VBA), unaversión del popular lenguaje de programación Visual Basic diseñada para fun-cionar dentro de otras aplicaciones. De hecho, la macro creada en el ejemploanterior quedó registrada en Word como un pequeño programa en Visual Ba-sic. Más adelante en este capítulo, veremos cómo acceder al entorno de desa-rrollo para ver el código de programación correspondiente a esta macro.

Además de dar la posibilidad de automatizar tareas –como en el ejemplo an-terior– VBA brinda a los programadores el poder para desarrollar sistemasque se valgan de la funcionalidad de Office para realizar tareas complejas. Porejemplo, se pueden construir programas que analicen los datos de bases Ac-cess, muestren resultados a través de presentaciones PowerPoint y gráficos deExcel, y envíen mensajes de Outlook a determinados usuarios con informeselaborados a partir de plantillas de Word.

Esto es posible gracias a que Microsoft Office no es simplemente un conjuntode aplicaciones; es una gigantesca caja de herramientas llena de componentes

PROGRAMACIÓN DE MACROS

16

Page 5: Cap i Tulo Gratis Visual Basic

de software preparados para llevar a cabo toda clase de tareas con documen-tos, planillas, presentaciones, bases de datos, correos electrónicos y demás ele-mentos manipulables por Office.VBA nos “abre la tapa” de esa caja de herramientas y nos permite tomar deella los componentes de software que queramos para combinarlos y de esemodo, automatizar tareas o construir nuevas aplicaciones que, en definitiva,hagan más fácil nuestro trabajo cotidiano.

Para comprender un poco más acerca de este tema, tenemos que saber quelas aplicaciones de hoy en día no se construyen, como ocurría en el pasado,escribiendo páginas y páginas de código de programación. En cambio, granparte del trabajo de un programador consiste actualmente en tomar piezasde software prefabricadas y ensamblarlas –a modo de rompecabezas– paraconstruir una aplicación. A estas piezas de software se las denomina com-ponentes, y tienen la cualidad de cumplir un conjunto de funciones biendefinidas, que evitan al programador la tarea de averiguar en detalle cómohacen para cumplir esas funciones.

Objetos ActiveX

Una clase especial de componentes son los objetos ActiveX. Estos tienen laparticularidad de poder utilizarse fácilmente dentro de cualquier entorno quelos acepte, como por ejemplo: documentos de Word, planillas Excel, páginasWeb, mensajes de mail, etc.Los objetos ActiveX agregan funcionalidad al contenedor en el que están in-sertos. Dentro de los objetos ActiveX se distingue una categoría especial, de-nominada controles ActiveX, que incluye objetos utilizados para armar inter-faces de usuario en programas de aplicación. En Visual Basic se hace un usointensivo de los controles ActiveX para confeccionar las ventanas de las apli-caciones. Pero un control ActiveX también puede insertarse dentro de docu-mentos, como por ejemplo, una planilla Excel, para que dicho documentotenga una interfaz de usuario más amigable.

Para comprender mejor esta idea, lo conveniente es hacer un ejemplo. En lasiguiente guía paso a paso, insertaremos un calendario dentro de una planillaExcel para simplificar la selección de fechas.

El desarrollo en Office con VBA

17

Prim

eros

pas

os e

n V

isua

l Bas

ic1

Page 6: Cap i Tulo Gratis Visual Basic

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 planillase dibujará un calendario que permite seleccionar fechas gráficamente.

PROGRAMACIÓN DE MACROS

18

Page 7: Cap i Tulo Gratis Visual Basic

Active la barra de herramien-tas Visual Basic, cliqueandocon el botón derecho sobrecualquiera de las barras de herramientas de Excel y seleccionando la op-ción Visual Basic en el menú contextual.

Uno de los botones de esta barra se denomina Modo Diseño. Seleccióne-lo para pasar a modo Diseño.

Una vez activado el modo Diseño, cliquee sobre el control Calendarioantes insertado en la planilla. Verá que ahora el control no permiteseleccionar fechas; sin embargo, el mismo fue rodeado por puntos deselección que permiten cambiar su tamaño y ubicación en la planilla.A su vez, al estar en modo diseño, es posible cambiar las propiedadesdel objeto, con lo cual se modificará su “comportamiento”. Cliqueesobre el control con el botón derecho, seleccione la opción Objeto Ca-lendario y Propiedades.

Aparecerá una ventana de diálogo que permite modificar las propie-dades del objeto Calendario, alterando su aspecto y también su fun-cionamiento. Obsérvese que en la sección General, la propiedad Valuecontiene una fecha, correspondiente a la fecha seleccionada en el con-trol. Esta propiedad es la que permite, mediante código de programa-ción, averiguar la fecha seleccionada para realizar cálculos o llevar acabo alguna acción en función de ella.

El desarrollo en Office con VBA

19

Prim

eros

pas

os e

n V

isua

l Bas

ic1

Page 8: Cap i Tulo Gratis Visual Basic

Modifique la propiedad Título de mes o año destildando la opción co-rrespondiente y cliquee en Aceptar.

Cliquee en el botón para salir finalmente del modo Diseño (emplean-do el mismo que usó anteriormente para entrar en él) y observe có-mo cambió el aspecto del control Calendario, según se muestra en lasiguiente imagen.

La experiencia realizada en el ejercicio anterior ofrece una “vista previa” de loque significa programar en Visual Basic: insertar controles sobre formularioso documentos, modificar sus propiedades y (algo que haremos en próximospárrafos) escribir bloques de instrucciones en lenguaje Basic que permitanllevar a cabo determinadas acciones cuando ocurre “algo” (un evento, para sermás preciso) sobre los controles.Obviamente, la programación en Visual Basic no es solo eso. Las macros yaplicaciones hechas en Visual Basic, a medida que se van tornando comple-jas, van requiriendo más trabajo de escribir código y menos, de dibujar con-troles. Y a su vez, nos ofrecen una mayor cantidad de posibilidades. Pero yahabrá tiempo para eso. En principio, continuemos conociendo los aspectosque hacen al entorno de programación que nos ofrece Office.

PROGRAMACIÓN DE MACROS

20

Page 9: Cap i Tulo Gratis Visual Basic

El entorno de desarrollo

Hasta ahora hemos grabado macros y hemos utilizado controles ActiveX. Eshora de bucear un poco más profundo en las aguas de la programación enOffice. Para ello, no hay más 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 idéntico,denominado Editor de Visual Basic, que ofrece todas las herramientas deprogramación para diseñar formularios, ingresar código, correr los progra-mas, depurarlos, etcétera (Figura 1).

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

Este entorno suele ser de aspecto muy similar también en las diferentes ver-siones de Office, aunque no siempre estuvo presente en todos los programas,como veremos a continuación. Funciona como una ventana separada, peroasociada a cada uno de los programas de Office, de modo tal que cuando secierra el programa asociado, también se cierra el Editor, y los programas crea-dos con el editor se guardan en la planilla activa o en los documentos en usoen la aplicación asociada. Por ejemplo, cada documento que se genera conWord incluye un proyecto de VBA, el cual permanece vacío hasta que se le

El desarrollo en Office con VBA

21

Prim

eros

pas

os e

n V

isua

l Bas

ic1

Page 10: Cap i Tulo Gratis Visual Basic

comienza a agregar código a través de grabación de macros o edición de mó-dulos. Para entrar al Editor de Visual Basic, se debe acceder a la opción demenú 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 módulos creados con la grabadora de macros.

Es conveniente saber que recién a partir de la versión 2000, Access y Outlookincorporaron el Editor de Visual Basic al igual que Word, Excel y PowerPoint.En versiones anteriores de Outlook solo se podían manipular sus objetos des-de otras aplicaciones de Office u otros entornos de programación. Y en lasversiones anteriores de Access, la edición del código VBA se llevaba a cabo di-rectamente desde la ventana principal de la aplicación, en lugar de hacerloutilizando el Editor de Visual Basic.

El editor de Visual Basic GUÍA VISUAL 1

PROGRAMACIÓN DE MACROS

22

Page 11: Cap i Tulo Gratis Visual Basic

Explorador de proyectos. Muestra una lista de los proyectos en uso ylos elementos a los que hace referencia cada uno de ellos. Estos ele-mentos pueden ser objetos propios de la aplicación (documentos oplantillas de Word, por ejemplo), módulos de código 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 módulo de código, obien cuando se selecciona un control dentro de un formulario, esta ven-tana muestra sus propiedades, en orden alfabético. Esta ventana esmuy útil ya que también admite la modificación de los valores de cadapropiedad (excepto las de solo lectura).Ventana de edición de código. Cumple la función de un editor de textoavanzado, en donde se ingresa o modifica el código de programación deun módulo de código, de un módulo de clase o de un formulario. Puedehaber múltiples ventanas de edición de código, cada una mostrando losprocedimientos asociados a un elemento de un proyecto. Una herra-mienta útil de esta ventana es que el texto adopta automáticamente dis-tintos colores según su función: las palabras reservadas aparecen en azul;los comentarios, en verde; el código con errores de sintaxis, en rojo, y to-do lo demás, en negro.Formularios. Constituyen las ventanas de los programas VBA, una vezque fueron desarrollados. Sobre los formularios se disponen controlespara 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 acción, etc.Ventana Inmediato. En esta ventana, se ejecutan instrucciones indivi-duales que se procesan en el momento, a diferencia de las instruccio-nes en módulos de código o formularios. Un ejemplo elemental del usode esta ventana, consiste en escribir Print 2 + 2 y presionar Enter. Inme-diatamente aparecerá el resultado de sumar 2 más 2.Cuadro de herramientas. Contiene un conjunto de controles que se uti-lizan para el diseño de los formularios (botones, listas desplegables, ba-rras de desplazamiento, cuadros de texto, etc.). Más adelante, veremosen detalle la funcionalidad de cada una de estas herramientas.

El desarrollo en Office con VBA

23

Prim

eros

pas

os e

n V

isua

l Bas

ic1

Page 12: Cap i Tulo Gratis Visual Basic

¿Cómo se programaen Visual Basic?Ya conocemos el Editor de Visual Basic y todas la ventanitas y herramientasque lo componen. ¿Y ahora qué hacemos con todo esto? No hay más reme-dio que arremangarse y comenzar a programar, escribiendo las instruccionescorrespondientes en el lenguaje de programación Basic.Si bien la escritura en lenguaje Basic es una tarea prácticamente inevitable ala hora de crear macros de Office, no es imprescindible conocer a fondo to-do el lenguaje para comenzar a trabajar. Es más, mediante la grabación demacros podemos hacer que Office nos “enseñe” cómo 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 preocupeque nos referiremos más a esto en el Capítulo 2).Estos procedimientos son el equivalente informático a una receta de coci-na: sus instrucciones son órdenes que, en vez de ser leídas y ejecutadas poruna cocinera, son leídas y ejecutadas por el motor de ejecución de VisualBasic, por supuesto, a través de nuestra computadora. Estas órdenes dicencosas tales como “obtener tal rango de la planilla”, “hacer tal cosa con estebloque de texto”, etc., solo que en un lenguaje más sintético.

Las instrucciones en un procedimiento se ejecutan secuencialmente desde laprimera a la última; salvo que ocurra un error, en cuyo caso la ejecución sedetiene, generando el mensaje correspondiente o devolviendo la posta a unainstancia 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 muchaspartes, cada una con una tarea bien definida, y además no tener que escribirmuchas veces un mismo programa que se usa en distintas situaciones. Porejemplo, se puede hacer un procedimiento genérico para enviar mensajes decorreo electrónico, estableciendo el destinatario, mensaje, asunto, etc. Luego,cuando se necesite enviar un mail desde un programa, en vez de programartodos los pasos necesarios, simplemente se invoca este procedimiento, pasán-dole como parámetros el destinatario, mensaje, asunto, etc.

PROGRAMACIÓN DE MACROS

24

Page 13: Cap i Tulo Gratis Visual Basic

Es conveniente saber que los parámetros de un procedimiento son datos queestos necesitan para cumplir su tarea. Por ejemplo, un procedimiento que di-buja una línea entre dos puntos necesita, como mínimo, que se le indiquedesde dónde y hasta dónde dibujar la línea. Las coordenadas de los extremosde la línea a dibujar serán, entonces, sus parámetros.Por último, sepa que siempre que necesite escribir instrucciones para haceruna determinada tarea en Office, y no conozca la forma correcta de hacerlo,haga que el mismo Office le enseñe: grabe una macro que lleve a cabo esa ta-rea y luego vea el código de la macro con el Editor de Visual Basic.

Mi primer programa Visual Basic

A continuación, vamos a hacer una primera incursión en el entorno de pro-gramación de VBA, introduciendo una pequeña modificación en la macroFormatearConTabs, creada anteriormente en este capítulo.Para ello, primero deberá entrar al Editor de Visual Basic de Word, (¿no seacuerda cómo? Muy sencillo: con Alt-F11 o a través de la opción Herramien-tas / Macro / Editor de Visual Basic). La ventana del Explorador de proyectosmuestra un proyecto por cada documento que Word tenga abierto. En elladebería poder ver dos proyectos: Normal, correspondiente a la plantilla acti-va, y Project (Documento1), correspondiente al documento abierto (si tieneun nombre diferente de Documento1, aquí figurará ese nombre). Por cadadocumento 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 MicrosoftWord Objetos y Módulos. En esta última, se encuentra el módulo NewMacros,que es donde se guarda el código de las macros asociadas a la plantilla, in-cluyendo también el de la macro grabada anteriormente. Para ver el códi-go de programación de cualquiera de las macros, busque en el Exploradorel módulo NewMacros y, cliqueando con el botón derecho del mouse sobreél, seleccione la opción Ver Código.

Cada macro de la plantilla tiene asociado un procedimiento de tipo Sub enel módulo NewMacros. Por lo tanto, el código de la macro FormatearCon-Tabs aparecerá luego de la instrucción Sub FormatearConTabs() (Figura 2).

¿Cómo se programa en Visual Basic?

25

Prim

eros

pas

os e

n V

isua

l Bas

ic1

Page 14: Cap i Tulo Gratis Visual Basic

Figura 2. Las instrucciones de la macro FormatearConTabs.

Cuando se da la orden para que ejecute esta macro –mediante el botón 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 programación,qué es lo que hacen en realidad las instrucciones de FormatearConTabs.

Las primeras líneas (las que aparecen en verde y comienzan con un apóstro-fo) son comentarios que sirven únicamente para dar información adicional aquien lee el programa, y se ignoran al momento de ejecutar.Después sigue una lista de instrucciones que hacen lo mismo que haría elusuario para realizar la tarea que hace la macro: limpiar los campos donde seingresan los textos a buscar y a reemplazar, establecer todas las propiedades dela búsqueda y, finalmente, ejecutar la búsqueda. ¿Cómo hace la macro todoesto? Manipulando un muy práctico objeto de Word. Señor lector, le presen-to al objeto Selection, y a su hijo, el objeto Find. A lo largo del libro (y espe-cialmente en el capítulo 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 decíamos que Microsoft

PROGRAMACIÓN DE MACROS

26

Page 15: Cap i Tulo Gratis Visual Basic

Office es una gigantesca caja de herramientas? Pues este es el primer ejem-plo). En particular, Selection hace referencia al bloque de texto seleccionadoen un documento en un momento determinado. Y Find es un objeto “hijo”de Selection que permite hacer una búsqueda sobre el texto contenido en Se-lection (más sobre los objetos y sus relaciones se tratará en el capítulo 4).Observe la primera de las instrucciones de FormatearConTabs:

ClearFormatting es un método del objeto Find, que hace que este limpie losformatos especificados como parte de una operación de búsqueda. Al darleesta instrucción al objeto Find, ocurre lo mismo que si cliqueáramos el bo-tón Sin formato del cuadro de diálogo Buscar y reemplazar (menú Edición).Se utiliza este método para asegurar que no se incluyan formatos no desea-dos en los criterios de búsqueda y sustitución.Vale aclarar que los métodos de un objeto son instrucciones que hacen queel objeto ejecute una determinada acción sobre los datos que contiene (mássobre este tema en el Capítulo 4 de este libro).

Esta primera instrucción nos da la pauta de cómo se utilizan los objetos enel lenguaje de programación Basic: se coloca el nombre del objeto (en este ca-so, Selection), luego un punto, a continuación 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 instrucción hace lo mismo que la anterior, pero en este caso, so-bre un “hijo” del objeto Find (o un nieto del objeto Selection) denominadoReplacement. Al ejecutar el método ClearFormatting del objeto Replace-ment, se limpian los campos a utilizar como sustitución del texto buscado.Lo que viene a continuación es el comienzo de un bloque de instrucciones With:

Los bloques With se utilizan para abreviar la escritura de código, deleitandoa 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

With Selection.Find

Selection.Find.ClearFormatting

¿Cómo se programa en Visual Basic?

27

Prim

eros

pas

os e

n V

isua

l Bas

ic1

Page 16: Cap i Tulo Gratis Visual Basic

punto harán referencia al objeto indicado a la derecha de la palabra With (eneste caso, Selection.Find) hasta tanto no se encuentre la instrucción End With.De este modo, se evita la necesidad de tipear el nombre del objeto en cadauna de las instrucciones.

Las instrucciones que siguen hasta End With se utilizan todas para establecerdiferentes propiedades de la búsqueda: .Text establece el texto que la macrova a buscar; .Replacement.Text establece el texto a utilizar como reemplazo;.Forward indica que la búsqueda se hará hacia delante.

Una buena idea resulta ser consultar la ayuda del programa ante cualquierduda 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 específica sobre la palabra resaltada.Esta es la forma más cómoda de aprender para qué sirve cada instrucción,propiedad o método de Visual Basic, y cómo es su sintaxis.

Antes de continuar, vamos a aclarar un aspecto: ¿Por qué las dos primeras ins-trucciones (y la última también) de la macro no están incluidas dentro delbloque With? Algún capricho del grabador de macros, que prefiere usar losbloques With solo para manipular propiedades, y no para ejecutar métodos.Tranquilamente se puede incluir estas tres instrucciones dentro de ese blo-que, borrándoles el prefijo Selection.Find.

La última instrucción de la macro es el método Execute, el cual se encarga deefectuar el reemplazo del texto según las propiedades establecidas anterior-mente. Ahora, este método no se ejecuta así nomás, sino que se le indica unvalor para el parámetro Replace:

El valor asignado a dicho parámetro (la constante wdReplaceAll) indica que sereemplacen todas las ocurrencias del texto buscado. No se preocupe, ya que enel capítulo 2 se explica más detalladamente el uso de parámetros y constantes.Esta macro tiene un pequeño defecto: cuando termina de ejecutar, siempreaparece un mensaje preguntando si queremos continuar la búsqueda desde el

.Execute Replace:=wdReplaceAll

PROGRAMACIÓN DE MACROS

28

Page 17: Cap i Tulo Gratis Visual Basic

principio del documento, cosa que no tiene mucho sentido, dado que estamacro está hecha para ejecutarse únicamente sobre el texto seleccionado.Pero con una mínima edición del código Basic de la macro podemos corre-gir este problema muy rápidamente.

Busque en el código de la macro la siguiente instrucción:

Ahora reemplace lo que hay a la derecha del signo “=” por: wdFindStop. Lainstrucción corregida debe quedar así:

Vuelva a ejecutar la macro y verá que el molesto mensaje ya no aparece más.

Para finalmente grabar esta modificación, cliquee el botón Grabar en la barrade herramientas. Si desplaza el mouse por encima de dicho botón, verá queel texto del botón (el “ToolTip”) dice “Guardar Normal”. Esto significa que,al cliquear en este botón, las modificaciones hechas a la macro se guardaránen la plantilla Normal, para poder ser empleada en cualquier otro momento.

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

.Wrap = wdFindStop

.Wrap = wdFindAsk

¿Cómo se programa en Visual Basic?

29

Prim

eros

pas

os e

n V

isua

l Bas

ic1

Page 18: Cap i Tulo Gratis Visual Basic

¡PRUÉBELO YA!

En el sitio onweb.tectimes.com encontrará disponibles los ejemplos tratados en este libro,listos para bajar a su PC.

Resumen del capítuloEn este capítulo hemos aprendido lo que es una macro y cómo se utilizan lasmacros en las aplicaciones de Microsoft Office. Hemos utilizado la opción degrabación 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 grabación de distintas macros en Word, Excel y Power Point,viendo –y aprendiendo– en cada uno, cómo estas aplicaciones traducen lasacciones del usuario en programas Visual Basic.

PLANILLA TERMINADA

PROGRAMACIÓN DE MACROS

30