Macros Vba Word y Excel Computer Hoy

25
R econózcalo, ¿cuántas funciones de Microsoft Office no ha utilizado nunca? ¿cuántas veces se ha enfadado porque no era ca- paz de resolver satisfactoria- mente determinada tarea? Aunque este amplio paquete informático se diseñó para re- alizar un gran número de ta- reas, a veces parece que no se adapta a las necesidades reales de los usuarios. Si usted lo desea, puede personalizar Office sin nin- guna dificultad para sus ne- cesidades concretas. Esto es lo que vamos a hacer con el lenguaje de programación Visual Basic para Aplica- ciones (VBA) de Word 97. A lo largo de las distin- tas entregas de esta serie ve- remos cómo programar sin conocimientos previos y sin mucha dificultad nuevas aplicaciones para Word 97. También aprenderá lo que son las macros y cómo crearlas con el grabador de macros .También cono- ceremos las distintas posi- bilidades de almacena- miento de macros que existen para que las tenga disponibles siempre que le hagan falta. Pero esto no es todo. En las siguientes cinco entregas del curso de programación daremos un amplio repaso a este "no tan difícil" arte de la programación para cono- cer el manejo del Editor de Programas de Visual Ba- sic para Aplicaciones. ¿Qué es VBA? VBA es el hermano peque- ño del lenguaje de progra- mación Visual Basic. El salto a VBA será muy sencillo para aquellos usuarios que ya dis- pongan experiencia en este lenguaje.Pero,aunque no ten- ga ninguna experiencia con él, no le resultará muy difícil aprender a usarlo. Mediante la grabación de macros podrá tener un primer contacto con los procedimientos de pro- gramación. Un grabador de macros es como una cinta de casete en la que se guardan todos los pasos que realiza el usuario que, posteriormente, se eje- cutarán en la pantalla del or- denador.La macro traduce los pasos al lenguaje de progra- mación VBA y salva estas sen- tencias como macros VBA. Posteriormente estas macros se pueden ampliar o editar. Hacer una macro puede re- sultar laborioso pero, a la lar- ga, le ahorrará trabajo rutina- rio porque así podrá repetir las tareas más engorrosas en sólo unos cuantos pasos. Para programar nuevas funciones ni siquiera tendrá que salir del entorno del programa porque las macros se crean, almacenan y utili- zan desde el propio progra- ma de Word. Cómo corregir dos letras cambiadas Primero vamos a probar el procedimiento con un ejem- plo muy sencillo. En este ca- so queremos corregir el or- den de dos caracteres que están mal escritos en una pa- labra. Active el editor de ma- cros y escriba las órdenes de Word que se ejecutarán de forma automática más ade- lante. Estos son los pasos ne- cesarios: 1 Inicie Word con un click de ratón sobre , otro sobre y uno más sobre . 2 Escriba el siguiente tex- to manteniendo los erro- res ortográficos: 3 En el texto del ejemplo, mueva el cursor entre las dos letras invertidas en la pa- labra . 4 En el menú primero haga click sobre y después sobre . A continuación verá este cuadro de diálogo: 5 Aquí, tendrá que cambiar el nombre de la macro escribiendo Confirme el nuevo nombre haciendo click en . Para que le quede claro que está trabajando con una ma- cro, el cursor del ratón cam- biará de aspecto. Junto a la flecha verá un pequeño ico- no que representa una case- te.Además,Word inserta una nueva barra de iconos. En es- ta barra de iconos se en- cuentran dos botones que permiten detener o cerrar la grabación de la macro . 6 Ahora puede seguir tra- bajando sin problemas con Word. Para corregir el error ortográfico marque pri- mero el carácter a la izquier- da del cursor manteniendo presionada la tecla ` y tecle- ando ) . Ahora mueva el ca- rácter al portapapeles . Para ello manten- 05 (Pág. 72) 04 03 02 01 Nº 9 70 Primeros pasos con el grabador de macros Experto Si tiene que hacer tareas repetitivas, conviene que las automatice. Word y Excel cuentan con un lenguaje propio. En este curso aprenderá a crear programas a medida para que no pierda el hilo como Dean Martin. Primeros pasos con el grabador de macros Nº 9 Entorno de desarrollo y objetos Nº 11 Programación y depuración Nº 13 Búsqueda de errores confortable Nº 15 Cuadros de diálogo rápidos y sencillos Nº 17 Cómo construir uno mismo funciones de Word Nº 19 GUÍA DEL CURSO Foto: Cinetext H H e e c c h h o o a a m m a a n n o o

Transcript of Macros Vba Word y Excel Computer Hoy

Page 1: Macros Vba Word y Excel Computer Hoy

R econózcalo, ¿cuántasfunciones de MicrosoftOffice no ha utilizado

nunca? ¿cuántas veces se haenfadado porque no era ca-paz de resolver satisfactoria-mente determinada tarea?Aunque este amplio paqueteinformático se diseñó para re-alizar un gran número de ta-reas, a veces parece que nose adapta a las necesidadesreales de los usuarios.

Si usted lo desea, puedepersonalizar Office sin nin-guna dificultad para sus ne-cesidades concretas. Esto eslo que vamos a hacer con ellenguaje de programaciónVisual Basic para Aplica-ciones (VBA) de Word97. A lo largo de las distin-tas entregas de esta serie ve-remos cómo programar sinconocimientos previos y sinmucha dificultad nuevas

aplicaciones para Word 97.También aprenderá lo queson las macros y cómocrearlas con el grabador demacros .También cono-ceremos las distintas posi-bilidades de almacena-miento de macros queexisten para que las tengadisponibles siempre que lehagan falta.

Pero esto no es todo.En lassiguientes cinco entregasdel curso de programacióndaremos un amplio repaso aeste "no tan difícil" arte dela programación para cono-cer el manejo del Editor deProgramas de Visual Ba-sic para Aplicaciones.

¿Qué es VBA?VBA es el hermano peque-

ño del lenguaje de progra-mación Visual Basic. El salto

a VBA será muy sencillo paraaquellos usuarios que ya dis-pongan experiencia en estelenguaje.Pero,aunque no ten-ga ninguna experiencia conél, no le resultará muy difícilaprender a usarlo. Mediantela grabación de macros podrátener un primer contacto conlos procedimientos de pro-gramación.

Un grabador de macros escomo una cinta de casete enla que se guardan todos lospasos que realiza el usuarioque, posteriormente, se eje-cutarán en la pantalla del or-denador.La macro traduce lospasos al lenguaje de progra-mación VBA y salva estas sen-tencias como macros VBA.Posteriormente estas macrosse pueden ampliar o editar.

Hacer una macro puede re-sultar laborioso pero,a la lar-ga, le ahorrará trabajo rutina-

rio porque así podrá repetirlas tareas más engorrosas ensólo unos cuantos pasos.

Para programar nuevasfunciones ni siquiera tendráque salir del entorno delprograma porque las macrosse crean, almacenan y utili-zan desde el propio progra-ma de Word.

Cómo corregir dosletras cambiadas

Primero vamos a probar elprocedimiento con un ejem-plo muy sencillo. En este ca-so queremos corregir el or-den de dos caracteres queestán mal escritos en una pa-labra.Active el editor de ma-cros y escriba las órdenes deWord que se ejecutarán deforma automática más ade-lante.Estos son los pasos ne-cesarios:

1Inicie Word con un clickde ratón sobre ,

otro sobre y unomás sobre .

2Escriba el siguiente tex-to manteniendo los erro-

res ortográficos:

3En el texto del ejemplo,mueva el cursor entre las

dos letras invertidas en la pa-labra .

4En el menú primero haga click sobre

y después sobre.

A continuación verá estecuadro de diálogo:

5Aquí, tendráque cambiar el nombre de

la macro escribiendo Confirme el nuevo nombrehaciendo click en .Para que le quede claro queestá trabajando con una ma-cro, el cursor del ratón cam-biará de aspecto. Junto a laflecha verá un pequeño ico-no que representa una case-te.Además,Word inserta unanueva barra de iconos.En es-ta barra de iconos se en-cuentran dos botones quepermiten detener o cerrar lagrabación de la macro .

6Ahora puede seguir tra-bajando sin problemas

con Word. Para corregir elerror ortográfico marque pri-mero el carácter a la izquier-da del cursor manteniendopresionada la tecla `y tecle-ando ) . Ahora mueva el ca-rácter al portapapeles

. Para ello manten-05 (Pág. 72)

04

03

02

01

Nº 970

Primeros pasos con el grabador de macrosExperto

Si tiene que hacer tareas repetitivas, conviene que las automatice. Word yExcel cuentan con un lenguaje propio. En este curso aprenderá a crearprogramas a medida para que no pierda el hilo como Dean Martin.

Primeros pasos con el grabador de macros Nº 9Entorno de desarrollo y objetos Nº 11Programación y depuración Nº 13Búsqueda de errores confortable Nº 15Cuadros de diálogo rápidos y sencillos Nº 17Cómo construir uno mismo funciones de Word Nº 19

GUÍA DEL CURSOFo

to: C

inet

ext

HHHH eeee cccc hhhh oooo aaaa mmmm aaaa nnnn oooo

Page 2: Macros Vba Word y Excel Computer Hoy

71

Primeros pasos con el grabador de macros Experto

Nº 9

¿Qué es...?Visual Basic paraAplicaciones

Este lenguaje de progra-mación, también conoci-do como VBA, es unaadaptación del lenguajeVisual Basic que se em-plea para automatizarprocesos en Microsoft Of-fice 97. Con este lenguajede programación se pue-den ampliar los progra-mas de Office con nuevasfunciones, elementos delmenú o iconos. Este len-guaje también sirve paraprogramar funciones ma-temáticas adicionales enExcel o para imprimir da-tos automáticamente des-de Access.

MacrosSe entiende por macro aun conjunto de "instruc-ciones" que ejecutan unafunción automáticamentedentro de un programa. Elgrabador de ma-cros graba primerotodas las instruccionesque recibe. Por ejemplo:la corrección automáticade la inversión de dos le-tras dentro de una pala-bra, es decir "hola" en vezde "hloa".

Grabador demacros

Para automatizar algunastareas, en lugar de escri-bir los comandos líneapor línea, podemos em-plear este componentePara ello lo arrancaremosy realizaremos la tareaque queremos grabar conel ratón y el teclado. Elgrabador de macros con-vierte nuestras accionesen comandos y los insertaautomáticamente en laslíneas del programa.

Editor deprogramas

El editor de Visual Basictrabaja con el lenguajeVisual Basic paraAplicaciones . Es-te editor es un pequeñoprograma desde el que sefacilita la lectura, almace-namiento y, en caso nece-sario, modificación de laslíneas de código grabadascon el grabador demacros . Estos edi-tores ocupan muy pocoespacio en el disco duro.

03

01

04

03

03

02

01

ga pulsada la tecla ` y te-clee x . Con la tecla ( mue-va el cursor un carácter a laderecha de la posición en laque debe quedar el carácterrecortado. Mantenga presio-nada la tecla ` y teclee vpara que el carácter que seencuentra en el portapapelespase a esta posición.De estamanera queda corregida la in-versión de caracteres.

7Ahora termine la graba-ción de la macro.Para ello

haga click sobre la barra deiconos de macros en el botón

. En la pantalla no perci-birá ningún cambio y no ten-drá la impresión de haber cre-ado una macro;pero ya tieneun inversor de caracteres quele va a permitir corregir erro-res tipográficos como estecon una simple orden.Wordya ha guardado su indicacióny es capaz de ejecutarla encualquier momento. Puedehacer una prueba. Por ejem-plo, puede corregir el si-guiente fallo con la macroque acaba de crear.Así es co-mo se hace:

8Sitúe el cursor entre lasdos letras invertidas de la

palabra del texto de nuestroejemplo: .

9Abra el menú y llame a los comandos

y . A con-tinuación en la pantalla po-drá ver un cuadro de diálogo.

Como por el momento,sólo ha creado una macro,en la lista aparecerá sólouna entrada . Ésta esla macro que queremos uti-lizar aquí.

10Haga click en el botón. Word ejecu-

tará la macro de forma in-mediata.

Insertar caracteresespeciales

Supongamos que usted de-sea resaltar un determinadoconcepto en un texto utili-zando para ello paréntesisespeciales como «», en vezde los paréntesis tradicio-nales. Por regla general es-tos caracteres sólo se pue-

den insertar como símbolosespeciales.Esta tarea se pue-de aligerar con la ayuda deuna macro.En nuestro ejem-plo, vamos a insertar en eltexto un paréntesis especialpara dar énfasis al término

.

1Marque todo el términoponiendo el cursor con

la ayuda de las teclas ) , y (delante de la primera pala-bra. Mientras mantiene pre-sionada la tecla ,̀ lleve elcursor con la tecla ( hastael final de la palabra. Pongaespecial atención en que losespacios en blanco que an-teceden y preceden a la pa-labra no se marquen.

2 Inicie el grabador de ma-cros con ,

y .En el campo ba-jo la entrada escriba:

3A continuación haga clicksobre para con-

firmar su opción.

4Normalmente,cuando secopia o se inserta una pa-

labra a través del portapa-peles,Word le añade un es-pacio en blanco por delantey detrás de la palabra. Pri-mero hay que desactivar es-ta función en la macro. Sigaestos pasos. Abra el menú

y llame el co-mando . En estecuadro de diálogo, cámbie-se a la ficha con laayuda del ratón. Aquí podráelegir entre varias opciones.

La casilla tiene que estarsin la crucecita.En caso con-trario desactívela con un sim-ple click de ratón.

5Confirme los cambios ha-ciendo click sobre

6A continuación lleve lapalabra marcada con la

combinación de teclas yaconocida ` y x al porta-papeles.

7En el menú hagaclick sobre el comando

.

8En la lista desplegablehaga click so-

bre y con vayapasando la lista que se des-pliega hacia arriba hasta que

vea la opción .Para marcarla haga click so-bre ella.

9El cuadro de diálogo lemostrará todos los ca-

racteres disponibles. Losparéntesis especiales estánen la cuarta o quinta líneade la lista de símbolos es-peciales .

10Marque el símbolo «e insértelo en el texto

con el botón .

11Ahora marque el sím-bolo » haciendo click

en . Pulse sobre .

12Para terminar con laentrada haga click so-

bre .

13Como el cursor se en-cuentra detrás de los

paréntesis especiales y noentre ellos, tendrá que te-clear ) una sola vez.

14Mientras mantienepresionada la tecla

` teclee v para insertarde nuevo en el texto la pa-

labra cortada. Con es-to termina la macro. Peroconviene que vuelva a re-cuperar la configuracióninicial del Word, es decir;que el editor siga dejandoespacios en blanco.

15En la barra del menú,dentro del comando

, seleccione laentrada .

16Por medio de un clickde ratón coloque una

crucecita delante del campo.

Con esto se activa la copiacon espacios en blanco.

17Confirme la entradade datos haciendo

click con el botón izquier-do del ratón en .

18Ahora puede terminarla llamada a la macro

haciendo click en .

19De una manera muysencilla se puede ve-

rificar el buen funciona-miento de la macro. Marquela palabra que desea ponerentre los paréntesis espe-ciales. Para ello utilice, co-mo en el paso 1, las teclas `y ( .

20Seleccione a conti-nuación en la barra

del menú bajo la entradael comando

y .

21Podrá ver el siguientecuadro de diálogo .

Como ya ha llamado a dosmacros con anterioridad,es-te campo contendrá el nom-bre de las dos macros. Hagaclick sobre la macro “Parén-tesisEspeciales”

22Para ejecutar la macrohaga click con el bo-

tón izquierdo del ratón sobre. La macro realizará

por sí sola el resto de la tareae insertará en el texto los pa-réntesis especiales.

Más comodidad enla llamada a lasmacros

El problema es que hace fal-ta pulsar varias teclas si quie-

re realizar una simpleinversión de caracteres.Perotodo esto se puede simplifi-car.Word le permite insertarlas macros en los menús y enlas barras de iconos.Todavíase podría acelerar más si ac-ciona la macro directamente

07 (Pág. 72)

06 (Pág. 72)

Page 3: Macros Vba Word y Excel Computer Hoy

Nº 972

Primeros pasos con el grabador de macrosExperto

¿Qué es...?Portapapeles

El portapapeles es unamemoria intermedia enla que se pueden guar-dar temporalmente ele-mentos de los progra-mas de trabajo paracopiarlos o para cortar-los y después insertar-los. El contenido delportapapeles se puedeinsertar más tarde enotra ubicación tanto enel mismo, como en otroprograma. Conviene nocopiar más de un ele-mento en el portapape-les a la vez, ya que el úl-timo borra a losanteriores.

Listadesplegable

Es una lista con variasopciones de elección.Como ahorra espacio,es muy común verla enmuchos cuadros de diá-logo. Este listado sedespliega cuando accio-namos la flecha que seencuentra en el bordederecho del campo.

Lista de símbo-los especiales

Los programas de edi-ción de textos comoWord disponen una listade símbolos especialesa la que se puede acce-der a través de la barradel menú. Entre estossímbolos especiales seencuentran el símbolo &o el símbolo $, así comootros símbolos que nose imprimen; como lamarca de párrafo o el ta-bulador.

Barra dedesplazamiento

Si no cabe todo el lista-do en una ventana, en-tonces aparecen una odos barras de desplaza-miento en el borde dere-cho y/o inferior de laventana.En los extremosde estas barras pode-mos observar unas fle-chas. Si hacemos clicksobre una de las flechasla lista se desplazará enla dirección de la flecha.Una barra de color nosindica en qué zona de laimagen total se encuen-tra el contenido de laventana que vemos.

08

07

06

05

desde el teclado.Así es comose pueden insertar las macrosen la barra de menús:

1Introduzca un nuevo me-nú. Para ello seleccione

en el comando.

2En el cuadro de diálogotiene que

cambiarse a la fichaAquí tendrá que

pasar con la ayuda de la fle-cha que se encuentradebajo de la barra de des-plazamiento a la últimaentrada y hacer click sobreella. Un apare-cerá en la mitad derecha dela ventana.

3Mueva el cursor sobre laselección y arrástrela

desde el cuadro de diálogohasta la barra del menú deWord situándola entre losiconos y .

Una vez que suelte el botóndel ratón,Word ampliará la ba-rra del menú añadiéndole elbotón .

4Un marco de color negronos indicará que el ele-

mento está marcado. Ahoraes cuando puede cambiar elnombre.En el cuadro de diá-logo hagaclick sobre .En el campo de comandosque sale a continuación se-leccione y, en elcampo adjunto,cambie el va-lor “Nuevo menú” por

.

5Confirme su entrada te-cleando $ .

6Añada sus macros al nue-vo menú.Para esto,es ne-

cesario que señale la entradadentro de

En el cuadro de diálogo, de-bajo de , aparece-rán los nombres de todas lasmacros.

7Ponga el cursor sobre elnombre de la primera

macro yarrástrela hacia el nuevo me-nú de nombre .Mantenga presionado el bo-tón del ratón hasta que seabra una nueva ventana.

Suelte el botón del ratóncuando tenga situado el cur-sor sobre el menú que sedespliega.

8El nombre del comandose puede cambiar en

y en elcampo . En este ca-so sobreescriba la entradacon .

9Repita ahora para la otramacro los pasos 7 y 8.

Dentro del menú, la posi-ción de entrada se caracte-riza por una barra horizon-tal. Ponga la orden deejecución para la macro de-bajo de la primera entraday póngale el nombre

.

10Abandone el cuadrode diálogo

haciendo click con el ratónsobre .

11Puede ver el cuadro dediálogo si

mueve el cursor sobre la ba-rra del menú en

.A partir de ahora puede

utilizar su nuevo menú co-mo los demás.

12Pero las macros sepueden ejecutar con

mayor velocidad desde el te-clado. Con una simple com-binación de teclas puede co-rregir la inversión de letrasdentro de una palabra.

13Para configurar estaopción vaya primero

a y llame alcomando . Enel cuadro de diálogo

haga click sobreque se encuen-

tra en la parte inferior de laventana.

14Aparecerá un nuevocuadro de diálogo lla-

mado .En el listado vayacon la ayuda de la flecha hasta y marque esaentrada.

15Haga click en la macroa la que le quiere asig-

nar la combinación de teclas.Comience con .

16Haga click con el ratónsobre el campo de en-

trada y presione a continua-ción la combinación de te-clas deseada como, porejemplo ` ,`y 4 . Si estacombinación de teclas ya tie-ne asignada una función, mi-re la comprobación que se

encuentra en la parte infe-rior del campo de entrada.Si la combinación ya se en-cuentra asignada a una ma-cro entonces tendrá que se-leccionar otra combinación.

17Para guardar la nuevacombinación de teclas

haga click en

18A continuación mar-que en el listado de

nombres la entradahaciendo

click con el ratón.

19Repita el paso 16, pe-ro, en este caso, selec-

cione como combinación deteclas ` ,`y 5 .

20Para abandonar elcuadro de diálogo ha-

ga click en . A partirde ahora podrá invertir le-tras cambiadas o añadir pa-réntesis especiales sólo conpulsar la combinación de te-clas que hemos configurado.Pruebe sin temor con otrosejemplos que se le ocurran.

Campo de acciónde las macros

Las dos macros anterioresse pueden insertar en cual-quier tipo de documento deWord.Esto es debido a que seencuentran almacenadas enla plantilla de do-cumento Normal.dot. Estasplantillas siempre están al al-cance de Word cuando se eje-cuta el programa. Pero tienepoco sentido guardar todaslas macros en el archivo Nor-mal.dot. El fichero va au-

mentando de tamaño y ocu-pa innecesariamente espacioen la memoria. Por lo tanto,tiene más sentido guardar lasmacros en los documentosen los que se van a ejecutar.Vuelva a echarle un vistazo alcuadro de diálogo:

1Abra el cuadro de diálogohaciendo click sobre

así como sobrelos comandos y

.Veráel siguiente cuadro .

2La lista desplegable lepermite elegir el fichero

en el que desea guardar lanueva macro.

3Haciendo click sobre laf lecha podrá ver to-

dos los documentos y lasplantillas abiertos en ese ins-tante. Haga click sobre el fi-chero en el que desea guar-dar la macro.

4Vuelva a cerrar el cuadrode diálogo haciendo click

sobre . Si asigna lasmacros a una sola plantilla és-ta no estará disponible paralos demás documentos deWord. Por este motivo resul-ta más conveniente guardarlas macros en una plantillaglobal de docu-mentos.De esta manera pue-de ejecutar la macro en cual-quier documento de Word,pero sin que el fichero Nor-mal.dot consuma innecesa-riamente memoria en la RAM.Así es como se guardan lasmacros en una plantilla de do-cumentos global:

5En el menú seleccione el comando

.

6A continuación Word lemostrará el cuadro de

diálogo .Haga click sobre el botón

.

7Después aparecerá el si-guiente cuadro de diálo-

go . Si haceclick sobre este campo pue-de abrir el fichero DOT 11

10 (Pág. 74)

09 (Pág. 74)

08

Page 4: Macros Vba Word y Excel Computer Hoy

Nº 974

Primeros pasos con el grabador de macrosExperto

¿Qué es...?Plantilla

Una plantilla de docu-mento contiene las con-figuraciones previas pa-ra un documentoestándar, como porejemplo una carta. Estasconfiguraciones vandesde los propios ajus-tes del texto en la carta,pasando por el tipo deletra y demás elemen-tos. La ventaja de lasplantillas estriba en quepueden ser la base paranuevos documentos, yque todos ellos tendránun aspecto similar.Al cambiar los formatos,o al hacer nuevas entra-das en los documentosnuevos, no cambia laplantilla del documento.

Plantillaglobal

Si lo desea, usted puedeguardar una plantilla

de un documentocomo plantilla global.Así la usarán todos losdocumentos que se cre-en sin especificar unaplantilla concreta. Poreso es importante tenercuidado al grabar unamacro, ya que por de-fecto se almacenará enla plantilla global y esta-rá disponible en todoslos ficheros.

Fichero .dotEs un fichero que seguarda como una planti-lla de formato. Los fi-cheros de plantillas dedocumentos almacena-dos en el disco tienen laextensión ".dot". Losprogramas son capacesde reconocer el tipo dedatos que contienen es-te tipo de ficheros gra-cias a la extensión.

Add-InEs un fichero que amplíalas funciones de un pro-grama. Por lo tanto, unAdd-In no es un progra-ma propiamente dicho,ya que para servir de al-go necesita al programabase. Eso sí, hay bas-tantes empresas cuyonegocio consiste en cre-ar complementos paralos programas de éxito yadecuarlos a necesida-des concretas.

12

11

09

10

09

y convertirlo en una planti-lla de documentos global.

8La selección es igual a lade cualquier documen-

to de Word. Para demostrarsu funcionamiento exacto,cambie a través de

a la carpetaC:\Archivos de progra-ma\Microsoft Office\Offi-ce\Macros. En el caso deque tenga instalados todoslos elementos de Word, po-drá encontrar en esta car-peta un fichero de nombre"MACROS8.DOT" .

Dependiendo de la confi-guración de su ordenador,

este fichero también se pue-de llamar "MACRO.80" o unnombre similar, cosa que notiene ninguna importancia.

9Marque el fichero y acontinuación haga click

sobre .

10Seguidamente el lista-do de las plantillas glo-

bales y de los Add-Ins seampliará con el fichero ele-gido.

La crucecita junto alnombre del fichero nos in-dica que tenemos cargada laplantilla.

11Cierre el cuadro de diá-logo

haciendo click sobre

. Si tiene instaladoen su PC el fichero MA-CROS8.dot, haciendo clicken él verá un menú conunos comandos muy intere-santes. Si no lo tiene insta-lado, conviene que se lea elapartado "Instalación de lasmacros de ejemplo”.

En el fichero MACROS8.dotse esconden las macros ejem-plo de la plantilla de docu-mentos que, a partir de estemomento, puede utilizar encualquier ventana de texto.

12Puede liberar el espa-cio de la memoria que

ocupa la plantilla de docu-mentos global sin el menorproblema si vuelve a hacerclick en y elimi-na mediante la crucecita queprecede al nombre del fi-chero en la entrada

. Deesta manera le resultará muysencillo cargar las macrosque precisa en cada mo-mento.Con estos consejos ya estápreparado para seguir laspróximas entregas de nues-tro curso de programación ydar sus primeros pasos en es-te interesante mundo.A lo largo de esta serie de ar-tículos veremos los funda-mentos y la estructura de losprogramas en Visual Basic pa-ra aplicaciones.

12

Instalación de las macros de ejemplo!

El programa "Microsoft Office97" incluye en el CD-ROM mu-chos otros ficheros, así comoejemplos para macros. No seinstalan desde el CD-ROM enla instalación estándar para queno ocupen espacio innecesa-riamente en su disco duro. Pe-ro esto no tiene que ser ningúnproblema para los lectores deComputer Hoy. En estas ins-trucciones paso a paso puedeaprender cómo instalar a pos-teriori estas macros en su dis-co duro. Así es como se hace:

1Haga click sobre y lleve el cursor a través de

a .Aquí haga click con el botón iz-quierdo del ratón. Aparecerá laventana . Den-tro de esta ventana haga dobleclick con el botón izquierdo delratón en el icono

2A continuación podrá verla siguiente ventana

.Según el número de progra-mas que tenga instalado, ten-drá que hacer varias veces clicksobre la flecha hasta queaparezca la entrada

. Sihace click sobre esta entradaquedará seleccionada ("mar-cada") esta opción sobre un

fondo azul Si hace click en el botón

confirmará laopción elegida y pasará a la si-guiente ventana.

3En esta ventana el progra-ma le pedirá que introduz-

ca el CD de Office. Si utiliza laversión "Office 97 Profesional"el mensaje tendrá el siguienteaspecto . Introduzca el CDen la unidad.

4Ahora se inicia el progra-ma de instalación de Offi-

ce. Si en ese instante todavíaestán abiertas otras aplicacio-nes de Office obtendrá el si-guiente mensaje, como porejemplo

.En estos casos, abra el pro-grama correspondiente ha-ciendo click sobre el icono enla parte inferior de la venta-na. En nuestro ejemplo seríasobre . Cie-rre este programa haciendoclick sobre la señal de laesquina derecha. Puede se-guir con la instalación ha-ciendo click sobre .

5En la ventana siguienteaparece el saludo

Con un click de ratón selec-cione el botón .En la ventana se desplegaráuna lista de ficheros.

6Haciendo click sobre la lí-nea se-

leccionará la categoría quecontiene los ficheros deWord. A continuaciónconfirme su selecciónhaciendo click sobre elbotón y

verá una nueva lista. Esta lis-ta le da una visión detalladade todos los ficheros que per-tenecen a Word.

7Para cargar los ficherosde ejemplo de las macros

de Word haga click sobre lalínea yconfirme posteriormente suelección con otro click sobre

.

8En el siguiente listado pue-de seleccionar la opción

con un

simple click de ratón. Hagaclick sobre la casilla en blan-

co. Precediendo a es-ta entrada apareceráuna señal.

.

9Cierre la ventana actual, asícomo la siguiente, con un

click sobre . Tambiéntiene que abandonar la terceraventana, para lo que tiene quehacer click sobre . Ahora el ordenador le indicaráque ha terminado la instalacióncon esta pantalla . Ahora ya puede sacar el CD-ROM de la unidad lectora.A

continuación ya tendrá a sudisposición las macros deejemplo. Siguiendo este mis-mo procedimiento puede ins-talar en su PC otros ficherosadicionales del CD-ROM de Of-fice 97. Así, por ejemplo, pue-de encontrar ficheros de ayu-da para programar macros deWord y Excel en Visual Basic.Para instalar estos ficheros esnecesario que, en el paso 6, se-leccione "Microsoft Word" o ensu caso "Microsoft Excel" yque, en el paso 7, haga click enla opción "Ayuda". ■

Page 5: Macros Vba Word y Excel Computer Hoy

Nº 1164

Primeros pasos en la programación. 2ª parte.Experto

Editor de Visual Basic 64El Explorador proyectos 65La Ventana de propiedades 65La Ventana de código 66Manejo de objetos 66Objetos en la práctica 68

SUMARIOINDICE DEL CURSO

En esta entregadel curso deprogramaciónse acercará tan-to al entorno deVisual Basic, co-mo Michel Dou-glas a la arreba-tadora SharonStone en Instin-to Básico.

¿Alguna vez se ha plantea-do cómo simplificar las fun-ciones que realiza con su or-denador?, los usuarios deMicrosoft Office pueden am-pliar sus posibilidades gra-cias al lenguaje de progra-mación Visual Basic paraaplicaciones , que tam-bién es conocido como VBA.Programar en VBA significatrabajar con el editor de Vi-sual Basic , que, al con-trario que su predecesorWord 97, dispone de un en-torno de desarrollo . Estoque a primera vista puedeparecer bastante complica-do, resulta ser una herra-mienta muy útil. En la pri-mera entrega de este cursoaprendió el uso del grabadorde macros , y le mostra-mos como generar macros

. Además, le enseñamosa guardar sus primeras ma-cros para que en cualquiermomento las pueda utilizarcon la ayuda del ratón,o conuna simple combinación deteclas.

Pero la manera en que elgrabador de macros operacon sus instrucciones les si-gue siendo desconocida. Es-te es el tema que vamos atratar en este capítulo. Hoypodrá aprender mucho so-bre el entorno del VBA y po-drá conocer a fondo muchasaplicaciones del editor de Vi-sual Basic.Ya no será ningúnmisterio cómo se componeuna macro en VBA y tampo-co desconocerá las funcio-nes de la programación eneste lenguaje.

05

04

03

02

01

En la barra de tareasde Windows pue-

de ver un icono en que ac-tualmente se está ejecutandoel editor de Visual Basic.

Esto resulta muy práctico sidurante la programación de-sea cambiar entre Word y elentorno de desarrollo deVBA. Para hacerlo sólo tieneque hacer click en la barra detareas sobre

osobre .Como en las demás aplica-ciones de Windows, si deseacerrar el editor de Visual Ba-sic, haga click en el icono si-tuado en el borde superiorderecho de la barra de títulos

, o en su caso hagaclick en la ventana de aplica-ción del editor de Visual Ba-sic sobre el menú ysobre el comando

.Si todavía no dispone de nin-guna macro propia o los do-cumentos de Word y las plan-tillas no tienen todavíaninguna macro,entonces ini-cie el entorno de programa-ción de Word con los siguien-tes pasos:

4En el menú de Word hagaclick sobre

y en el submenú sobre.

5Si en Word hace click so-bre

se inicia el editor de VisualBasic. Todavía podría ir másrápido si utiliza la combina-ción de teclas correspon-diente,es decir,para volver alentorno de trabajo del editorde Visual Basic presione a lavez las teclas % y Q.

09 (Pág. 66)

08 (Pág. 66)

Si ha seguido las instruc-ciones de la primera entre-ga del curso de ComputerHoy entonces ya dispone dedos macros: una para corre-gir la permutación de ca-racteres durante la escritu-ra, y otra para insertarparéntesis especiales. Estasmacros se encontrarán en laplantilla de docu-mentos "Normal.dot", queWord guarda automática-mente. En el cuadro de diá-logo del editor del Visual Ba-sic puede acceder a estasmacros.Así es cómo hay queempezar.

1Inicie Word haciendoclick sobre ,

y .

2Haga click sobre la op-ción del menú principal

eligiendoy . Podrá ver

el campo

El listado de macros con-tendrá las macros que cons-truimos en la primera parte.

3El nombre de la primeramacro, , aparece-

rá marcado. Para ver las líne-as de programa de esta ma-

cro, hay que hacer click conel ratón en el botón .Si marca el nombre de otramacro en el campo de diálo-go, accederá al código del pro-grama de la macroseleccionada.

07 (Pág. 66)

06 (Pág. 66)

Inicio del editor de Visual Basic

Foto

:Arch

ivo Co

mpu

ter H

oy.

Para Los primeros pasos con el grabador de macros Nº 9principiantes Entorno de desarrollo y modelo de objetos Nº 11Para Cómo depurar y programar con preguntas Nº 13expertos Cómoda búsqueda de errores Nº 15Para Cajas de diálogo rápidas y sencillas Nº 17profesionales Cómo hacer funciones de Word a medida Nº 19

InstintoInstinto básicbásicoo

Page 6: Macros Vba Word y Excel Computer Hoy

65

Primeros pasos en la programación. 2ª parte. Experto

Nº 11

¿Qué es...?Visual Basicparaaplicaciones

El Visual Basic paraaplicaciones, tambiénconocido por VBA sepodría traducir al caste-llano por lenguaje gráfi-co para aplicaciones.VBA pertenece al entor-no de trabajo de Office97. Este lenguaje deprogramación permiteampliar las funciones,los menús y los iconosde Office.

Editor deVisual Basic

El editor de Visual Basicpermite trabajar con laslíneas de código genera-das por el grabador demacros en el len-guaje de programaciónVBA desarrollado porMicrosoft. Gracias aleditor de Visual Basicpodrá modificar las fun-ciones de sus macros ocrear otras nuevas.

Entornode desarrollo

Es el aspecto de la he-rramienta que permitegenerar sus propiosprogramas o macros.Este entorno se encuen-tra directamente inte-grado en una aplicación,como ocurría con lasantiguas versiones deWord, o, como progra-ma independiente. Unejemplo de esto es eleditor de Visual Basic dela última versión Word.

Grabadorde macros

Es un programa quepermite registrar co-mandos estándar. Elgrabador de macroscomprueba qué coman-dos se llaman, y los tra-duce automáticamenteen líneas de programa.

MacroUna macro es una se-cuencia de órdenes quese ejecutan automática-mente una determinadatarea dentro de un pro-grama. El grabador demacros registra todoslos comandos que intro-ducimos con el tecladoo el ratón.

05

04

03

04

02

01

Antes de empezar con laprogramación conviene quedemos un breve repaso a loselementos más importantesdel editor de Visual Basic.Pa-ra obtener una visión totaldel contenido de la ventanaampliaremos ésta comple-tamente. En la barra de títu-lo de la aplicación haga clicksobre el icono . En la par-te izquierda aparecerán dosventanas estándar dispues-tas una sobre otra. La venta-na superior es el Exploradorde Proyectos

Esta ventana le recordaráa la ventana del Exploradorde Windows,donde se mues-tra el contenido de unidadescomo el disco duro. En estaventana, con la ayuda de lasteclas y , es posible ac-ceder a cada una de las ra-mas de la estructura de di-rectorios. El Explorador deProyectos nos muestra siem-pre aquellos proyectos deldocumento o de la plantillaque se encuentran abiertosen ese preciso instante. Si si-guió con nosotros los pasosde la primera parte del cur-so, entonces verá aparecerlos proyectos de las planti-llas de documentos globales

, que ya le resulta-rán conocidos.Para conocermejor las capacidades delExplorador de Proyectos esconveniente practicar con

un ejemplo.Vamos a organi-zar mejor las macros,para loque vamos a mover el "Nor-mal.dot" a una nueva plan-tilla de documentos.

Esto se hace de la siguien-te manera:

1Como no es posible po-ner una nueva plantilla en

el editor de Visual Basic hayque volver a Word haciendoclick en la Barra de inicio so-bre

2Aquí haga click sobrey sobre el co-

mando . En el cam-po de diálogo activecon un click la opción

. Haciendo click so-bre el botón carga-mos una nueva plantilla.

3Cámbiese al entorno detrabajo del editor de Vi-

sual Basic haciendo click enla barra de inicio sobre el ico-no . El Ex-plorador de Proyectos lemuestra la denominación

del proyecto de la nuevaplantilla.

4En el proyecto marque con un click de

ratón el componente VBA.Este es el módulo

en el que el graba-dor de macros guardó los pri-meros ejemplos. A continua-ción arrastre

sobre el nombredel proyecto de la plantilla

Así copiamos el módulo.Ahora tendremos por dupli-cado las dos macros. De to-das formas, una vez copiados

los comandos de la macro,no aparecen estos en el Ex-plorador de macros.

5Si queremos visualizar loscomandos de la macro

del proyecto de la plantillahay que hacer click en

junto a sobre .

6Ahora deberá hacer do-ble click sobre

.A continuación se abre una

nueva ventana en el editorde Visual Basic que tambiéncontiene las macros "inver-sor de caracteres" y "parénte-sis especiales".

Como queremos desplazar

las macros, las podemos eli-minar definitivamente de laplantilla "Normal.dot", paralo que es necesario que eli-mine todo el módulo.

7En el Explorador de pro-yectos marque la rama

y el elementocon un click de

ratón. Seleccione con el ra-tón el menú y den-tro de éste seleccione el co-mando .

Conteste a la pregunta haciendo click sobre .

Desaparecerá la primeraventana con el comando dela macro, así como la ramadel módulo del proyecto enplantilla del documento"Normal.dot". Guarde planti-lla para no perder las macrosiniciales.

No resulta necesario quesalga del editor de Visual Ba-sic para hacerlo.Lo único im-portante es que active el pro-yecto correcto.

8En el Explorador de pro-yectos haga click sobre la

entrada ,para activarlo.

9Pulse sobreel menú

y acontinuaciónsobre el subco-mando

.Ya conoce el si-guiente cuadrode diálogo

.Almacene la

plantilla en la Carpeta. Sobreescriba el

campo con el nuevo nombre

. Confirme laentrada con un click con elratón sobre el botón

. Ya puede decir quelos procedimientos más im-portantes del Explorador deproyectos le son familiares yla gestión de los proyectosVBA no le resultará difícil enel futuro.

13 (Pág. 68)

12 (Pág. 68)

11 (Pág. 68)

10 (Pág. 68)

El Explorador de proyectos

La Ventana de propiedadessirve para mostrar y confi-gurar determinadas propie-dades. Se encuentra situadaen la ventana inferior sobreel marco izquierdo del edi-tor de Visual Basic. Ustedpuede decidir qué propie-dades son las que deben sa-lir en la ventana. Empece-mos con un ejemplo:

1Si por ejemplo marca, sólo

aparecerá en la ventana depropiedades una entrada

Por el contrario, si selec-ciona la opción aparecerá un listado muchomás completo.

Word también permiteconfigurar muchas de estaspropiedades en su campo dediálogo. Así, por ejemplo,

se corres-ponde con la separación au-tomática de sílabas y

con laconfigu-raciónde los ta-bulado-

res estandarizados. Paracambiar el nombre del mó-dulo con la macro ejemplo,deberá trabajar en la ventanade propiedades.

2Seleccione en la ventanadel Explorador de pro-

yectos bajo la entrada

el módulo .

3En la ventana de propie-dades haga click sobre la

denominación .

4Escriba y acontinuación pulse la te-

cla $ .Tenga en cuenta quealgunas propiedades sólopueden aceptar un valorúnico.

En estos casos con la ayudade la lista desplegable

que se encuentraen la columna derecha de laventana de propiedades,puede realizar la selección.

14 (Pág. 68)

La Ventana de propiedades

Page 7: Macros Vba Word y Excel Computer Hoy

Nº 1166

Primeros pasos en la programación. 2ª parte.Experto

¿Qué es...?Plantilla dedocumentos

Contiene las configura-ciones básicas de undocumento estándar,como por ejemplo unacarta (desde la configu-ración de la página, el ti-po de letra, la negrita yotras muchas configura-ciones). La ventaja delas plantillas de docu-mentos es que sirvensiempre como patrón,permitiendo crear docu-mentos con un formatopredefinido.

Códigodel programa

Las órdenes y los co-mandos que utilizamosen un lenguaje de pro-gramación como el VBAtambién se denominancódigo del programa.

Barrade tareas

La de tareas de Win-dows 95 y 98 es una ba-rra gris que normalmen-te se encuentra en elborde inferior de la pan-talla. En la parte derechapodemos encontrar elreloj. Al iniciar una apli-cación como por ejem-plo el Word de Micro-soft aparecerá el iconocorrespondiente. Si tie-ne varias aplicacionesabiertas podrá pasar deuna a otra con un simpleclick de ratón sobre elicono correspondiente.

Barrade título

Es la barra azul que apa-rece en la mayoría de lasventanas de los progra-mas Windows 95 y 98en la parte superior.En la esquina izquierdaaparece el icono corres-pondiente al programa,seguido del nombre dela aplicación y el ficheroque se encuentre abiertoen ese momento. En la esquina derechade la barra encontramoslos iconos que sirvenpara abrir cerrar y mi-nimizar la ventana. Sihace click con el botónderecho del ratón sobrela Barra de títulos, sedespliega un menú confunciones adicionales.

09

08

07

06

A la derecha del Explora-dor de proyectos y de la Ven-tana de propiedades se en-cuentra la verdaderasuperficie de trabajo del edi-tor de Visual Basic. En estaventana también aparecenVentanas de código como laque contiene sus nuevas ma-cros. En estas Ventanas decódigo, por un lado se pue-den escribir las macros pro-pias,por otro se pueden mo-dificar líneas deprogramación. La modifica-ción de los textos no se di-ferencia en mucho del edi-tor de Word. La ventana deleditor de Visual Basic secomporta como una venta-na de documentos de Word.

Puede disminuir el tama-ño de la ventana con la ayu-da del icono

Además, con el icono

puede dejar que la ventanaocupe toda la pantalla. Porúltimo, para hacer desapa-recer la ventana puede uti-lizar el icono

También es posible ordenaren la ventana todas las ma-cros consecutivamente o sise desea mostrar sólo una delas macros. El cambio delVBA a otro programa se ha-ce por medio del campodesplegable. Veamos unejemplo:

1Inicie el “visor de procedi-mientos”que es donde las

macros se muestran indivi-dualmente. Para lo que hagaclick sobre el icono

que se encuentra en la esqui-na inferior izquierda de laVentana del código en la quese encuentran las macros delos ejemplos.

2En estos momentos sólopuede ver la macro "In-

versor de caracteres"Para pasar a la macro de

"Paréntesis especiales" abrala lista desplegable haciendoclick sobre la flecha .En lalista correspondiente hagaun click de ratón sobre

. Ahora,en la Ventana de código tam-bién aparecerá esta macro.

3Para poder realizar los si-guientes ejercicios con-

viene que se cambie a "Vi-sión de módulos a modopantalla completa". Hagaclick sobre el icono

En la ventana, en una lista,aparecen ordenadas todas lasmacros que creamos en elcurso anterior.

La Ventana de código

Con la ayuda de los ejem-plos anteriores ya tiene unavisión global sobre las he-rramientas de la programa-ción VBA. Ahora pasaremosal verdadero desarrollo delos programas. Pero para es-to, son necesarios unoscuantos conocimientos bá-sicos.Para casi cualquier ele-mento de Word, existe unaidentificación que se puedeutilizar en el código del pro-grama. Esto, por ejemplo,pueden ser elementos deltexto como un carácter, elpárrafo actual, una tabla, to-do el documento o tambiénlos elementos de la ventanade Word, como la barra delmenú.

Cada uno de los objetostiene "propiedades" y "mé-todos". Los profesionales lla-man propiedades a las ca-racterísticas de un objetoque determinan su compor-tamiento. A las propiedadesse les puede asignar deter-minados valores. Como uti-lizó con anterioridad la ven-tana de propiedades, ya ledeben resultar familiares laspropiedades de un docu-mento. Los métodos son lastareas que un determinadoobjeto es capaz de realizar.En el caso de la apertura y elcierre de un documento.Porlo tanto, las acciones "cerrar"y "abrir" son métodos del ob-

jeto "Documento".Unos ejemplos sencillos le

aclararán el manejo de losobjetos, así como sus pro-piedades y métodos. Prime-ro conviene que configure-mos correctamente laventana:

1Empiece cargando un tex-to ejemplo en Word. Para

lo que debe cambiar a la ven-tana de texto normal, con laayuda de la Barra de iniciohaciendo un click con el ra-tón sobre el icono

.Haga click sobre y

.

2En la ventana del docu-mento escriba

y a continuación teclee $ .De esta manera se introdu-cen automáticamente 10 pá-rrafos con 10 bloques aleato-rios de texto.Vuelva al iniciodel texto con la combinaciónde teclas ̀ y W.

3Puede volver al editor deVisual Basic haciendo

click en la Barra de inicio so-bre .

4Aquí deberá hacer clicken el menú , así

como sobre el comando. Esta venta-

na se fija en la configuraciónbásica en el borde inferiordel editor de Visual Basic.

5En este caso nos interesauna ventana deslizable,

por lo que tiene que arrastrarcon el ratón la barra de títu-los azul al centro de la zonade trabajo. Una vez suelte el

ratón esta zona recubrirá au-tomáticamente todas las de-más ventanas.

6En la Barra de título deleditor de Visual Basic

haga click sobre el icono

,y disminuya el tamaño de la

ventana situando el cursorsobre el borde.

Sólo cuando el cursor delratón presente el siguienteaspecto

puede arrastrar el borde ha-cia abajo. Repita los pasoscon el borde izquierdo, el ra-tón tomará el aspecto

Arrastre con el ratón el bor-de hacia la izquierda.

7Finalmente arrastre laventana hacia

arriba,para que pueda ver entoda su extensión el texto enla ventana de Word.

El manejo de objetos

Page 8: Macros Vba Word y Excel Computer Hoy

Nº 1168

Primeros pasos en la programación. 2ª parte.Experto

¿Qué es...?Exploradorde proyectos

Es una ventana del pro-grama VBA que muestraen un esquema jerarqui-zado todos los elemen-tos del VBA.

Plantilla dedocumentosglobal

Se trata de una plantilla de docu-mento a la que se puede accederdesde cualquier fichero.

MóduloUn módulo es un ele-mento de un programa,por ejemplo de VBA enel que se pueden guar-dar una o varias macros También es posibleguardar en un mismodocumento o plantillavarios módulos.

ArrastrarMover un objeto gráficopor la pantalla mante-niendo presionado elbotón del ratón. Bastacon pulsarlo y sin soltarmover el ratón hasta laposición deseada.

Listadesplegable

Contiene varias opcio-nes de selección y sueleser bastante habitual enlos cuadros de diálogode los programas. Lalista se despliega al ha-cer click con el ratón so-bre la flecha descenden-te que está situada a laderecha del campo.

ParámetrosPor parámetro se en-tiende cualquier indica-ción adicional para lasfunciones y comandosque se utilizan en la pro-gramación. Los progra-madores también losllaman argumentos.

Saltode párrafo

El salto de párrafo apa-rece en un texto cuandose pulsa la tecla $ . Enla mayoría de los pro-gramas de texto aparececomo una "p" invertida.

16

15

14

13

05 (Pág.65)

12

06 (Pág.66)

11

10

La zona de seadecua para probar indica-ciones individuales del VBA.Más adelante, también serámuy práctico utilizar estaventana para la búsqueda deerrores. Haga pruebas conalgunos objetos en la venta-na de Word.

1Escriba en la ventanael texto

.Tan pronto como haya te-

cleado el número, apareceráuna lista con las indicacionesVBA. En este caso se trata depropiedades y métodos váli-dos de los objetos.

2Siga con la entrada. Escri-ba la letra . Puede ver

que la marca salta en la listaa la primera entrada que co-mienza con esta letra.

Todas las entradas siguien-tes irán acotando la selección.

3En vez de seguir introdu-ciendo más caracteres,

también se puede mover lalista con las teclas & y & .Pre-sione la tecla & hasta que sal-ga marcada la entrada

. A continua-ción pulse la tecla $ , paraconfirmar su selección.

4Algunos métodos VBAdisponen de parámetroscomo por ejemplo el "Mo-

veRight". El VBA le ayuda enla selección.Durante la intro-ducción de la entrada

aparecen en la ventana lasentradasaccesibles a la programa-ción.Al método "MoveRight"le corresponden tres pará-metros. Este es su significa-do: "Unit" determina la uni-dad del desplazamientohacia la derecha (celda de latabla, línea, carácter, o frase)."Count" fija el número deunidades seleccionadas,mientras que con "Extend"puede posicionar de nuevoel cursor o ampliar la selec-ción desde la posición actual

del cursor a todo el docu-mento.

5Primero escribay a

continuación pulse la tecla,$ .De esta manera ejecutaráun comando VBA,en esta oca-sión conocido como objetode selección.El cursor,se des-plazará en la ventana de Word6 caracteres hacia la derecha(Método MoveRight)

No es necesario introducir elparámetro "Extend", porqueel valor por defecto para eldesplazamiento del cursorresulta suficiente.Si toma unvalor medio del parámetroentonces tendrá que modifi-car también esta entrada.

6Escriba en la ventanael siguiente

texto respetando los espa-

cios en blanco.

A continuación pulse la te-cla $ . En esta ocasión faltael parámetro "Count" y su va-lor por defecto es uno. Peropara que la segunda indica-ción de parámetro

no se inter-prete erróneamente comovalor para "Count", introduz-ca al final del nombre del pa-rámetro .De esta manerapodrá ordenar los paráme-tros y sus correspondientesmacros a su gusto en el lista-

do. El resultado de este pro-cedimiento es que se marcatoda la palabra . Ahorale vamos a asignar a este ob-jeto seleccionado otro tipode letra.

7Si desea asignar un nue-vo tipo de letra entonces

deberá escribir en la opción

A continuación confirme laselección pulsando $ .En lu-gar de aparecer apare-cerá en el docu-mento de Word.La ventaja delos objetos estriba en que sepueden configurar indivi-dual y exactamente durantela programación de todos loselementos de Word. Pero noes necesario que se posicio-ne de nuevo en la seleccióncada vez que ejecuta una ac-ción de VBA.En el ejemplo si-guiente haremos que el se-

gundo párrafo tenga la letraen cursiva.

8Para esto escriba enla línea de pro-

gramación:

Confirme la entrada pul-sando $ .Como antes,apare-cerá marcado en el texto

. Pero el segundopárrafo está en letras cursi-vas.

Con el valor de índice "2"se selecciona el párrafo co-rrespondiente. Con la ayudade "Range" se puede selec-cionar el tipo de letra.Una delas tareas más comunes en laprogramación es la introduc-ción y sustitución de elemen-tos de texto.Por ejemplo,sus-tituya el contenido del tercerpárrafo.

9Escriba en el si-guiente texto.

Confirme la entrada pul-sando $ , de esta maneraelabora las propiedades deltexto, es decir el contenidodel tercer apartado. Para ha-cerlo hay que asignar a laspropiedades del texto unanueva secuencia de caracte-res. Como el salto de párra-fo también pertenece alpárrafo, deberá completar eltexto con "& vbcr". De estamanera se inserta un salto depárrafo adicional; en inglés"Carriage Return". Pero nosiempre se desea insertartexto. De la misma forma sepuede insertar una secuen-cia de caracteres en una de-terminada posición.

10Para ello escriba enla siguiente

indicación. Confirme la en-trada tecleando:

Al final del párrafo aparece-rá la frase

porque durante la programa-ción introdujimos al princi-pio la secuencia de caracte-

res “El tercer párrafo” en"InsertBefore". Con esteejemplo ya le resultará fami-liar una parte del modelo deobjetos de VBA. Además, po-drá encontrar en el programalistados y cuadros de infor-mación en la pantalla que leserán muy prácticos durantela inserción del código. Si nosabe cómo seguir, siemprepodrá acceder mediante latecla 1 a la ayuda "online"que le mostrará temas deayuda y en los temas marca-dos con § aparecen inclusoejemplos.

16

15

Objetos en la práctica

Page 9: Macros Vba Word y Excel Computer Hoy
Page 10: Macros Vba Word y Excel Computer Hoy
Page 11: Macros Vba Word y Excel Computer Hoy
Page 12: Macros Vba Word y Excel Computer Hoy
Page 13: Macros Vba Word y Excel Computer Hoy
Page 14: Macros Vba Word y Excel Computer Hoy

Nº 1554

Cómoda búsqueda de erroresExperto

Macro del ejemplo 54Compilar y probar 55Pruebas de error 56Ejecución paso a paso 56Pruebas detalladas 58Tratamiento de errores 58

SUMARIO

INDICE DEL CURSO

Para Los primeros pasos con el grabador de macros Nº 9principiantes Entorno de desarrollo y modelo de objetos Nº 11Para Como depurar y programar con preguntas Nº 13expertos Cómoda búsqueda de errores Nº 15Para Cajas de diálogo rápidas y sencillas Nº 17profesionales Cómo hacer funciones de Word a medida Nº 19

En la película de ciencia ficción de Mel Brooks"La loca historia de las galaxias", los soldados

tuvieron que peinar todo el desierto. ¿Le pasa austed lo mismo cuando tiene que buscar erro-

res en la ejecución de sus programas?

E rrar es humano.No sesorprenda si en lastres partes anteriores

del curso de programaciónde aplicaciones de Visual Ba-sic (VBA) se le escapó algúnque otro fallo. Para que susnuevas macros funcio-nen sin problemas, Compu-ter Hoy le mostrará en estaparte del curso, cómo en-

contrar errores en el códi-go del programa .

Una macro bien hecha nodebe producir los molestosmensajes de error que apa-recen cuando hay fallos deprogramación. Cuanto máslargo y complejo sea el có-digo de su programa, másposibilidades tendrá de co-meter errores. Los primeros

errores aparecerán en laspruebas de ejecución. Poreste motivo, resulta muyconveniente comprobar cui-dadosamente todas las ma-cros sometiéndolas a una fa-se de prueba exhaustiva.

Para localizar las causaspor las que se producen loserrores, el VBA dispone dediversas herramientas de

ayuda. Entre ellas se en-cuentran la Ventana de in-mediato y la Ventana de lo-cales. Además, siemprepodrá parar la ejecución dela macro en determinadosmomentos críticos. De ma-nera que podrá controlar losvalores que van tomando lasvariables a medida quese va ejecutando el progra-

ma. Además, los fallos sepueden supervisar gracias alas rutinas de error . Es-tas últimas son muy útiles sise desean comprobar las en-tradas durante la programa-ción.Hoy les enseñamos có-mo efectuar búsquedas deerrores utilizando las herra-mientas disponibles en elentorno VBA.

04

03

02

01

Vamos a crear una macrode ejemplo. Esta macro per-mitirá seleccionar dos ven-tanas del documento simul-táneamente y situar ambasdentro de la ventana deWord. Estos son los pasos:

1Inicie Word siguiendoesta ruta con clicks de ra-

tón sobre , y.

2A continuación, inicie eleditor de Visual Basic

utilizando la ya co-nocida combinación de te-clas % y Q.

3Para que pueda disponerde esta macro ejemplo en

todos los documentos, la ten-dremos que guardar en laPlantilla de documentos

"Normal.dot". Enel explorador de proyectos

haga click sobrela entrada

4Haga click sobre la op-ción del menú y

sobre .De esta mane-ra, introducimos un nuevomódulo . A conti-nuación se abre una ventanade código en la que podemosintroducir nuestras instruc-ciones para la macro.

5Escriba las siguientes lí-neas, copie todo el códi-

go, incluyendo el error quetal vez ya ha descubierto

Una breve aclaración so-bre estas líneas de código:en el bucle "For"usted puede ver la descrip-

ción de las barras de título(Caption) de todas las venta-nas de documentos que seencuentran abiertas y que se

asignan a la variable "strPre-gunta" con la ayuda del con-tador "i".Esta variable se utili-za en las funciones

"InputBox" que permiten alusuario escoger las ventanasque se van a mostrar poste-riormente.

La primera vez se refiere ala ventana izquierda y la se-gunda a la ventana derecha.Los condicionales "If" nospermiten salir del programaen el caso de que no se in-troduzca ningún valor y lasdos líneas siguientes deter-minan el tamaño de la venta-na.Una de las variables fija laaltura de la ventana de Wordy la otra fija el ancho.

Como en la macro quere-mos mostrar dos ventanas dedocumentos Word, tendre-mos que utilizar un valorpara “lngAncho” que sea lamitad del ancho de la venta-na de Word. Con la instruc-ción “With”fijaremos la posi-ción (Top y Left) así como eltamaño de las ventanas.

09 (Pág. 58)

08 (Pág. 56)

07 (Pág. 56)

06 (Pág. 56)

05 (Pág. 56)

Construcción de una macro de ejemplo

Foto

:[M

] Int

erfo

to, M

onta

je: C

ompu

ter H

oy

Comandos de búsquedaComandos de búsquedaComandos de búsqueda

En la película de ciencia ficción de Mel Brooks"La loca historia de las galaxias", los soldados

tuvieron que peinar todo el desierto. ¿Le pasa austed lo mismo cuando tiene que buscar erro-

res en la ejecución de sus programas?

Page 15: Macros Vba Word y Excel Computer Hoy

55

Cómoda búsqueda de errores Experto

Nº 15

¿Qué es...?Macros

Así se llama a la se-cuencia de instruccio-nes que permiten eje-cutar una determi-nada función dentrode un programa. Elgrabador de macroses una herramientaque registra todas lasordenes que se vanintroduciendo. Com-prueba las instruccio-nes correspondientesa cada orden y las in-serta automáticamen-te en un archivo for-mando un programa.

Códigodel programa

Se denomina códigode programa a todaslas instrucciones ycomandos que se uti-lizan en los lenguajesde programación co-mo por ejemplo el Vi-sual Basic.

VariableEn los lenguajes deprogramación las va-riables son elementosa los que se les pue-den asignar valores.Estos valores puedenser el resultado de uncálculo matemático,una pulsación de te-clado, el contenido deun documento o cual-quier otro dato.

Rutinasde error

Son una secuencia deinstrucciones que for-man parte de la ma-cro y sólo se ejecutancuando se produce unerror de programa entiempo de ejecución.De esta manera se de-sactivan los mensajesde error habituales enVBA. Con una rutinade error es posible,por ejemplo, emitir unmensaje de error per-sonalizado, cambiarlas asignaciones inco-rrectas de las varia-bles o simplementeterminar la ejecuciónde la macro mostran-do un mensaje.

04

03

02

01

Debemos compilarla macro antes de

probarla de manera que des-cubra instantáneamente loserrores de sintaxis del len-guaje VBA. Haga la prueba:

1Seleccione enel menú principal y pulse

entonces sobre la opción.

2Posteriormente, VBA co-menzará a compilar la

macro sin ejecutarla. Comoel código que hemos escritoanteriormente contieneerrores,aparecerá el mensaje

Cierre la ventana de adver-tencia pulsando sobre el bo-tón y compruebe enqué parte del código falta lalínea “End With”.El VBA seña-la la posición en la que sospe-cha que se encuentra elerror. Pero en algunos casos,como en este ejemplo, la in-dicación no tiene por qué seracertada.

Revise minuciosamente laventana de código para en-contrar el error.

3Compruebe si el primerbloque “With”termina co-

rrectamente. Tendrá que co-rregir el fallo insertando unanueva línea delante de

Pulse la tecla $ para inser-tar la nueva línea y escriba

.

4Repita el primer pasopara descubrir otros erro-

res de compilación y com-pruebe por sí mismo que to-

dos los errores ya se han co-rregido, descartando cual-quier error que se deba a unaequivocación en el procesode escritura del código. Paraque los errores en los nom-bres de las variables seantambién detectados duranteel proceso de compilación,hay que activar la declara-ción de variables

Para hacerlo, escriba la lí-nea de programa

al princi-pio del código. Con esta ins-trucción, el VBA rechaza au-tomáticamente las variablesdesconocidas que provocaninterrupciones en la ejecu-ción con mensajes de error.

11 (Pág. 58)

10 (Pág. 58)

Compilar y probar

Para comprobar la utilidadde la macro, tendrá que abrirvarias ventanas de docu-mentos.

1Con la ayuda de la barrade tareas cám-

biese de nuevo a la ventanade la aplicación Word.

Para hacerlo tendrá que ha-cer click sobre el elemento

.En laventana abierta escriba eltexto .

2Para crear un segundo do-cumento de Word, haga

click sobre el icono y escriba el texto

.

3Repita el paso anterior,pero en este caso escriba

el texto .

4Repita de nuevo el segun-do paso,pero ahora escri-

ba .

5A continuación, ordenelas ventanas seleccionan-

do la opción y.

Cuando se abren demasiadasventanas a la vez algunas deellas pueden quedar ocultaspor falta de espacio. Normal-

mente no se pue-de modificar laubicación de lasventanas, pero la

macro que hemos creadohace que esto esa posible.

6 Inicie la macro haciendoclick sobre

y . En elcuadro de diálogo ,seleccione el nombre de lamacro ypulse sobre el botón

. Aparecerá un cua-dro de diálogo en el que seindica el nombre de una de

las ventanas Normalmente deberían

aparecer los nombre de to-das las ventanas abiertas.Esto quiere decir que hemos

cometido algún fallo y la ma-cro no realiza todas las fun-ciones que deseamos. Cierrela ventana pulsando sobre elbotón

En el próximo apartadoaprenderá a corregir estetipo de errores.

12 (Pág. 58 )

Una prueba con nuestro ejemplo

Vamos a comprobar cuáles la causa de que no apa-rezcan los otros nombres delas ventanas.Tendremos queparar automáticamente laejecución de la macro antesde que llegue a la función“InputBox”. Para hacerlo, elVBA pone a su disposiciónunas marcas que se puedeninsertar en cualquier puntodel código.

En estas marcas se inte-rrumpe la ejecución de lamacro de tal manera que sepuede analizar detallada-mente el proceso de ejecu-ción de la macro.

Siguiendo paso a paso loscambios producidos duran-te la ejecución resulta mássencillo encontrar los posi-bles errores. En la ventana“locales” aparecen todas las

variables, así como el valorque toman en cada momen-to. Por ejemplo:

1En la Barra de ini-cio haga un click

sobre

para pasar al editorde Visual Basic.

2Podemos insertarun punto de inte-

rrupción en el bucle“For”. Añada un pun-to de interrupción alprincipio del buclehaciendo click con elratón sobre la barrade color gris de la iz-quierda a la altura delprincipio del bucle

El punto de inte-rrupción queda clara-

mente identificado por elpunto rojo

3Seleccione en elmenú principal y pulse

sobre para

que se abra la ventana de lo-cales. En el borde inferior dela ventana del editor de Vi-sual Basic aparecerá una ven-tana vacía con el título

.

Comprobaciones paso a paso

Page 16: Macros Vba Word y Excel Computer Hoy

Nº 1556

Cómoda búsqueda de erroresExperto

¿Qué es...?Editor deVisual Basic

Es un pequeño pro-grama que permiteeditar y modificar laslíneas de programa-ción generadas con elgrabador de macros.El editor de Visual Ba-sic trabaja con el len-guaje de programa-ción VBA e incluyeherramientas especí-ficas para facilitar rá-pido el desarrollo deaplicaciones en estelenguaje.

Plantilla dedocumentos

En las plantillas de losdocumentos se guar-dan las configuracio-nes básicas para losdocumentos estándar,como las cartas, losfaxes o los informes.Estas configuracionesson el tipo de letra, elinterlineado u otrasconfiguraciones deeste tipo. Las planti-llas de documentosse utilizan como pa-trones para la crea-ción de otros docu-mentos. Los cambiosque podemos realizaren el documento nomodifican la plantilla.

Exploradorde proyectos

El explorador de pro-yectos es un progra-ma del VBA que repre-senta de maneraestructurada todos loselementos de un do-cumento de Word. Losprogramadores llamana estos elementosproyecto.

MóduloUn módulo es un ele-mento de un progra-ma como el VBA en elque se almacenan lasmacros. Un módulopuede contener una ovarias macros. Losmódulos se puedenasociar a documentosy plantillas para queestén disponiblesdesde ellos.

08

07

06

05

4Para probar la macro,cámbiese a Word median-

te la Barra de inicio.En la ven-tana de Word acceda a las si-guientes opciones del menúprincipal: ,

y . En laventana de diálogo que apa-rece, seleccione la macro

y pulse so-bre el botón parainiciar la macro. Cuando lle-gue a las interrupciones fija-das, la ejecución saltará aleditor de Visual Basic. La lí-nea de código que actual-mente se está ejecutandoaparece marcada en coloramarillo

La ejecución se encuentrainterrumpida y en la ventana de “locales”puede ver un listado de todaslas variables con sus valoresactuales

5Ahora compruebe paso apaso los valores que van

tomando las variables a medi-da que se ejecuta el progra-ma. Basta con pulsar la tecla8 y comprobar los cambiosde la ventana local.

Si presiona una segundavez la tecla 8, la ventana lo-cal le mostrará

.La primera ventana del docu-mento Word se encuentra se-leccionada, pero más adelan-te no se ejecuta el cuadro dediálogo. Vuelva a pulsar dosveces sobre la tecla 8 paracompletar el segundo bucle.La ventana local le mostrará

.

En este caso contiene el tí-tulo de la segunda ventanadel documento y ha desapa-recido el título de la primeraventana.

Cada vez que se ejecuta elbucle “For” se sobreescribeel contenido de la variable“strPregunta”. Por este moti-vo, en el cuadrode diálogo úni-camente aparece el título dela última ventana, que es elvalor de “strPregunta”al salirdel bucle.Lo correcto es quese complete el título antiguoañadiéndole el nombre de laventana activa. Para hacerlosiga estos pasos:

6Una vez encontrado elerror, termine la ejecu-

ción de la macro pulsandosobre

,

que se encuentra en el menúde iconos del editor de VisualBasic. Después, modifique elcódigo incorrecto del bucle“For”de la siguiente manera:

Como ahora no hace faltael punto de interrupción, se

puede eliminar haciendoclick con el ratón sobre elpunto rojo situado sobre labarra de color gris.Tampocohace falta la ventana de “Lo-cales”. Ciérrela haciendoclick sobre el icono quese encuentra en la corres-pondiente barra de título.

7Cambie de nuevo al Wordpor medio de la Barra de

inicio. Ejecute la macro deejemplo accediendo al menú

, y.

En la ventana de diálogo de lamacro aparecen ahora todoslos títulos de las ventanasabiertas

Ahora puede realizar la se-lección. Haga una prueba:por ejemplo escriba yconfirme su elección hacien-do click sobre el botón

para elegir la ventanade la derecha , y confirmesu selección haciendo clickcon el ratón sobre .Word abrirá las ventanas se-leccionadas sin que se solapeuna con otra. Haga la mismacomprobación eligiendocada vez ventanas distintas.

Como puede observar,siempre quedan correcta-mente alineadas

Page 17: Macros Vba Word y Excel Computer Hoy

58

Cómoda búsqueda de errores Experto

Nº 15

¿Qué es...?Bucle

En programación seentiende por bucle auna secuencia de ins-trucciones cuya eje-cución se repite va-rias veces. Pero lasinstrucciones sólo seintroducen una vez enel código del progra-ma. El número de lasrepeticiones dependede una variable. Al al-canzar la variable elvalor establecido, elprograma termina elbucle y continúa conla siguiente línea delcódigo.

CompilarLas instrucciones deVBA que introduci-mos mediante la ven-tana de código no sepueden ejecutar di-rectamente por su or-denador. Por este mo-tivo, hay quetraducirlas a un for-mato que entienda lamáquina. Este proce-so se conoce porcompilación.

Declaraciónde variables

Las declaraciones devariables indican alVBA qué variables se-rán utilizadas por elcódigo del programay deben ser definidasal principio del mismoutilizando la palabraclave “DIM”.

Barrade tareas

Es una barra de colorgris que aparece enWindows 95 y 98 ycontiene el botón ini-cio. Normalmente seencuentra en el bordeinferior de la ventana.

Marcade salto

Interrumpe la ejecu-ción secuencial delcódigo del programapara saltar a una líneadeterminada contro-lando de esta manerael flujo de ejecucióndel programa.

13

12

11

10

09

Una ejecución de la macrosin errores no tiene porquésignificar que la macro fun-cione correctamente. En al-gunos casos, puede ocurrirque salgan mensajes deerror bastante confusos, co-mo el siguiente:

1En la barra del títulohaga

click sobre el icono

De esta manera sólo se ve laventana de este documento.

2Vuelva a iniciar la macroejemplo siguiendo la ruta

, y.

3En el campo de diálogode entrada de la macro in-

troduzca el número de venta-na . En el segundo campode diálogo de entrada intro-

duzca el .Tras confirmar laselección haciendo click so-bre el botón aparece-rá un mensaje de error. Estemensaje le lleva al editor deVisual Basic

Ahora tiene dos opciones.Una, finalizar la ejecución dela macro y, la otra, analizarcon más detalle el origen delerror.La primera opción sólose recomienda si ya sabedónde se encuentra el error.

4Haga click sobre el botón. La línea de códi-

go errónea aparece marcadaen amarillo

La flecha de color amarillo

indica que la ejecución de la

macro se interrumpió eneste punto.

Gracias al mensaje de errorsabe que la macro no funcio-na correctamente con venta-nas de este tamaño. Tiene

que activar el modo depantalla completa.

A continuación, com-pruebe si se ejecuta la lí-nea de código. No es ne-cesario que termine lamacro.En este caso,con-

viene que utilice la ventana“Inmediato”.

5A continuación abra laventana “Inmediato” ac-

cediendoal menú y al menú

.

6A continuación, escribaen la ventana

el comando

Confirme la entrada pul-sando la tecla $ .

7Como no finalizó la ma-cro, puede seguir con su

ejecución, para lo que debepresionar la tecla 5. La eje-cución de la macro continua-rá hasta el final sin más men-sajes de error.

8Para finalizar,realice la co-rreción del error en el có-

digo de la macro. Cámbiesede ventana con un click en laBarra de inicio sobre el edi-tor de Visual Basic.Por delan-te de la línea del programa

escriba el texto

Con esta modificación evi-tará que vuelva a aparecer enel futuro este error. Pero conVBA existen otras formas deeliminar los errores.

Una prueba más detallada

Ya hemos realizado algu-nas modificaciones en el có-digo de la macro, pero toda-vía sigue sin ser perfecta.Por ejemplo, las entradasno válidas en el campo dediálogo de entrada no setienen en consideración.Es decir, si introduce unnúmero mayor que el nú-mero de ventanas abier-tas en ese preciso instan-te, volverá a recibir unmensaje de error.Para evitartener que estar cambiándo-se continuamente al editorde Visual Basic puede insta-lar un código de tratamien-to de errores que se encar-ga de determinar todas lasposibles fuentes de error. Si-guiendo estos pasos, puedeactivar esta rutina que le vaa advertir de todos los erro-res que todavía no se han de-purado.

1Vuelva al editor de VisualBasic con ayuda de la Ba-

rra de inicio. Active directa-mente en la macro ejemplola advertencia de errores, es-cribiendo directamente estalínea de códigoen la declaración de varia-bles. De esta manera, indicaal VBA que cuando descubreun fallo salte a la línea identi-

ficada por "Error_división".El nombre de estas marcasde salto puede ser cual-

quiera, pero dentro de unmódulo sólo pueden apare-cer una vez.

2Compruebe que elVBA invoca la rutina

de tratamiento de erroresúnicamente cuando apa-rece un error.

Por este motivo,sitúe larutina de errores al final

del código de la macro.Com-pruebe que la macro se finali-za realmente antes de la mar-ca de salto.Para no tener queintroducir varias veces lasinstrucciones de las tareas es-tándar, como por ejemplo la

activación de la actualizaciónde la pantalla, introduzca pordelante de la rutina de erro-res otra marca de salto en el

apartadodónde se en-cuentran lastareas están-dar. Desde larutina deerror se des-vía el códigode la macrootra vez ha-cia la marcade salto del fi-nal de la ma-cro. Por este

motivo, en la macro ejemplodeberá modificar las dos últi-mas líneas que se encuentrandespués del bloque "With”por

Si se produce un error; elVBA saltará automáticamen-te a la marca de salto que he-mos introducido, seguida deuna ventana de advertencia.Después, la ejecución conti-núa desde la marca de salto a"Fin_division". Las líneas decódigo identificadas de estamanera inician la actualiza-ción de la pantalla y finalizanla macro.En los casos norma-les,durante la ejecución de lamacro, sólo se ejecutan lasinstrucciones que se encuen-

tran bajo "Fin_division". Eneste caso la marca de salto notiene ninguna importancia.

De esta manera la macro fi-naliza con la rutina de erro-res. Además del tratamientode errores con la marca desalto "On Error GoTo",el VBAdispone de otros dos méto-dos

Con esto ya conoce las he-rramientas más importantesque existen para identificar ysolventar errores.

13

Cómo tratar los errores de una manera más precisa

Page 18: Macros Vba Word y Excel Computer Hoy

L as macros permitenautomatizar las tareasque se realizan con el

ordenador. Pero su utiliza-ción puede resultar muchomás cómoda si se utilizanventanas de diálogo .En esta entrega del curso,les vamos a enseñar lo sen-cillas y útiles que puedenllegar a resultar. En la lec-ción anterior, hemos apren-dido a utilizar la función

“Input-Box” para que elusuario pueda tomar deci-siones durante la ejecuciónde la macro. Pero esta tarease puede realizar de formamás eficiente utilizando lasventanas de diálogo.

Las ventajas son múlti-ples: una ventana de diálo-go realiza varias preguntasa la vez, es más fácil de uti-lizar y tiene un diseño mu-cho más claro. Cuando pro-

gramamos en VBA, no debe-mos renunciar a estas co-modidades.Utilizando la he-rramienta Generador deformularios podrá crearuna ventana de diálogo muyfácilmente. Su funciona-miento es muy similar al deun programa de dibujo, aun-que también se requiere sa-ber algo de programaciónpara realizar algunas fun-ciones avanzadas.

Creando la ventana de diálogo

Para crear un formularioutilizando el generador

de formularios hay que uti-lizar el editor de Visual Ba-sic. El VBA, dispone de he-rramientas específicas parala creación de ventanas dediálogo.

1Inicie Word haciendoclick sobre ,

y .

2Presione a la vez las te-clas % y Q para iniciar

el editor de Visual Basic.

3Vamos a crear una nuevaventana de diálogo en la

plantilla de documentos es-tándar “Normal.dot”, de ma-nera que lo tengamos dis-ponible en cualquiermomento. En la ventana

, marque laentrada .En el me-nú principal debe seleccio-nar la opción y

.En el editor de Vi-sual Basic aparecerá unanueva ventana .

El elemento de ayuda másimportante para la confec-ción de formularios es la co-lección de herramientasque contiene los controles

que se pueden in-sertar en el formulario. Paratrabajar utilizaremos la ven-tana de formulario .

La ventana de diálogo quevamos a crear en este ejem-plo le facilitará el trabajocuando utilice tablas deWord. Siguiendo todos lospasos, obtendrá una venta-na de diálogo que le permi-tirá seleccionar la altura y laanchura de las celdas de unatabla de Word. Para hacerlo,

05 (Pág. 58)

04

03

02

01

Nº 1756

Ventanas de diálogoExperto

INDICE DEL CURSO

Para Los primeros pasos con el grabador de macros Nº 9principiantes Entorno de desarrollo y modelo de objetos Nº 11Para Como depurar y programar con preguntas Nº 13expertos Cómoda búsqueda de errores Nº 15Para Cajas de diálogo rápidas y sencillas Nº 17profesionales Cómo hacer funciones de Word a medida Nº 19

Popeye le ofrece varias opciones a Olivia mediante una ventana dediálogo. Su ordenador hace lo mismo con usted. Aprenda a crearsus propios diálogos para mejorar sus macros de Word.

Foto

: KFS

(Kin

g Fe

atur

es S

yndi

cate

)/Dis

t. Bu

lls.

Introducción 56Creacción y diseño 56Programación 60

SUMARIO

Aprenda a dialogarAprenda a dialogar

Page 19: Macros Vba Word y Excel Computer Hoy

57

Ventanas de diálogo Experto

Nº 17

utilizaremos dos entradas ydos Botones de incremen-to / decremento, de manera que podremosseleccionar el alto y anchode una celda con un par declicks de ratón.Pero todavíapodemos hacerlo más sen-cillo insertando dos menúsdespegables donde se pue-dan seleccionar los valoresdirectamente. Aunque a pri-mera vista, todo esto puedaparecer muy difícil, en rea-lidad se trata de algo bas-tante sencillo. Basta con se-leccionar los controlesdeseados en la ventana

parainsertarlos directamente enel formulario.

4Comience con el primercampo de texto. Haga

click sobre el icono ymueva el puntero del ratónpor encima de la superficiedel formulario. El cursor to-mará el siguiente aspecto:

Cuando pulse el botón iz-quierdo del ratón, en el for-mulario aparecerá un cam-po de texto de dimensionesestándar

5Para cambiar el tamañodel campo de texto, ha-

ga click con el ratón en cual-quiera de los ocho puntosblancos .

Estas marcas sólo aparecenen pantalla cuando el obje-to está seleccionado. Elcampo donde vamos a in-troducir el ancho o la alturade la celda no tiene por quéser tan grande. Disminuya elancho del campo de texto.Si el campo no se encuentraseleccionado y por lo tantono aparecen las marcas la-terales, haga click sobre élpara seleccionarlo. A conti-nuación, sitúe el cursor delratón sobre la marca centraldel lado izquierdo

y arrastre el puntero man-teniendo presionado el bo-tón hasta que la anchuradel campo quede reducidaa la mitad. Una línea depuntos le mostrará el ta-maño que va a tomar elcampo. Suelte el botón deratón cuando su tamaño seael deseado.

6Para que el campo detexto no estorbe a los de-

más elementos que vamos ainsertar, cambie su posición.Vamos a mover el elementohasta la esquina izquierdadel formulario. Si no se en-cuentra seleccionado, hagaclick sobre él. Sitúe el pun-tero del ratón sobre cual-quier punto del borde mar-cado hasta que tome elsiguiente aspecto: .

Haga click, y sin soltar,arrastre el elemento haciaarriba, dejando algo de es-pacio para el título. Un bor-de discontinuo le indicará lanueva ubicación del objeto

Cuando aparezca en la po-sición deseada, suelte el bo-tón del ratón.

7Para que la función delcampo de texto quede

bien definida, es conve-niente poner un título.Hagaclick en la ventana

so-bre el icono . Sitúe el ra-tón en una posición que seencuentre por encima delcampo de texto. A conti-nuación, presione el botónizquierdo del ratón. El re-sultado debe tener el si-guiente aspecto:

.

El título quedará rellenocon un texto estándar .Este texto se puede modifi-car a través de la Ventana depropiedades donde se inclu-yen todas las característicasdel elemento del formularioque tengamos seleccionadoen este momento .

La propiedad es la res-ponsable del título.Para mo-dificar el texto,haga click so-bre y en el campo dela derecha escriba el títu-lo correspondiente. Sustitu-ya el texto estándar por

y pulse la te-cla $ . El tamaño del cam-po del título se puede ajus-tar de una manera sencilla.Basta hacer un doble click

sobre el punto de la esquinainferior derecha

.

De esta manera el tamañodel objeto y las dimensionesdel texto se ajustarán auto-máticamente.

8Ahora podemos añadir losbotones de incremento /

decremento en el formulario.Gracias a ellos podremos mo-dificar los valores más fácil-mente. Para insertarlos, hagaclick en la ventana

so-bre el icono .Sitúe el pun-tero del ratón junto al bor-de derecho del campo detexto y presione el botón iz-quierdo del ratón.Como po-drá apreciar, el tamaño delos botones incremento / de-cremento no se ajusta al ta-maño del campo de texto

El resto de modificacioneshay que realizarlas en el me-nú .

9Ahora vamos a igualar el ta-maño de los dos elementos.Para que VBA sepa qué ele-mentos hay que igualar, tie-ne que marcar el campo detexto y los botones de in-cremento / decremento. Elorden de esta selección esmuy importante. Cuando serealiza una asignación de ta-maños, resulta fundamentalel último elemento selec-cionado. Si desea marcar va-rios elementos de control,tiene que mantener presio-nada la tecla ` mientrashace click sobre cada ele-mento. En nuestro caso que-remos ajustar los botones decontrol al campo de texto.

Seleccione primero el iconocon la ayuda del ratónmientras mantiene pul-

sada la tecla ` y, a conti-nuación, haga click sobre elcampo de texto

.En el menú , se-

leccione la opcióny, seguidamen-

te, sobre .VBA igua-lará de manera automáticael tamaño de los dos ele-mentos, sin tener que rea-lizar ninguna modificaciónadicional .

10En algunos casos, losbotones de incremen-

to / decremento no se in-sertan en el lugar apropia-do, de manera que su bordesuperior no coincide con eldel campo de texto. Esteproblema se puede solucio-nar de una manera muy sen-cilla utilizando algunos co-mandos de VBA. Podráajustar la posición de varioselementos de manera quequeden alineados en los bor-des: derecho, izquierdo, su-perior, inferior, o incluso enel centro. En esta operaciónocurre lo mismo que en elajuste de tamaño, el últimoobjeto seleccionado es elque fija el orden del resto delos objetos. Para ajustar elborde superior de los boto-nes de incremento / decre-mento con el borde superiorde la caja de texto, manten-ga presionada la tecla `mientras hace click sobre

y a continuación sobre .

En el menú principal se-leccione y pulse so-bre las opciones y

.

11También existe la po-sibilidad de acercar o

separar varios elementos pa-ra organizarlos mejor. En es-te caso, el elemento que seselecciona en último lugarmantiene su posición y elresto de elementos cambiande sitio.De esta forma podráajustar mejor la posición delos botones de incremento/ decremento respecto alborde derecho de la caja de

06 (Pág. 58)

¿Qué es...?Macros

Así se llama a la se-cuencia de instruccio-nes que permiten ejecu-tar una determinadafunción dentro de unprograma. El grabadorde macros, es una he-rramienta que registratodas las órdenes quese van introduciendo.Comprueba las instruc-ciones correspondien-tes con cada orden y lasinserta automáticamen-te en un archivo for-mando un programa.

Ventanas dediálogo

Estos elementos se uti-lizan para requerir alusuario una determina-da información. La prin-cipal ventaja de las ca-jas de diálogo estriba enla posibilidad de realizarsimultáneamente variaspreguntas.

Generador deformularios

El generador de formula-rios es una herramientade ayuda gráfica dentrodel VBA que permiteconstruir formularios ocajas de diálogo a la me-dida del usuario. Los ele-mentos que se deseanintroducir en la caja dediálogo, como por ejem-plo las entradas o los bo-tones, se pueden ordenaren la plantilla como enun programa de dibujo.El generador de formula-rios escribe entonces laslíneas de programaciónnecesarias para crear elformulario.

FormularioEn VBA, un formularioes una plantilla de pan-talla en la que se pue-den ordenar para supresentación los con-troles que figuran en lacolección de herra-mientas.

04

03

02

01

Page 20: Macros Vba Word y Excel Computer Hoy

Nº 1758

Ventanas de diálogoExperto

¿Qué es...?Controles

Son los objetos que sepueden utilizar en unacaja de diálogo. Entrelos controles estándarse encuentran, porejemplo: los botones,las listas despegablesy los campos de texto.Estos elementos sonutilizados por otrosmuchos programas deWindows como elWord.

Botones deincremento /decremento

Normalmente suelenencontrarse en uncampo de entrada en elque se pueden elegirlos valores de una listahaciendo click sobreellos e ir arriba y abajo

ProcedimientosEs otra manera de lla-mar a una macro. ElVBA registra todas lasacciones que se puedenrealizar sobre un for-mulario, como porejemplo hacer click ocerrar un formulario.Utilizando varios proce-dimientos se puedecontrolar el funciona-miento para cada unade las acciones. A estosprocedimientos nor-malmente se les deno-mina “Armazones”.

EventosEn el lenguaje de losprogramadores, se de-nomina evento a losclicks de ratón, o loscambios de contenidodentro de un cuadro dediálogo. VBA registraestos eventos y nospermite crear procedi-mientos que se activanautomáticamentecuando se produce unevento determinado.

MóduloEs una parte de unprograma donde sealmacena las ma-cros. Un módulopuede contener unao varias macros. Enun documento oplantilla se puedendepositar módulos.

09

08

07

06

05

texto. Como la última vezque seleccionamos los doselementos, lo hicimos en elorden correcto, ahora po-demos ejecutar la orden di-rectamente sin necesidad deseleccionar los elementos denuevo. En el menú haga click sobre la entrada

y sobre.

De esta manera ajustamosla posición de los dos ele-mentos para que estén jun-tos.

12Tenemos que realizarlas mismas modifica-

ciones en el título. Hay queajustarlo a la izquierda de lacaja de texto. Haga click so-bre y mien-tras mantiene presionada latecla ` seleccione

En el menú , hagaclick sobre y sobre

. A continuacióntendrá que disminuir la dis-tancia vertical entre los doselementos. No es necesariovolver a seleccionarlos, demanera que deje marcadoslos dos campos. En el menú

, haga click sobrey sobre la or-

den . Al final elformulario debe tener el si-guiente aspecto:

.

13Estos tres elementosajustan el alto de las

celdas, ahora tenemos quecrear otros para ajustar la an-chura. Si copiamos directa-mente cada uno de los ob-jetos, podemos ahorrarnosla repetición de todos los pa-sos anteriores. Esta opera-ción la vamos a hacer comoen cualquier otro programade Windows. Únicamentetiene que seleccionar los ele-mentos que desea copiar.Haga click sobre cualquierade los tres elementos mien-tras mantiene pulsada la te-cla ` , también debe hacerclick sobre los otros dos ele-mentos. En el menú princi-pal, acceda a la opción

y también a. Ahora acceda

nuevamente a la opcióny a . La co-

pia aparecerá dentro del for-mulario, pero nosotros que-remos situarla en la parte de-recha.Podemos desplazarlosen bloque para ahorrartiempo. Sitúe el ratón sobreel grupo de elementos se-leccionados y espere a queel puntero tome el siguien-te aspecto . A continua-ción, arrastre el ratón man-teniendo pulsado el botónizquierdo, de manera quetraslade los elementos a laposición deseada

14El segundo grupo deelementos de control

se debe hacer cargo delajuste del ancho de las co-lumnas y hay que ponerle eltítulo correcto. Como demomento se encuentran se-leccionados los tres ele-mentos, no podemos activarla ventana de propiedadespara modificar el título. Pri-mero tendremos que de-sactivar la selección ha-ciendo click en un puntolibre del formulario. A con-tinuación, marque con unclick de ratón el campo deidentificación del lado de-recho . El res-to de pasos ya le son fami-liares. En la ventana depropiedades debe seleccio-nar con un click deratón. Cambie el título ac-tual por .Como podrá comprobar, elcampo es demasiado peque-ño para el nuevo título y ten-dremos que ampliarlo.Arras-tre con el puntero del ratónla marca intermedia del bor-de derecho hasta que puedaver el título completo.

15Sólo nos faltan loscampos de listado en

los que podremos seleccio-nar las filas y las columnasde la tabla con las que va-mos a trabajar. Con un clickde ratón active, dentro de

, elicono . Utilice el ratónpara insertar el elemento enla parte izquierda del for-mulario, por debajo del gru-po de objetos dejando un es-

pacio suficiente para inser-tar más adelante un campocon el título.

16 Inserte ahora el título.Para hacerlo, vuelva a

hacer click sobre el icono. Cambie el título ha-

ciendo click sobre yescriba como título .

17Ahora debemos alinearlos últimos dos ele-

mentos de la izquierda con lacaja de texto correspondien-te. Para hacerlo, hay mante-ner pulsada la tecla ̀ mien-tras se marca la caja de texto,la caja del listado y el título.En el menú selec-cione y para alinear los objetos porla izquierda.

18Para insertar la caja delistado y el título de la

derecha,debe repetir los pa-sos 12 a 14. Al final el for-mulario tendrá el siguienteaspecto

19Solamente nos falta unelemento de control

que será el botón para cerrarla ventana de diálogo. En

, ha-ga click sobre el icono .

Arrastre el puntero del ra-tón hasta el formulario man-teniendo pulsado el botónhasta llegar al punto dondedesea posicionar el nuevoelemento. En la ventana depropiedades puede modifi-car el título del botón ha-ciendo click sobre yescribiendo un nuevo título

.Finalmente, sitúe el bo-tón por debajo de las dos ca-jas de listado y modifique sutamaño para que ocupe to-do el espacio de la parte in-ferior de los dos campos

20 Sólo nos queda ajus-tar el tamaño de la fi-

cha.Para hacerlo utilizaremoslas marcas de los bordes.Ha-ga click sobre cualquier pun-to de la superficie gris de laficha y aparecerán las marcas.Para modificar el tamaño, só-lo se pueden utilizar los trespuntos blancos de las esqui-nas.Desplace el punto mediodel lado derecho

hacia el interior de la fichahasta que se igualen las dis-tancias de los lados derechoe izquierdo.

Programando la ventana de diálogo

Para que todos los ele-mentos que hemos inserta-do en la ficha realicen sufunción, tenemos que pro-gramar un poquito. El si-guiente paso es generar losprocedimientos que soncontrolados por los eventos

, como clicks de ratón ola pulsación de teclas. Ob-serve los elementos inclui-dos en la ventana de diálo-go.Primero debe rellenar lascajas de texto y las listas conalgún contenido. Para ha-cerlo dispone de los eventosde inicialización que se ac-tivan automáticamentecuando se ejecuta la venta-na de diálogo. El código deprograma responsable delinicio debe ser capaz de de-terminar el número de filasy columnas de la tabla se-leccionada. Cada línea de latabla debe aparecer en el lis-tado de la izquierda, mien-tras que cada columna apa-recerá en la lista de laderecha. El primer elemen-to de cada una de las listasdebe aparecer seleccionado.La selección de un elemen-to del listado es otro even-to. Por otro lado, cuando serealice alguna modificaciónen una caja de texto,hay queactualizar los valores de latabla de Word. Durante laprogramación, debemos te-ner en cuenta que los boto-nes de incremento / decre-mento actúan sobre las cajasde texto y por lo tanto de-ben estar asociados a las mis-

08

07

Page 21: Macros Vba Word y Excel Computer Hoy

Nº 1760

Ventanas de diálogoExperto

mas. Por último, un click so-bre el botón de salida debeser capaz de cerrar la fichade diálogo.

Para introducir las líneasde programa no es necesa-rio crear otro Módulo

. Una ventana dediálogo es una unidad ce-rrada con su propia ventanade código. Siga estos pasos:

1Si la ventana de diálogose encuentra activa en el

editor de VBA,pulse sobre laopción de menú y des-pués sobre .

Aparecerá una ventana decódigo que contiene el “ar-mazón”de un procedimien-to para el evento “click”

2Para asignar otro eventoa este código de progra-

ma, despliegue la lista de laderecha

pulsando sobre el icono .Necesitamos el evento deinicialización.Haga click so-bre . El VBA inserta-rá automáticamente el ar-mazón del procedimientocorrespondiente.

3Escriba las siguientes lí-neas de código en el pro-

cedimiento .El procedimiento utiliza

dos variables, que deben serválidas para todos los pro-cedimientos del módulo.Poreste motivo, hemos inserta-do las siguientes líneas

en el contenido de la ven-tana .

Durante la inicalización,primero se guarda la visiónactual del módulo del docu-mento y después se pasa ala visión normal (los cam-bios de las tablas en la visiónnormal dan menos proble-mas de memoria). A conti-nuación se fijan los valoresmáximos para los botones deincremento / decremento en1584,que es el valor máximopara la altura de la fila y el an-cho de la columna. Poste-riormente se analiza la tabla

y se rellenan los campos dellistado con los valores co-rrespondientes.

4Para recuperar el modode visualización antiguo

cuando se finalice, hay quecrear un procedimiento quereaccione al evento “termi-nar”. En la lista despegableque está situada a la derechade la ventana de código hagaclick sobre y seleccionela entrada . Insertela siguiente línea en el pro-cedimiento

5Ahora escribiremos el có-digo de programa corres-

pondiente a la “Altura de cel-da”. Primero hay queseleccionar el objeto corres-pondiente en la ventana decódigo. Para hacerlo, utilicela lista despegable de la iz-quierda. Dentro de los ele-mentos disponibles, selec-cione .

VBA insertará un nuevo ar-mazón para el procedimien-to seleccionado. En la listadespegable de la derecha,se-leccione el evento .Este armazón tiene que serampliado con .

Cuando se produzca elevento “Change”,el código de

la macro leerá la altura de lalínea seleccionada, la trans-formará en un número ente-ro y,a continuación,se la asig-nará al campo de texto. Estatransformación es necesariacon los botones de incre-mento / decremento ya quesólo pueden trabajar con nú-meros enteros.

6Repita el paso 5 para la lis-ta de la derecha. En la lis-

ta despegable de la izquierdaseleccione la entrada

.Con un click de ra-

tón, active de nuevo el even-to “Change”e introduzca la si-guiente indicación .

7Modifique los cambios pa-ra la anchura de las co-

lumnas en la caja de texto.Pa-ra hacerlo, pulse sobre yseleccione en lalista despegable que está si-tuada en la parte izquierda dela ventana de código. Comoel evento “Change” es están-dar para las cajas de texto,noes necesario realizar ningunaotra selección. Amplíe el ar-

mazón del procedimiento in-sertando las siguientes líneas

A partir de ahora, las entra-das en el campo de texto in-fluyen sobre los botones deincremento/decremento y so-bre la anchura de las colum-nas en la tabla.

8Para la caja de texto “An-cho de las columnas” re-

pita el paso 7,pero en este ca-so marque .Complete el armazón del pro-cedimiento con el siguientecódigo .

9Para que los botones deincremento / decremen-

to puedan te-ner efecto hayque introduciren la estructu-ra del procedi-miento una indicación parael evento “Change”.En la lis-ta despegable que está si-tuada en la parte izquierdade la ventana de código, se-leccione el primer objetocon un click sobre y

. En este casoocurre lo mismo que en lascajas de texto, VBA selec-ciona automáticamente elevento correspondiente.Amplié el armazón inser-tando las siguientes líneas .

10para los segundos bo-tones de incremento /

decremento,haga click sobrey en la lista despegable se-

leccione la entrada. El procedi-

miento debe tener el si-guiente aspecto .

11Para terminar, dentrode la lista despegable

de la izquierda, tendrá queseleccionar y

. Para es-te botón, tendremos queprogramar el evento “hacerclick”. Como en este casose trata de un evento es-tándar, las líneas de pro-grama pueden escribirse di-rectamente en el armazóndel procedimiento .

Ya hemos terminado el di-seño del formulario. Ahoratenemos que crear una ma-

cro que permita controlarla apertura de la ventana dediálogo. Hay que crear unmódulo nuevo. Haga clicksobre y seleccioneel comando

.

VBA abrirá una nuevaventana de código en laque tendremos que intro-ducir lo siguiente .

La entrada indica elnombre del formulario y esel mismo con el que apare-ce en el Explorador de pro-

yectos. Si ha completado to-dos los pasos con éxito,habrá creado su primeraventana de diálogo. Ahorapuede probar usted mismo,adaptando los controles ylas líneas de programa pa-ra crear nuevas ventanas dediálogo para sus macros.

09 (Pág. 58)

Page 22: Macros Vba Word y Excel Computer Hoy

En alguna ocasión hatenido dificultades pa-ra encontrar sus tex-

tos de Word?, seguramentele ha pasado más de unavez, incluso con documen-tos que ha escrito el día an-terior. En esta última entre-ga del curso deprogramación VBA en Wordaprenderá a generar rápi-damente barras de iconos ymenús. De paso, aprenderáuna forma de organizar susdocumentos. Crearemosuna carpeta principal paraalmacenar todos los docu-mentos de Word, que a suvez contendrá otras carpe-tas para cada uno de los te-mas que suele tratar. Dentrode estas carpetas puedecrear más subcarpetas paraarchivar los documentos deuna manera más organiza-da. Pero todo esto no sirvede nada si no se aplica conuna cierta disciplina, aun-que en algunos casos po-demos equivocarnos y guar-dar el documento en el

lugar equivocado debido,por ejemplo a las prisas. Simás adelante necesita el do-cumento, tendrá que reali-zar una búsqueda con todala pérdida de tiempo queesto conlleva. Si sigue lospasos que le indicamos enlas siguientes páginas, dis-pondrá de una nueva barrade iconos con dos menús:uno para abrir los docu-mentos y otro para guar-darlos. El menú para abrirlos ficheros contendrá to-das las carpetas con sus res-pectivos documentos, demanera que bastará un sim-ple click de ratón para abrirel documento deseado. Latarea de guardar documen-tos también será más có-moda. Si se crea una carpe-ta nueva, ésta quedaráinsertada automáticamenteen la barra de iconos demanera que siempre estaráactualizada y le permitiráguardar los archivos rápi-damente en los momentosde máxima urgencia.

Lo primero que debemoshacer es crear las carpetasadecuadas donde guardar losarchivos.Vamos a utilizar lacarpeta “C:\mis documentos”que Word utiliza por defectopara guardar los textos. Sigaestos pasos:

1Haga click sobre, ,

y finalmente sobre.

2En la parte izquierda dela ventana del Explora-

dor de Windows mar-que la carpeta con un clickde ratón. En la ventana de laderecha aparecerá el conte-nido de la carpeta .

3Sitúe el puntero del ratónsobre cualquier zona libre

de la ventana derecha y pul-se el botón derecho para queaparezca un Menú de con-texto donde deberá se-leccionar la opción y

4En el Explorador de Win-dows aparecerá una nue-

va carpeta con el nombre. Cambie aho-

ra el nombre escribiendo

y pulse la tecla $ .De esta manera ya dispo-

nemos de una carpeta prin-cipal que nos permitirá al-macenar todos nuestros

documentos deWord.

5A continua-ción debe-

mos crear lassubcarpetas. Ha-ga doble clicksobre para abrir la car-peta. Seguida-mente tendráque repetir los

02

01

Nº 1954

Funciones a medidaExperto

Organice sus documentos creados en Word archi-vando los textos en carpetas independientes.Hoy les enseñamos cómo hacerlo más fácil graciasa la programación en Visual Basic.

Introducción 54Preparando carpetas 54Programar la Barra de iconos 55Instalar barras de iconos y menús 56Ventanas de diálogo estándar 57Terminando la macro 57Instalar la plantilla global 57

SUMARIO

Preparación

Un salvavidas para el desordenUn salvavidas para el desordenUn salvavidas para el desordenUn salvavidas para el desordenUn salvavidas para el desordenUn salvavidas para el desordenUn salvavidas para el desordenUn salvavidas para el desordenUn salvavidas para el desorden

INDICE DEL CURSO

Para Los primeros pasos con el grabador de macros Nº 9principiantes Entorno de desarrollo y modelo de objetos Nº 11Para Cómo depurar y programar con preguntas Nº 13expertos Cómoda búsqueda de errores Nº 15Para Cajas de diálogo rápidas y sencillas Nº 17profesionales Cómo hacer funciones de Word a medida Nº 19

Foto

: Sto

ck P

hoto

s.

Page 23: Macros Vba Word y Excel Computer Hoy

Para que en la nueva Barrade iconos aparezcan las car-petas con sus correspon-dientes nombres, es necesa-rio crear una lista denombres. Para hacerlo va-mos a generaruna función

adi-cional con laque se puedeobtener uncampo de da-tosque contienetodos los nom-bres de los fi-cheros.

1Sitúe el cur-sor justo de-

trás de la línea

y presione la te-cla $ para introducir unanueva línea vacía.

2En este punto escriba lassiguientes líneas .

3Con la ayuda de la tecla’ suba hasta el proce-

dimiento “Sub AutoExec ()”.Sitúe el cursor al finalde la última línea

del bloque de declaraciónde variables . Pul-se la tecla $ para introdu-cir una línea vacía donde de-be escribir el textosiguiente: .

11 (Pág.57)

10 (Pág.57)

09 (Pág.56)

55

Funciones a medida Experto

Nº 19

pasos 3 y 4 pero dando otronombre a ,por ejemplo .Vuelvaa repetir los pasos 3 y 4, pe-ro en esta ocasión asigne elnombre a la nuevacarpeta. Siga los mismos pa-sos para crear una terceracarpeta con el nombre

.La ventana delExplorador de Windows ten-drá el siguiente aspecto .

A continuación debecrear una nueva Plantilla dedocumento que más

adelante se guardará comoPlantilla de documentos-global . De esta manerapodrá disponer de las Ma-cros ,que podrá ac-tivar o desactivar cuando de-see. (Ver sección Experto deComputer Hoy nº 9).Para in-sertar la plantilla proceda dela siguiente forma:

6Inicie Word haciendoclick sobre ,

y en el menú de Windows.

7En el menú principal pul-se sobre y acce-

da a la opción .

8Haga click sobre la pes-taña .

Dentro de la ficha, selec-cione

y marque la opción. Finalmente pul-

se sobre para con-firmar la selección.

9Guarde la nueva plantillacomo Plantilla de docu-

mentos global. De esta for-ma nos aseguramos quesiempre estará disponiblepara cualquier documentode Word.Haga click sobre lasopciones y

del Menúprincipal. Como la carpetaque se propone para guar-dar el archivo es la que Wordutiliza para las plantillas, sim-plemente tiene que escribir

en la entraday pulsar

sobre el botón pa-ra confirmar la selección yalmacenar el archivo en eldisco duro.

05 (Pág.56)

04

03

¿Qué es...?Explorador de Windows

Es un programa que vie-ne incluido con el siste-ma operativo Windows95 y 98. Permite realizaroperaciones (copiar, bo-rrar, renombrar, mover,etcétera) con archivos ycarpetas de manerasencilla, ya que su pre-sentación es gráfica ymuy amigable.

Menú decontexto

Los menús de contextose despliegan cuando sehace click con el botónderecho del ratón sobreun icono, una ventana ocualquier otro elemento.El contenido de estemenú depende de la si-tuación de utilización(contexto) en la que seencuentre el elemento ymuestra las funcionesque se pueden realizarcon el elemento en enese momento.

Plantilla dedocumento

Una plantilla de docu-mento contiene configu-raciones para documen-tos estándar comopueden ser cartas, faxeso informes. Gracias alas plantillas, se puedendefinir configuracionesestándar que posterior-mente serán utilizadosen todos los documen-tos creados a partir deuna plantilla determina-da. Por ejemplo, fijar laconfiguración de la pá-gina, el tipo de letra o elsalto de línea. Si se rea-lizan modificaciones so-bre el documento laplantilla no se modifica.

Plantilla dedocumentosglobal

Normalmente las planti-llas de documentos so-lamente se pueden utili-zar si han sidoseleccionadas cuandose crea el archivo. Peroen el caso de una planti-lla de documento glo-bal, ésta se encontrarádisponible con todos losdocumentos sin necesi-dad de indicarlo alcrear el archivo.

04

03

02

01

A partir de ahora la plan-tilla de documento que aca-ba de crear se encuentradisponible en todos los do-cumentos. Ahora vamosubicar las líneas del códigode programa ayudándonosdel Explorador de proyec-tos .

Crearemos una macroque muestre automática-mente una Barra de iconoscada vez que se inicie Wordy la guardaremos con elnombre “AutoExec”. Parahacerlo debe seguir estospasos:

1Inicie el Editor de VisualBasic desde

Word utilizando la combi-nación de teclas % y a.

2El Explorador de pro-yectos mostrará la plan-

tilla con la que estamos tra-bajado resaltada sobrefondo azul .

Seleccione las opcionesy en el

menú principal.

3En la parte derecha deleditor de Visual Basic apa-

recerá la ventana de código.Ahora tendrá que escribir lasiguiente línea de código

en elcaso de que no se haya es-crito automáticamente.

4A continuaciónescriba .

5Para comenzarla macro “Auto-

Exec”escriba la siguiente lí-nea ypresione la tecla $ . El edi-tor de Visual Basic comple-ta la línea au-tomáticamente.Todavía nosfaltan algunas variables pa-ra completar el Procedi-miento .

En la fila vacía que hay de-lante de escri-ba las siguientes líneas .

08 (Pág.56)

07 (Pág.56)

06 (Pág.56)

Programando la Barra de iconos

Funciones para la lista de carpetas

Page 24: Macros Vba Word y Excel Computer Hoy

Nº 1956

Funciones a medidaExperto

¿Qué es...?Macros

Son secuencias de ins-trucciones con las quese pueden ejecutar de-terminadas tareas den-tro de un programa.Existe una herramientallamada grabador demacros que permite re-gistrar todas las ordenesque se ejecutan al utili-zar un programa. De es-ta manera se puedecrear una macro sin ne-cesidad de programar.

Explorador deproyectos

Es una ventana del edi-tor de Visual Basic en laque se ordenan jerárqui-camente todos los ele-mentos de un documen-to Word. Los elementosse presentan en formade árbol indicando la je-rarquía. Cuando tienendelante un signo “+” in-dican que contienenmás elementos.

Editor de Visual Basic

Es un pequeño progra-ma que permite editar ymodificar las líneas deprogramación genera-das con el grabador demacros. El editor de Vi-sual Basic trabaja con ellenguaje de programa-ción VBA e incluye he-rramientas específicaspara facilitar el rápidodesarrollo de aplicacio-nes en este lenguaje.

ProcedimientoEs otro nombre para re-ferirse a una macro.Normalmente se diceque una macro pequeñaque realiza una determi-nada tarea para una ma-cro más grande es unprocedimiento.

FunciónEs algo muy parecido aun procedimiento

. La diferencia radicaen que cuando se ejecu-ta un procedimiento nose retorna ningún valorresultante, únicamentese procesan las órdenesincluidas en el procedi-miento. Las funcionesson capaces de suminis-trar un valor cuando fi-nalizan su ejecución.

08

09

08

07

06

05

Ahora tenemos que echaruna mirada a la declaraciónde variables en el módulo“AutoExec” .

El VBA no es capaz de di-ferenciar entre las barras demenús y las barras de ico-nos. Según el esquema an-terior se puede introducircualquier elemento en la lis-ta. Debemos proceder de lasiguiente manera. Asigna-remos el contenido corres-pondiente acada una delas variablesutilizando lainstrucción“Set” y el mé-todo “Add” pa-ra insertar laBarra de ico-nos.

1El cursor sedebe en-

contrar al finalde la línea

Pulse la tecla$ para inser-

tar una nueva línea y escri-ba .

Como puede comprobar, lalínea es bastante extensa.Conla ayuda del guión bajo “_”sepuede dividir la línea de có-

digo en varios frag-mentos sin que sufunción se vea afecta-da. Los parámetros

del método “Add”determinan el aspec-to de la Barra de ico-nos. En este caso esuna barra que se pue-de situar libremente yque se encuentra ubi-cada dentro de la ba-rra actual de Word.

2Ahora nos centra-remos en los sub-

menus. Comenzare-mos por el menú queabre los ficheros. Enla siguiente línea decódigo :

3Al contrario que las ba-rras de iconos, los me-

nús no se pueden nombrarsin más. Hay que determi-

nar también las propieda-des de los objetos. Por estemotivo, debemos comple-tar el procedimiento conlas siguientes líneas .

4En cada caso sedebe fijar un

texto de información y un

texto de menú. La informa-ción tiene que aparecer enel momento en el que sedesplace el cursor por en-

cima de cada una de las op-ciones del menú. Para loscomandos que se seleccio-narán dentro del menú, se

puede apli-car la si-guiente re-gla: elnúmero decomandos se

debe corresponder con lalista de carpetas. Para de-terminar las entradas quecontiene el campo de datos“varControlNames” utiliza-

remos la función “Ubound”.Utilizaremos un bucle “For”para introducir los nombres

de las carpetas como co-mandos del menú. En la si-guiente línea escriba estebloque de código: .

El método “Add” permiteinsertar nuevos botones ydurante la ejecución seráutilizado con varios pará-metros.

5Vamos a completar elprocedimiento principal

“AutoExec” con los coman-dos del menú que nos per-miten guardar los docu-mentos de Word.Este bloquees muy similar al último quehemos escrito. Sitúe el cur-sor al final del procedi-miento y escriba las si-guientes líneas:

6Sólo nos queda una cosapendiente para terminar

con el diseño. La Barra deiconos existe, pero es invi-sible. Escriba el texto

como última línea del pro-cedimiento. De esta forma,el elemento dejará de per-manecer oculto para hacer-se visible.

13

12

Instalación de las barras de iconos y los menús

Page 25: Macros Vba Word y Excel Computer Hoy

57

Funciones a medida Experto

Nº 19

¿Qué es...?Campo dedatos

Un campo de datos tie-ne forma de lista, demanera que puede alma-cenar varios valores.Para indicar el valor alque se hace referenciase utiliza un índice queindica cuál es la posi-ción del valor deseadodentro de la lista. Tam-bién se les denomina ta-blas o matrices.

Declaraciónde variables

Es una parte del progra-ma en la que se indica eltipo de datos que puedecontener cada varia-ble . Normalmentesuele encontrarse alprincipio de la macro.

ParámetrosSon valores que se fijanantes de ejecutar unafunción o un procedi-miento, de manera queindican las condicionesde ejecución.

Líneade código

Los programas se escri-ben utilizando líneas detexto. Cada una de las lí-neas expresa una pe-queña orden que estárelacionada con las de-más. Cuando se ejecutaun programa, se proce-san secuencialmente ca-da una de las líneas quecontiene el programa.

ComplementosUn complemento es unaparte de un programaque se añade despuésde la instalación. Porejemplo, la macro quehemos creado para al-macenar los documen-tos en carpetas específi-cas es un complementodel programa Word.

VariableEn los lenguajes de pro-gramación las variablesson elementos que pue-den contener valores.Almacenan resultadosmatemáticos, una pulsa-ción de teclado, el con-tenido de un documentoo cualquier otro datoque puede ser utilizadodentro del programa.

15

14

13

12

15

11

10

La programación de co-mandos no requiere dema-siado esfuerzo. Puede aho-rrarse mucho trabajo siutiliza las ventanas de diá-logo de Word. Para el ejem-plo que estamos haciendose necesitan las ventanas dediálogo de y

. En el menúde ayuda puede encontrarinformación sobre todas lasventanas de diálogo dispo-nibles incluyendo los pará-metros que utilizan.

1Haga click sobre ya continuación sobre

. Poste-riormente aparece una ven-tana de diálogo donde se pue-de acceder a la ayuda con undoble click sobre

y un click sobre

2A continuación pulse so-bre la pestaña .

Con la ayudadel botón podrá despla-zarse por to-dos los térmi-nos de la lista.Haga click so-bre la entrada

paraque aparezcauna lista contodas las ven-tanas de diálo-go disponiblesen Word.

3Cuando sehaya informado cierre la

ventana de ayuda con unclick sobre .

4A continuación intro-duzca el código de lapropiedad “OnAction”

que tiene asociada a todoslos boto-

nes de control. Para hacerlopresione las teclas ` y Nsimultáneamente, de mane-

ra que el cursor se desplacehasta el final de la ventana

de código. En la siguiente lí-nea en blanco escriba .

1Al cerrar la plantilla de do-cumentos también se de-

bería cerrar la Barra de ico-nos de manera automática.Para conseguirlo, debe crearuna macro “AutoExit”.Utilice

la combinación de teclas `y N simultáneamente paradesplazarse hasta el final dela ventana.Escriba aquí las si-guientes líneas de código .

2Ya hemos terminado laprogramación de la Barra

de iconos. Guarde los cam-bios pulsando sobre el botón

del editor de Visual Basic.

Cierre también el editor ha-ciendo click y sobre

Por último cierre en Wordla plantilla del documentocon un click sobre y otro sobre . Wordaparecerá sin documento.

De momento la Barra deiconos que hemos creado noestá disponible en todos losdocumentos de Word.Por es-te motivo, debemos guardarla plantilla de documentoscomo una plantilla global.Pa-ra hacerlo siga estos pasos:

1En el menú seleccione la opción

conun click de ratón.

2Word le mostrará la ven-tana

Dentro de ella, haga clicksobre el botón .

3Aparecerá una nueva ven-tana donde debe marcar

con un click de ratón el fi-chero .Y confir-me la selección pulsando so-bre el botón .

4El nombre del fichero apa-recerá en el listado de

complementos disponi-bles. La crucecita que prece-de al nombre indica que elfichero se encuentra activocomo plantilla global. Si ha-cemos click sobre

estará dis-ponible en todos losdocumentos de Word.Ahora podemos ver elresultado de la macro.La nueva Barra de iconosaparece flotando en la ven-

tana de Word y puede co-menzar a utilizarla.

5El listado de los dos me-nús se debería actualizar

cada vez que abrimos la plan-tilla,pero de momento, no sereconocen las modificacio-nes entre dos sesiones deWord.Este problema se pue-

de solucionar con un botónadicional.Coloque el cursorjusto delante de y escriba .

Pero, para que funcione,debe crear otra macro,escri-ba estas líneas al final del pro-cedimiento “Autoexec” .

6Si le molesta el tener queactivar la plantilla con un

click de ratón cada vez queinicie Word, entonces con-viene que la guarde en la car-peta “Inicio”de Word.Escribaen :“C:\Archi-vos de programa\MicrosoftOffice\Office\Inicio”y Word

cargará el fi-chero automá-ticamente cadavez que se ini-cie.Por último,

compruebe en la ventana dediálogo si la ruta del fichero se ha fi-jado en la carpeta “Inicio”.Con esto hemos terminado elcurso de programación de Vi-sual Basic.

14

Fin de la macro

Cómo instalar la plantilla global

Instrucciones de las ven-tanas de diálogo estándar