Sunteți pe pagina 1din 39

MICROSOFT EXCEL

v. 5.0

MACROS LENGUAJE EXCEL v. 4.0

Cliente: LUCENT TECHNOLOGIES

NDICE
NDICE................................................................................................................................................. 2 INTRODUCCIN................................................................................................................................ 3 PRIMERA PARTE: DEFINICIN, TIPOS DE MACROS. .............................................................. 4 DEFINICIN ........................................................................................................................................ 4 TIPOS DE MACROS............................................................................................................................. 4 MACROS AUTOMTICAS................................................................................................................. 5 MACROS DE TECLADO ................................................................................................................... 7 MACROS DE USUARIO .................................................................................................................. 11 SEGUNDA PARTE: EJECUCIN DE UNA MACRO.................................................................... 12 EJECUCIN DESDE UNA COMBINACIN DE TECLAS / NUEVA OPCIN DEL MEN HERRAMIENTAS............................................................................................................................... 12 EJECUCIN DESDE UN BOTN DE UNA BARRA DE HERRAMIENTAS .................................... 13 CREACIN DE UNA NUEVA BARRA DE HERRAMIENTAS / INCLUSIN DE BOTONES / ASIGNACIN DE MACROS............................................................................................................ 13 PERSONALIZACIN DE UNA BARRA EXISTENTE / ADICIN DE BOTONES / ASIGNACIN DE MACROS ......................................................................................................................................... 17 EJECUCIN DESDE UN BOTN CREADO POR EL USUARIO...................................................... 17 EJECUCIN DESDE HERRAMIENTAS / MACRO / EJECUTAR..................................................... 19 TERCERA PARTE: MACROS DE USUARIO................................................................................ 20 MACROS DE USUARIO..................................................................................................................... 20 ESCRITURA DE MACROS. ............................................................................................................... 22 CUARTA PARTE: LENGUAJE DE MACROS DE EXCEL V. 4.0 ................................................ 26 FUNCIONES DE SELECCIN DE CELDA ....................................................................................... 26 =SELECCIONAR(LnCm)............................................................................................................. 26 =SELECCIONAR(L(n)C(m)) ........................................................................................................ 26 =SELECCIONAR(LnCm:LsCt;LpCr) ....................................................................................... 26 =SELECCIONAR(nombre_de_celda)............................................................................................... 26 =CELDA.ACTIVA() ......................................................................................................................... 26 =DESREF(referencia;nmero_de_filas;nmero_de_columnas;alto;ancho)...................................... 26 FUNCIONES DE INTRODUCCIN DE DATOS ............................................................................... 27 =INTRODUCIR(mensaje;tipo;ttulo;estndar;posicin_horizontal;posicin_vertical;ayuda) .......... 27 ESTRUCTURAS CONDICIONALES.................................................................................................. 31 =SI(condicin;cumple;no cumple).................................................................................................... 31 =SI() / FIN.SI()................................................................................................................................. 34 ESTRUCTURAS REPETITIVAS. ....................................................................................................... 34 =MIENTRAS() / =SALIR.BUCLE() .................................................................................................. 34 =INTERRUMPIR()........................................................................................................................... 36 FUNCIONES DE CONTROL .............................................................................................................. 37 =ESBLANCO(referencia)................................................................................................................. 37 =ESTEXTO(valor) ........................................................................................................................... 37 =COLUMNA(referencia) ................................................................................................................. 38 =FILA(referencia)............................................................................................................................ 38 =VALREF(referencia)...................................................................................................................... 38 =ECO(n).......................................................................................................................................... 38 =IR.A.(referencia)............................................................................................................................ 38 EJECUCIN AUTOMTICA DE MACROS ...................................................................................... 38

Manual de Microsoft Excel Macros

Pg. 2

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

INTRODUCCIN
Este manual est dedicado a el funcionamiento en general de los macros en Excel v. 5.0. Sin embargo, dado que este gestor de hojas de clculo soporta macros escritas en dos lenguajes diferentes (Lenguaje de Macros de Excel v. 4.0 y Visual Basic), y dado que Visual Basic es un lenguaje por s mismo, y que requiere un aprendizaje por separado, las operaciones que se van a contemplar incluyen todas aquellas que, relacionadas con las macros, son independientes del lenguaje en que stas sean escritas y, por otra parte, dentro de lo que son las macros en s, solo se estudiarn las escritas en lenguaje de macros de Excel v. 4.0. Por consiguiente, la estructura de este manual est determinada por el procedimiento seguido por el autor en lo que respecta a la familiarizacin del alumnado con las macros en general y con las macros escritas en lenguaje de macros de Excel v. 4.0 en particular. En primer lugar se estudiar la esencia de una macroinstruccin (Comnmente llamada Macro). Qu es una macro, tipos principales de Macros y formas de ejecucin. Una vez superado este primer escaln, se proceder a estudiar el lenguaje de Macros de Excel v. 4.0. Este lenguaje incluye mas de trescientas funciones incorporadas. El propsito de este manual no es recorrer todas y cada una de estas funciones entrando en profundos detalles sobre cada una de ellas. Esto llevara a una obra extensa y poco til a la hora de recurrir a ella para labores de consulta. En realidad, lo que se intenta es presentar al lector una serie pequea de funciones y demostrar que, conociendo muy pocas de estas funciones, y manejndolas correctamente, se pueden crear macros que permiten operaciones enormemente complejas. El enfoque es, por tanto, recurrir a las estructuras clsicas de cualquier lenguaje de programacin, y estudiar cules son las funciones de Excel que permitirn al programador definir estas estructuras para una macro cualquiera. Por otra parte, el conjunto de usuarios al que este manual est destinado, est formado por personas que deben poseer conocimientos a nivel medio acerca del gestor de hojas de clculo Excel v. 5.0. Slo se requiere dominar el funcionamiento habitual de cada una de las hojas de un libro de trabajo y, por supuesto, todas las operaciones relativas al funcionamiento de filas, columnas y celdas. Seran deseables unos leves conceptos de programacin, aunque, por supuesto no son imprescindibles: Cuando se estudien cada una de las diferentes estructuras, se explicar su funcionamiento y objetivo. La prctica har el resto.

F. Borruel Cubero. Mayo de 1.996

Manual de Microsoft Excel Macros

Pg. 3

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

PRIMERA PARTE: DEFINICIN, TIPOS DE MACROS.


DEFINICIN
La palabra macro procede de la abreviatura de Macroinstruccin. Una Macroinstruccin se define como una instruccin compleja, formada por una serie de instrucciones individuales. Si se pretende comenzar dejando esta definicin suficientemente clara, sera necesario detenerse y hacer un par de precisiones. Cada vez que un usuario realiza un trabajo utilizando Excel v. 5.0, necesita dar una serie de indicaciones a la aplicacin para que sta haga las operaciones correspondientes. El usuario necesita aumentar la anchura de una columna y, o bien recurre al sistema de mens y busca la opcin Formato / Columna / Ancho, o bien coloca el puntero a la derecha del encabezado de esa columna y lo arrastra hasta obtener la anchura deseada. En cualquiera de los dos casos est dando una indicacin a Excel. Le est dando una instruccin. Si este usuario, adems de modificar la anchura de una columna determinada, necesita aplicar un formato especfico a alguna celda, lo primero que tendr que hacer es seleccionar la celda en cuestin, y, una vez ms, ir al sistema principal de mens o bien recurrir al botn derecho del ratn o utilizar alguno de los botones de las barras de herramientas. En cualquiera de estos casos, el usuario ha necesitado dar a Excel otra instruccin para realizar la operacin deseada. Durante una sesin de trabajo, muchas secuencias de instrucciones se repiten un nmero indeterminado de veces. En el caso anterior, se han dado dos instrucciones seguidas. Si este usuario necesita dar a Excel muchas veces esa secuencia de dos instrucciones, su trabajo se simplificara notablemente resumiendo esas dos instrucciones en una sola, de forma que al ejecutar esta nueva instruccin suma de las dos anteriores, se ejecutaran ambas con una sola orden: Esta nueva orden, compuesta de una serie de rdenes simples es una Macroinstruccin, una macro. Se ha expuesto el problema mas sencillo. Si la secuencia de rdenes a repetir fuera muy larga, la necesidad de una macro sera mucho mayor. Creando una macro que incluya muchas rdenes simples, el ahorro de tiempo es mucho mas evidente. Adems, utilizando una macro, se tiene la seguridad de que todas las veces que se ejecute dicha macro, el resultado va a ser el mismo. Si se da la misma serie de instrucciones, una por una, es posible que se olvide o se modifique alguna de estas instrucciones simples, de forma que los resultados no sean siempre exactamente iguales. Resumiendo todo lo anteriormente expuesto: Una macro se puede definir como una instruccin compleja creada por el usuario y que incluye una serie mas o menos larga de instrucciones sencillas.

TIPOS DE MACROS
Existen en Excel v. 5.0 tres tipos diferentes de macros fundamentalmente diferenciadas por su proceso de creacin: Macros Automticas, Macros de Teclado y Macros de Usuario. Los dos ltimos tipos son definidos por el usuario. El primer tipo est predefinido. En otras palabras, Excel v. 5.0 incluye una serie de macros ya creadas y que se pueden activar o no en funcin de las necesidades del usuario.

Manual de Microsoft Excel Macros

Pg. 4

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

MACROS AUTOMTICAS
Como se ha definido anteriormente, existen en Excel v. 5.0 una serie de macros ya creadas y que el usuario activa o desactiva a voluntad. Estas macros reciben el nombre de Macros Automticas. Su funcin principal consiste en ejecutar operaciones automticamente, o en agregar una serie de funciones a las ya implementadas en Excel v. 5.0. La secuencia de instrucciones que activa estas macros es Men Principal / Herramientas / Macros Automticas. Una vez elegida esta secuencia, aparece en pantalla un cuadro de dilogo similar al siguiente:

Para activar estas macros, es suficiente hacer un CLIC con el botn izquierdo del ratn dentro de la casilla de verificacin correspondiente a cada una de ellas. Simultneamente aparecer en la parte inferior del cuadro de dilogo una breve descripcin de la operacin que permite la macro seleccionada. Especial atencin por su utilidad merece la macro Guardado Automtico. Esta macro activa una funcin de autoguardado que almacena cada cierto tiempo el fichero con el que se est trabajando. Una vez activada esta macro, aparece una nueva opcin en el men Herramientas. Cuando se elige esta opcin, el usuario tiene la posibilidad de establecer las caractersticas del funcionamiento del guardado automtico a travs del siguiente men:

Manual de Microsoft Excel Macros

Pg. 5

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

Otras dos macros que pueden destacarse son Herramientas para Anlisis y Herramientas para Anlisis VBA. Estas macros aaden un gran nmero de funciones a las ya activas por defecto. Asimismo, su activacin provoca la aparicin de la opcin Anlisis de Datos, tambin en el men Herramientas. La eleccin de esta nueva opcin lleva al usuario al siguiente cuadro de dilogo, desde donde puede elegir el mtodo de anlisis mas conveniente.

Solver es una macro que permite realizar bsquedas de datos, no en el sentido literal de encontrar un dato determinado en una hoja de clculo, sino que busca el valor o valores que han de tener una celda o serie de celdas para que una celda determinada alcance un valor objetivo. Desde Solver se pueden incluir restricciones a los diferentes valores que pueden tomar cada una de estas celdas de las que depende la celda objetivo. Todas estas operaciones se realizan desde el siguiente cuadro de dilogo. Este cuadro de dilogo se obtiene a travs de Men Principal / Herramientas / Solver.

Plantilla para Proyeccin de Fotos es una macro que permite crear presentaciones utilizando hojas de clculo y grficos. En cierto sentido, permite operaciones tpicas de presentaciones, como las podra realizar PowerPoint v. 4.0, pero, lgicamente mucho mas limitadas. Al activar Plantilla para Proyeccin de Fotos, aparece una pantalla como la de la siguiente imagen. En esta pantalla, el usuario puede especificar las imgenes que desea proyectar, los efectos de transicin que se verificarn en el paso entre una imagen y la siguiente, la velocidad con que tendrn lugar estos efectos, si el paso entre una imagen y la siguiente se realizar automtica o manualmente y el archivo de sonido asociado, en el caso de que ste exista.

Manual de Microsoft Excel Macros

Pg. 6

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

Para poder generar una presentacin, una vez activada la macro automtica, es suficiente con elegir Men Principal / Archivo / Nuevo. Excel presentar el siguiente men, en el que el usuario podr elegir que tipo de archivo desea crear:

MACROS DE TECLADO
Un segundo tipo de macros son aquellas que se podran denominar Macros de Teclado. A diferencia de las anteriores, estas macros son creadas desde el primer momento por el usuario. Su caracterstica es que dicho usuario no tiene porqu saber nada acerca del lenguaje de programacin de Macros de Excel v. 4.0 ni de Visual Basic para Excel. Por decirlo de alguna manera, estas macros escriben solas su cdigo. Lo nico que necesita saber el usuario es cmo crearlas y cmo ejecutarlas. Para crear una macro de teclado, lo nico que hay que hacer es grabar cada una de las rdenes de las que consta la macro. Excel posee un dispositivo que podra llamarse Grabadora, de tal forma que al activarla, cada paso que se da en la pantalla queda automticamente registrado. Cuando se Manual de Microsoft Excel Macros Pg. 7 http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

ha terminado de dar todas las instrucciones que se desea incluir en la macro, se desactiva la grabadora y Excel queda listo para seguir funcionando normalmente. Cuando se ejecute la macro creada, el procedimiento es el mismo que si se reprodujera una pelcula de vdeo o una cinta de cassette: Todas y cada una de las rdenes que se grabaron, se repiten automticamente. En resumen, el procedimiento para crear una macro de teclado, consta fundamentalmente de tres pasos: 1. Activar la grabacin. 2. Realizar las operaciones que se desee incluir en la macro. 3. Desactivar la grabacin. Para activar la grabadora, es necesario seguir la siguiente secuencia: Men Principal / Herramientas / Grabar Macro / Grabar nueva Macro, tal como muestra la siguiente figura:

Nada mas elegir la opcin Grabar nueva macro, aparece en pantalla el siguiente cuadro de dilogo:

Manual de Microsoft Excel Macros

Pg. 8

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

Si se pulsa el botn Opciones, este cuadro de dilogo se ampla, dando as al usuario la oportunidad de establecer todas las especificaciones inherentes a la macro que desea crear:

Algunas de las opciones que aparecen en este cuadro de dilogo son indiferentes al usuario. Por ejemplo: Si se est creando una macro de teclado, importa poco en qu lenguaje se va a crear, ya que el usuario no interviene para nada en el cdigo que se generar automticamente segn se vayan eligiendo las opciones que se desea incluir en la macro. En todo caso, las funciones de las diferentes opciones de este cuadro de dilogo son las siguientes: Nombre de la macro: Un nombre que el usuario desea asignar a la macro que va a crear. Es recomendable que el nombre incluya alguna indicacin de las tareas que la macro va a realizar. De esta forma, cuando el usuario vea la lista de las macros que ha creado, tendr idea sobre las funciones que desempea cada una. Este nombre no debe incluir espacios en blanco. Descripcin: No obligatoria. Permite una descripcin mas detallada de las funciones desempeadas por la macro. Por defecto, incluye el nombre del usuario y la fecha de grabacin. Asignar a: Dos de las posibles formas de ejecutar la macro, una vez creada: Desde una opcin nueva que aparecer en el men Herramientas, o con una combinacin de la tecla CONTROL y otra tecla. Esta ltima puede ser una mayscula o una minscula. Esta opcin se estudiar mas en profundidad en el apartado Ejecucin de una Macro. Almacenar en: Diferentes libros donde se puede almacenar la macro creada. La opcin ESTE LIBRO implica que la macro se almacenar en una hoja mas que se incluir en el libro de trabajo activo. En estas circunstancias, la macro solo se podr ejecutar cuando el usuario tiene este libro abierto. La opcin NUEVO LIBRO implica la apertura de un nuevo libro independiente del libro activo. Para acceder a este nuevo libro, se puede utilizar la opcin Ventana del men principal. La opcin LIBRO DE MACROS PERSONAL almacena la macro en el libro de macros PERSONAL.XLS. Este es un libro especial que genera Excel v. 5.0 automticamente. Este libro se almacena en el directorio EXCEL \ INICIAR. El directorio INICIAR tiene la caracterstica de que todo archivo almacenado en l se abre automticamente cuando arranca la aplicacin. De esta afirmacin se deduce que una macro almacenada en libro PERSONAL.XLS se activar

Manual de Microsoft Excel Macros

Pg. 9

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

automticamente al arrancar EXCEL v. 5.0 y, por consiguiente estar disponible para ser ejecutada independientemente de en qu libro se est trabajando. Lenguaje: Como se ha expresado anteriormente, Excel v. 5.0 soporta macros escritas en lenguaje de macros de Excel v. 4.0 y en Visual Basic. Si el usuario no tiene intencin de entrar en el cdigo de la macro para modificarlo, esta opcin es superflua. La nica diferencia que va a apreciar es que si la macro se graba en lenguaje de macros de Excel v. 4.0, la hoja donde se escribir la macro llevar por defecto el nombre MACRO1. Si se escribe la macro en Visual Basic, esta hoja llevar por defecto el nombre MODULO1. En cualquiera de los dos casos esta hoja soporta las operaciones con hojas igual que cualquier otra hoja de un libro de Excel v. 5.0. Una vez elegidas las opciones correspondientes entre las anteriores, al ACEPTAR, cada operacin que el usuario haga sobre la pantalla, quedar registrada. En este sentido conviene sealar que si se desea que la macro pueda ser ejecutada sobre cualquier celda y no sobre una celda o celdas determinadas, es importante no desplazar la celda activa del lugar que ocupe al comenzar la grabacin. Un cambio de lugar de la celda activa quedar registrado como una operacin mas, y por tanto, al ejecutar la macro, la celda activa se desplazar siempre a la posicin a la que se desplaz mientras se estaba grabando, con la consecuencia de que las operaciones posteriores afectarn solo a esa celda. Una vez realizadas sobre la pantalla todas las operaciones que se desea incluya la macro, es imprescindible detener el proceso de grabacin para poder volver a trabajar normalmente (Es decir, sin grabar cada paso). Para detener la grabacin, la secuencia es similar a la que se utiliz para comenzarla: Men Principal / Herramientas / Grabar Macro / Finalizar Grabacin, tal y como muestra la figura siguiente:

Manual de Microsoft Excel Macros

Pg. 10

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

Es obvio que estas macros estn formadas por una sucesin de rdenes que se ejecutarn secuencialmente en el orden en el que fueron grabadas, sern siempre las mismas (lgicamente) y realizarn siempre las mismas operaciones. Esto quiere decir que nunca permitirn al usuario tomar una decisin o incluir algn dato durante la ejecucin de la macro y que su funcionamiento nunca depender de variables. Por consiguiente solo sern vlidas para tareas estrictamente repetitivas. Una vez grabada la macro, est dispuesta para ser ejecutada. Las diferentes formas de ejecutar una macro son comunes a las macros de teclado y a las macros de usuario. Por tal circunstancia, se estudiarn en profundidad en la segunda parte de este manual: EJECUCIN DE UNA MACRO.

MACROS DE USUARIO
Tercer y ltimo tipo de macros en Excel v. 5.0. Estas macros, a diferencia de las anteriores deben ser escritas parcial o totalmente por el usuario. Esto implica un cierto conocimiento del lenguaje de macros de Excel v. 4.0 o de Visual Basic. Este manual estar dedicado al lenguaje de macros de Excel v. 4.0. Por otra parte, estas macros sern siempre mucho mas flexibles que las anteriores, ya que su cdigo puede incluir peticiones de datos al usuario y estructuras alternativas o repetitivas que son imposibles de implementar en las macros de teclado. Una alternativa vlida es crear macros de usuario escribiendo el cdigo y utilizando la grabadora siempre que esto sea posible. Ante la enorme cantidad de funciones diferentes y su sintaxis, a veces extremadamente complicada, es til recurrir a la grabadora para que traduzca una operacin determinada realizada sobre la pantalla a su cdigo correspondiente. De esta forma, el usuario se evita tener que aprender una enorme cantidad de funciones o estar recurriendo continuamente al manual de usuario. Otra circunstancia a tener en cuenta es que muchas funciones vlidas en la hoja de macros en la que se escribe el cdigo de la macro, no lo son si se intenta introducirlas en una celda de una hoja de clculo. Por el contrario, todas las funciones vlidas en una hoja de clculo, lo son tambin en una hoja de macros. Una vez creadas, las macros de usuario funcionan exactamente igual en lo que se refiere a su ejecucin que las macros de teclado. Las posibilidades en cuanto a la ejecucin de una macro se estudiarn en el siguiente apartado. La tercera parte del manual estar ntegramente dedicada a la creacin de macros de usuario, detallando una serie de funciones y su implementacin dentro del cdigo de la macro.

Manual de Microsoft Excel Macros

Pg. 11

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

SEGUNDA PARTE: EJECUCIN DE UNA MACRO


Como se ha visto anteriormente, a la hora de definir las especificaciones de una macro, antes de comenzar el procedimiento de grabacin, se pueden establecer dos posibilidades para su posterior ejecucin. Sin embargo, estas dos posibilidades no son las nicas. En general, es posible ejecutar una macro de cualquiera de las siguientes formas: 1. Utilizando una combinacin de teclas. La tecla CONTROL pulsada simultneamente con cualquier mayscula o con cualquier minscula proporcionar la ejecucin de la macro que tenga asignada. 2. Una nueva opcin que aparecer en el men HERRAMIENTAS. 3. Un botn de una barra de herramientas. 4. Un botn creado por el usuario. 5. Desde el men HERRAMIENTAS / MACRO / EJECUTAR. Se parte de la base de que se ha creado una macro, y se desea, o bien modificar las caractersticas de ejecucin establecidas al comenzar la grabacin, o bien estas caractersticas no se han establecido todava por tratarse de una macro de usuario. Esta macro ha sido escrita y ahora se necesita probarla, para lo cual es necesario proceder a su ejecucin. Se estudiarn a continuacin y por separado cada uno de estos posibles mtodos.

EJECUCIN DESDE UNA COMBINACIN DE TECLAS / NUEVA OPCIN DEL MEN HERRAMIENTAS
Si el usuario desea que una macro se pueda ejecutar pulsando simultneamente la tecla CONTROL junto con otra tecla, o desea que dicha macro se ejecute desde una nueva opcin del men HERRAMIENTAS, debe acceder al cuadro de dilogo que permite establecer las opciones de una macro. Este cuadro de dilogo es similar al que se utiliza cuando se crea una macro con la grabadora. Para poder establecer todas las caractersticas de una macro, la secuencia que se debe seguir es la siguiente: Men Principal / Herramientas / Macro. Este cuadro de dilogo aparece en la figura siguiente. En l aparecern todas las macros disponibles. Se elegir aquella cuyas caractersticas se desea modificar haciendo un clic sobre su nombre con el botn izquierdo del ratn: Su nombre aparecer en la lnea superior. En la figura est seleccionada la macro TNR_Roja_T_20.

Manual de Microsoft Excel Macros

Pg. 12

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

Una vez seleccionada la macro cuyas caractersticas se desea establecer o modificar, al pulsar OPCIONES, se accede al cuadro de dilogo que permite tales modificaciones:

Desde este cuadro se pueden activar las opciones Elemento del men Herramientas y Mtodo abreviado. Si se activa la primera opcin, deber escribirse el texto que se desea aparezca como opcin dentro del men Herramientas. Si se activa la segunda, deber incluirse la tecla que debe pulsarse junto con CONTROL para ejecutar la macro. Pulsando ACEPTAR en el cuadro de dilogo actual y CERRAR en el siguiente, las caractersticas de ejecucin de la macro quedarn definitivamente establecidas.

EJECUCIN DESDE UN BOTN DE UNA BARRA DE HERRAMIENTAS


Otra posibilidad consiste en asignar la ejecucin de una macro a un nuevo botn que puede aparecer en una de las barras de herramientas existentes en Excel v. 5.0 o en una nueva barra de herramientas creada por el usuario. En este segundo caso, primero es necesario saber cmo se crea una nueva barra de herramientas.

CREACIN DE UNA NUEVA BARRA DE HERRAMIENTAS / INCLUSIN DE BOTONES / ASIGNACIN DE MACROS


Para crear una nueva barra de herramientas es necesario recurrir a la secuencia Men Principal / Ver / Barras de Herramientas. Inmediatamente aparecer un cuadro de dilogo como el que muestra la figura siguiente. En l aparece la lista de todas las barras de herramientas de Excel v. 5.0. Aquellas que presentan la casilla de verificacin activada son las que estn presentes en pantalla. Para crear una nueva barra de herramientas, es suficiente escribir el nombre que se le desea dar a esa nueva barra en la parte inferior del cuadro de dilogo, en la zona denominada NOMBRE DE LA BARRA.

Manual de Microsoft Excel Macros

Pg. 13

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

En este caso, se ha borrado el nombre que apareca por defecto (Estndar) y se ha escrito uno nuevo (Manual de Excel 5):

Una vez escrito el nuevo nombre, al aceptar, aparecer el cuadro de dilogo que muestra la pgina siguiente. En l aparecen las diferentes categoras de botones existentes en Excel v. 5.0. Dentro de la ventana de categoras, en la parte izquierda del cuadro, la ltima de todas es PERSONALIZADAS. En la parte de la derecha de la ventana estn los botones disponibles para cada categora. Los botones incluidos en PERSONALIZADAS no tienen tarea asignada y estn pensados para que sea el usuario el que les asigne una tarea. En la misma figura de la pgina siguiente aparece tambin la nueva barra de herramientas creada como un pequeo recuadro. Este tamao es debido a que la barra existe, pero est vaca de botones. Cuando el usuario vaya aadiendo botones el tamao de la barra ir aumentando automticamente.

Manual de Microsoft Excel Macros

Pg. 14

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

El siguiente paso consiste en arrastrar el botn elegido de entre los predefinidos hasta la nueva barra creada. Al soltar el botn encima de dicha barra aparece automticamente el cuadro siguiente:

En este cuadro, el usuario elegir la macro que desea asignar al botn que ha arrastrado. Al ACEPTAR, Excel le deja otra vez en la ventana anterior para que elija nuevos botones y asigne las macros correspondientes. Si no se desea seguir, la opcin CERRAR le devuelve a la forma normal de trabajo.

Manual de Microsoft Excel Macros

Pg. 15

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

Sin embargo, desde la ventana de personalizar, se puede realizar otra operacin que puede resultar til. Si se pulsa el botn derecho del ratn encima del botn que se acaba de arrastrar, aparecer un men que permite, entre otras operaciones, personalizar la imagen que aparece en la cara del botn:

Si en este nuevo men, se elige la opcin EDITAR LA IMAGEN DEL BOTN, Excel lleva al usuario al EDITOR DE BOTONES, cuya imagen aparece en la figura siguiente, y que permitir modificar la imagen de la cara del botn:

Manual de Microsoft Excel Macros

Pg. 16

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

ACEPTAR en este cuadro y CERRAR en el siguiente terminar con el proceso de crear una nueva barra de herramientas y aadir botones destinados a la ejecucin de macros.

PERSONALIZACIN DE UNA BARRA EXISTENTE / ADICIN DE BOTONES / ASIGNACIN DE MACROS


El procedimiento es exactamente igual que el anterior, pero mas sencillo dado que en lugar de crear una nueva barra, se utilizar una que ya existe. En este caso, desde Men Principal / Ver / Barras de Herramientas / Personalizar se arrastrar el botn seleccionado directamente a la barra de herramientas deseada. Lgicamente esta barra de herramientas destino debe estar presente en pantalla para poder arrastrar el botn encima de ella. Para que una barra est presente en pantalla es suficiente con activar su correspondiente casilla de verificacin. El resto de operaciones es exactamente igual que el descrito para el caso anterior.

EJECUCIN DESDE UN BOTN CREADO POR EL USUARIO


En general a esta posibilidad se la define como ejecucin de una macro desde un botn. En realidad el sentido es mas amplio, desde el punto de vista de que una macro se puede ejecutar desde cualquier objeto que se dibuje sobre una hoja de clculo. Cualquiera de los objetos dibujados en la hoja de clculo que aparece en la siguiente figura, presenta el mismo men que aparece para el caso particular del botn. Para obtener este men, es suficiente pulsar el botn derecho del ratn con el puntero situado encima de cualquiera de ellos. Una vez obtenido este men en pantalla, la opcin Asignar Macro que aparece en la ltima posicin permite al usuario especificar qu macro desea que se ejecute cuando se haga un CLIC con el botn izquierdo del ratn estando situado encima de cualquiera de ellos.

Manual de Microsoft Excel Macros

Pg. 17

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

En el caso del botn, la ltima posibilidad consistira en cambiar el texto que aparece en el frente y escribir algo mas descriptivo acerca de la operacin que se ejecutar al pulsar el botn. Para poder escribir es necesario seleccionar el botn, pero para poder seleccionar el botn sin que se ejecute la macro que tiene asignada, es necesario mantener pulsada la tecla CONTROL. En caso contrario, al hacer un CLIC con el botn izquierdo del ratn sobre el botn, se ejecutar la macro asignada. La secuencia ser entonces: Tecla CONTROL pulsada y clic con el botn izquierdo del ratn encima del botn de la macro. Este botn aparecer con una lnea y puntos alrededor. Estos puntos sirven para modificar sus proporciones. Si se sita el puntero del ratn encima del botn cuando ste est seleccionado, al hacer otro CLIC con el botn izquierdo del ratn, se situar el cursor en su interior, pudiendo entonces borrar el texto por defecto y aadir el nuevo texto. Una vez que se ha finalizado la operacin de asignar la macro y modificar el texto, sera deseable que este objeto no pudiera modificarse por error. La nica forma de asegurar el funcionamiento del botn es protegerlo. Para proteger un objeto cualquiera es necesario que las opciones de proteccin de ese objeto estn activadas y que la hoja tenga tambin activa la proteccin de objetos. En el primero de los casos, a travs de la secuencia Botn Derecho del Ratn / Formato del objeto / Proteccin:

Una vez que se ha comprobado que las protecciones particulares de este objeto estn activadas, es necesario que la proteccin general de la hoja de clculo tambin est activada. La secuencia que da acceso a la proteccin de la hoja es: Men Principal / Herramientas / Proteger documento / Proteger Hoja, que da acceso al siguiente cuadro:

Manual de Microsoft Excel Macros

Pg. 18

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

La configuracin que presenta la figura anterior deja libres las celdas y los escenarios, pero protege los objetos para que stos no puedan ser editados. La adicin de una contrasea es opcional. Salvo en casos muy concretos no es necesaria, pues seguramente el objeto deba sufrir todava algunos retoques antes de que quede definitivamente configurado y ahorra tiempo y trabajo el no tener establecida una contrasea. En cualquier caso, una vez terminada definitivamente la hoja de clculo, siempre se puede incluir si resulta necesaria.

EJECUCIN DESDE HERRAMIENTAS / MACRO / EJECUTAR


Esta opcin es accesible desde el mismo cuadro de dilogo que daba acceso a las propiedades de las macros y que se ha visto anteriormente. La secuencia lleva a dicho cuadro:

En este cuadro se selecciona la macro que se desea ejecutar, y una vez seleccionada, el botn EJECUTAR la activar. El botn EDITAR llevar al usuario a ver el cdigo de la macro y el botn PASO A PASO ejecutar la macro secuencia por secuencia con objeto de una posible evaluacin de cada uno de sus pasos. Esta operacin se estudiar en profundidad en el siguiente captulo.

Manual de Microsoft Excel Macros

Pg. 19

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

TERCERA PARTE: MACROS DE USUARIO.


MACROS DE USUARIO
Las macros de usuario se diferencian del resto de tipos de macros posibles en Excel v. 5.0 en que es el usuario el que tiene que crear el cdigo correspondiente escribiendo cada una de las sentencias que posteriormente se ejecutarn, y desarrollarn las operaciones para las que la macro fue diseada. Esto no quiere decir que el usuario tenga necesariamente que teclear instruccin por instruccin. Es til aprovechar los servicios de la grabadora de macros para que escriba instrucciones correspondientes a operaciones que se pueden efectuar desde la pantalla. La utilizacin de la grabadora crear una nueva macro. Despus se pueden copiar las instrucciones escritas automticamente al cdigo de la macro que el usuario est desarrollando. De este modo, escribiendo las instrucciones imprescindibles, y aprovechando la facilidad de la grabadora de macros, se pueden escribir macros extremadamente complejas sin necesidad de aprender o consultar la sintaxis de funciones como formato de celdas, anchura de columnas, copiar, cortar, pegar, pegado especial, borrar, abrir archivo, cerrar archivo, imprimir, alinear etc.. El paso previo imprescindible para comenzar a escribir una macro consiste en aadir al libro activo una hoja de macros. Esta tiene un tipo especial de formato que permite que se vean las funciones que se van escribiendo. Si en una hoja de clculo normal, se introduce una funcin en una celda, nada mas teclear <ENTER>, la funcin desaparece y la celda muestra el valor que toma esa funcin. En una hoja de macros, este valor no se ve, y en su lugar permanece siempre visible el texto de la funcin introducida. Para insertar una hoja de macros, solo es necesario pulsar el botn derecho del ratn sobre alguna de las etiquetas de las hojas que aparecen en la parte inferior de la pantalla. Inmediatamente, el usuario tendr acceso al men de operaciones con hojas, tal y como muestra la figura siguiente:

Manual de Microsoft Excel Macros

Pg. 20

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

Al elegir la opcin INSERTAR, aparece el siguiente men, donde el usuario elige el objeto que desea insertar:

Tres posibilidades permiten elegir qu tipo de hoja de macros puede ser insertada en un Libro de Trabajo de Excel v. 5.0: 1. Macro de Microsoft Excel v.4.0: Hoja estndar de macros. Permite redactar macros en Lenguaje de Macros de Excel v. 4.0. Es el tipo de hoja que se utilizar siempre para los ejemplos de este manual. En sentido amplio, es el tipo de hoja que se debe utilizar para escribir macros en Lenguaje de Macros de Excel v. 4.0. 2. Mdulo: Hoja que permite escribir macros en lenguaje Visual Basic. Como ya es sabido, Excel v. 5.0 tambin acepta macros escritas en Visual Basic. Cuando se desee crear una macro en este lenguaje, es necesario insertar una hoja de este tipo. 3. Hoja Internacional de Macros: En Lenguaje de Macros de Excel v. 4.0 - a diferencia de otros lenguajes - cada idioma tiene su propio conjunto de funciones. As, por ejemplo, si se est trabajando en Espaol, para realizar la operacin de pegado, se utiliza la funcin =PEGAR(). Si se estuviera trabajando en Ingls, dicha funcin sera =PASTE(). Si se est trabajando con una macro escrita en una hoja normal de macros, y se incluye la funcin =PASTE(), esta funcin slo ser reconocida si Excel se est ejecutando en su versin en Ingls. La ventaja que tiene trabajar con Hojas Internacionales de Macros es que en ellas se pueden escribir las funciones en ingls y traducirlas a cualquier idioma. Estas macros se ejecutarn siempre independientemente del idioma que tenga configurada la versin de Excel con la que despus se ejecuten dichas macros. Si se abre una hoja internacional de macros, independientemente de la versin idiomtica de Excel que se est utilizando, todas las funciones tendrn nombre en ingls. Si se escriben las funciones en ingls en cualquier hoja internacional de macros, al copiar estas funciones a una hoja normal de macros, se traducirn automticamente al idioma de la versin de Excel que se est utilizando. Por supuesto si se va a trabajar siempre con la misma versin de Excel, todas estas consideraciones carecen de sentido. Una vez insertada la hoja de macros con la que se desea trabajar, aparecer la etiqueta correspondiente a esa hoja en la lnea de etiquetas de la pantalla. Si esta hoja insertada es una hoja de Macros, la etiqueta ser por defecto Macro1 para la primera hoja que se inserte, Macro2 para la segunda y as sucesivamente. Llegado este momento, el aspecto de la pantalla difiere ligeramente del que sta toma cuando se est trabajando con una hoja de clculo. Las columnas aparecen con mayor anchura. Las operaciones habituales de Formato, Ancho de columna, Alto de fila, Copiar, Cortar, Pegar, Insertar, Eliminar, sin embargo, funcionan exactamente igual que para una hoja de clculo. Asimismo, los botones de las barras de herramientas y el conjunto de opciones del sistema de mens mantienen su funcionamiento exactamente igual que para las hojas de clculo. Slo un pequeo conjunto de opciones del sistema principal de mens estn desactivadas. Por ejemplo, el men Herramientas presenta desactivadas las opciones Objetivos y Administrador de escenarios. La opcin Datos presenta desactivadas las opciones Tabla y Tablas Dinmicas.

Manual de Microsoft Excel Macros

Pg. 21

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

ESCRITURA DE MACROS.
En este punto, la pantalla presenta un aspecto similar a la figura siguiente:

El usuario puede situarse en cualquier celda y comenzar a redactar las funciones que formarn el cdigo de la macro. Pueden darse una serie de normas generales que ayudarn a la hora de comenzar a redactar una macro: 1. Es recomendable dejar la primera celda de la macro reservada para su nombre y, en su caso, para la letra de activacin. En este sentido cabe resaltar que al ser el lenguaje de Macros de Excel v. 4.0 totalmente funcional (es decir, totalmente formado por funciones), todas las celdas que alberguen una funcin deben comenzar por un smbolo igual (=). Salvo en el caso de asignacin de variables, aquellas que no comiencen por =, sern consideradas comentarios y no sern tenidas en cuenta a la hora de la ejecucin. Un ejemplo de primera celda podra ser el siguiente: TNR_Roja_T_20 (t) 2. Todas las macros deben terminar con la funcin =VOLVER(). Esta funcin desactiva la macro y devuelve el control a Excel v. 5.0. En casos especiales, como pueden ser algunas estructuras concretas, esto no ser necesario, pero, en general toda macro termina con =VOLVER(). 3. Es muy recomendable escribir siempre las funciones en letra minscula. Si la expresin est bien redactada, al pulsar <ENTER>, se situar en el interior de la celda en la que se est escribiendo en letra mayscula. Esta conversin de mayscula a minscula se realiza de forma totalmente automtica y sirve para detectar errores. Si al pulsar <ENTER>, la funcin escrita en minsculas no aparece en la celda en maysculas, probablemente se ha cometido algn error.

Manual de Microsoft Excel Macros

Pg. 22

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

4. Es posible asignar diferentes formatos a celdas que se desee estn resaltadas, por ejemplo, escribiendo su contenido en otro color o con otro tipo de letra. Los diferentes formatos no influyen a la hora de ejecutar la macro. Una vez escrita la macro, el aspecto que presenta es similar al siguiente:

Esta pequea macro de ejemplo, selecciona la celda A1, copia su contenido, selecciona la celda A2 y lo pega. El cdigo ha sido escrito. Ahora es necesario decir a Excel que esa secuencia de funciones que se han introducido en un conjunto de celdas, se han de ejecutar secuencialmente y que en su conjunto forman una macro, es decir, no son un conjunto de instrucciones por separado. Para ello habr que decir dnde comienza, dnde termina, cual es su nombre, que es un comando (una orden) y las teclas a travs de las cuales se ejecutar. Para establecer todas estas especificaciones se utiliza el mismo procedimiento que cuando se asigna nombre a una celda. En realidad, lo que se est haciendo es tratar este conjunto de celdas como si fuese una sola. Para llevar a cabo este procedimiento, se recurre a la secuencia: Men Principal / Insertar / Nombre / Definir tal como se aprecia en la figura siguiente:

Esta secuencia de elecciones llevar al usuario al cuadro de dilogo a travs del cual se pueden establecer las especificaciones mencionadas anteriormente sobre la macro recin creada:

Manual de Microsoft Excel Macros

Pg. 23

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

En este cuadro, primero se selecciona el nombre de la macro. Por defecto aparece el nombre escrito en la primera celda. Es necesario comprobar que en la fila rotulada como SE REFIERE A: aparece la direccin correcta de las celdas en las que se ha escrito la macro. Una vez comprobado el nombre y la direccin correcta de las celdas, en el recuadro correspondiente a MACRO se estable que lo que se acaba de crear es un comando y que se ejecutar con la combinacin de teclas CONTROL+ una letra cualquiera. (En este caso, la c minscula). En categora se define que est definida por el usuario, es decir, no incluida en ninguna de las categoras preestablecidas en Excel v. 5.0. Esta opcin se utiliza sobre todo si se fuera a definir el conjunto de instrucciones generado por el usuario como una funcin a incluir dentro de alguna de las categoras de Excel v. 5.0. Este no es el caso, luego la categora elegida ser DEFINIDAS POR EL USUARIO. La opcin ELIMINAR de este cuadro de dilogo solo sirve para eliminar macros creadas con Visual Basic. Para eliminar una macro creada con Lenguaje de Macros de Excel v. 4.0, es necesario eliminar la hoja en la que est escrita la macro. Una vez realizadas todas estas operaciones, se puede regresar a una hoja de clculo cualquiera y ejecutar la macro. Si el funcionamiento es correcto, puede procederse a asignar su funcionamiento mediante alguna de las posibilidades descritas anteriormente. Si la macro presentase algn fallo, aparecer en pantalla el siguiente cuadro de dilogo:

La opcin PASO A PASO permite recorrer toda la macro sentencia por sentencia evaluando el resultado de cada una de ellas y, de esta forma, rastrear el error de la manera mas sencilla posible. La Manual de Microsoft Excel Macros Pg. 24 http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

opcin de realizar un rastreo paso a paso tambin aparece en el cuadro de dialogo obtenido desde Men Principal / Herramientas / Macro:

La eleccin de esta opcin lleva al siguiente cuadro:

El usuario pude utilizar la opcin EVALUAR. Pulsando repetidamente este botn, la macro ejecuta un paso, presenta el resultado de la ejecucin de dicho paso, ejecuta el siguiente, y as sucesivamente hasta que recorre todas y cada una de las instrucciones de la macro. De esta forma se facilita el trabajo de seguimiento de valores y de posibles errores. Cuando detecta uno de stos, la opcin IR A lleva directamente a la celda donde se ha detectado del error. Esto es evidentemente inmediato cuando la macro es pequea, pero ante una macro formada por cientos de instrucciones, es una forma de ahorrar tiempo y trabajo.

Manual de Microsoft Excel Macros

Pg. 25

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

CUARTA PARTE: LENGUAJE DE MACROS DE EXCEL v. 4.0


Hasta aqu se ha estudiado la forma de crear una macro en Excel v.5.0, pero una macro est integrada siempre por un conjunto de funciones que permiten establecer determinadas estructuras y realizar determinadas operaciones. Como ya ha sido dicho, muchas de estas funciones se pueden obtener directamente a travs de la grabadora. Sin embargo, otro gran conjunto de funciones no tienen posibilidad de ser obtenidas desde la pantalla. A estas funciones se dedicar esta ltima parte del manual. Las funciones han sido separadas por operaciones o estructuras. De este modo se agruparn funciones que permiten operaciones similares o que colaboran parra llevar a cabo una nica operacin.

FUNCIONES DE SELECCIN DE CELDA


Una de las operaciones mas frecuentes que es necesario realizar durante el trabajo con una hoja de clculo es la desplazar la celda activa de una posicin determinada a otra. A continuacin se presenta una serie de funciones que permiten llevar a cabo operaciones de seleccin de celda.

=SELECCIONAR(LnCm)
Esta funcin colocar la celda activa en la posicin correspondiente a la fila n y columna m. En el ejemplo de la pgina 23 se utiliza esta funcin para seleccionar primero la celda A1 y luego la celda A2.

=SELECCIONAR(L(n)C(m))
Similar a la anterior, esta funcin, en lugar de seleccionar directamente una fila y una columna, lo que hace es desplazar la celda activa n filas y m columnas desde la posicin actual de la celda activa. Si la celda activa est en A1 y se ejecuta la funcin =SELECCIONAR(L(2)C(2)), el resultado ser que la celda activa se posicione dos filas mas abajo y dos columnas mas a la derecha de la celda A1. Concretamente, se situara en la celda C3.

=SELECCIONAR(LnCm:LsCt;LpCr)
Esta funcin selecciona el rango LnCm:LsCt y deja como celda activa la celda LpCs perteneciente a dicho rango. Los valores n, s y p corresponden a nmeros de fila y los valores m, t, r corresponden a nmeros de columna.

=SELECCIONAR(nombre_de_celda)
Donde nombre_de_celda es el nombre asignado a una celda concreta o a un rango. Esta funcin seleccionar al ejecutarse el rango nombre_de_celda.

=CELDA.ACTIVA()
Devuelve la referencia actual de la celda activa independientemente de cual sea sta.

=DESREF(referencia;nmero_de_filas;nmero_de_columnas;alto;ancho)
Devuelve una referencia relativa a partir de referencia. Donde: referencia: Es una referencia cualquiera. Puede utilizarse aqu la funcin CELDA.ACTIVA(). De esta forma tomar la referencia de la celda activa independientemente de dnde se encuentre sta. Nmero_de_filas: La cantidad de filas desde referencia. Manual de Microsoft Excel Macros Pg. 26 http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

Nmero_de_columnas: Cantidad de columnas desde referencia. Alto: Nmero de filas de la seleccin. Ancho: Nmero de columnas de la seleccin. Resumen: La funcin DESREF devuelve la referencia de un rango de alto filas y ancho columnas. Este rango est situado a Nmero_de_filas filas de referencia y a Nmero_de_columnas columnas de referencia. Esta funcin se puede utilizar conjuntamente con SELECCIONAR y con CELDA.ACTIVA(). Un ejemplo de utilizacin conjunta de estas tres funciones sera el siguiente: =SELECCIONAR(DESREF(CELDA.ACTIVA();3;3;2;2)) Esta expresin seleccionar un rango de dos filas de alto y dos columnas de ancho. Este rango estar situado tres columnas a la derecha de la celda activa y tres filas mas abajo. Si se supone que la celda activa es B1, el rango seleccionado ser E4:F5.

FUNCIONES DE INTRODUCCIN DE DATOS


Una de las caractersticas de las macros de teclado es su independencia del usuario una vez ha comenzado su ejecucin. Esto quiere decir que el usuario no puede intervenir aadiendo datos o eligiendo opciones. Para resolver esta situacin se utilizan las macros de usuario. Estas macros si que pueden disearse para que, en determinados momentos el usuario sea requerido para elegir una opcin o introducir un dato. Esta operacin de peticin de datos se realiza fundamentalmente a travs de la siguiente funcin:

=INTRODUCIR(mensaje;tipo;ttulo;estndar;posicin_horizontal;posicin_vertic al;ayuda)
Esta funcin genera un cuadro de dilogo a travs del cual el usuario puede introducir los datos que desee. Este cuadro de dilogo se disea mediante las opciones del argumento de la funcin. El significado de cada una de estas partes del argumento es el siguiente: mensaje: El mensaje que aparece en el interior del cuadro de dilogo. Puede ayudar al usuario a saber qu datos debe introducir. Debe ser introducido entre comillas. tipo: Tipo de datos que aceptar el cuadro de dilogo. Este tipo de datos se define mediante un cdigo. El cdigo correspondiente a cada tipo de datos es el siguiente: TIPO DE NMERO DATO DE CDIGO Frmula 0 Nmero 1 Texto 2 Valor Lgico 4 Referencia 8 Error 16 Matriz 64 ttulo: Texto que aparecer en la barra de ttulo del cuadro de dilogo. Si se omite, el ttulo por defecto ser Introducir. Debe ser introducido entre comillas.

Manual de Microsoft Excel Macros

Pg. 27

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

estndar: Valor que aparecer por defecto. posicin_horizontal: Posicin que ocupar el cuadro de dilogo en sentido horizontal en la pantalla. posicin_vertical: Posicin que ocupar el cuadro de dilogo en sentido vertical en la pantalla. ayuda: Indicar el archivo y tema de ayuda que se presentar al pulsar el botn de ayuda. A continuacin, un ejemplo de funcin =Introducir: =INTRODUCIR(Introduzca la fecha de nacimiento;1;Introduccin de datos;;100;100;) En este caso se ha omitido el valor estndar (valor por defecto) y el archivo de ayuda (ltima parte del argumento). El resultado es el siguiente:

Por lo que se ha visto hasta ahora, mediante esta funcin se pueden introducir datos durante la ejecucin de una macro, sin embargo quedan una serie de problemas por resolver. El primero es que estos datos que se han introducido deben ser almacenados en algn lugar para despus poder recurrir a ellos. Si no se especifica un lugar de almacenamiento, los datos se pueden introducir, pero, una vez introducidos, se pierden. Es necesario, pues, definir alguna forma de que estos datos se almacenen en memoria para poder recurrir a ellos en cualquier momento. Para almacenar estos datos introducidos existen dos posibilidades: 1. Definir una variable. 2. Definir un nombre para la celda en la que est escrita la funcin Introducir. En el primero de los casos, la expresin sera:
Fecha_de_Nacimiento=INTRODUCIR(Introduzca la fecha de nacimiento;1;Introduccin de datos;;100;100;)

Donde Fecha_de_Nacimiento es el nombre de una variable que almacenar el valor introducido a travs de la funcin Introducir. Una variable acta como un depsito temporal de datos. El valor introducido queda en ese depsito dispuesto para poder operar con l. Se llaman variables a estos dispositivos porque no tienen un valor fijo asignado. En cada caso toman el valor que se introduzca. La segunda de las posibilidades es dar un nombre a la celda donde est escrita la funcin introducir. En este caso, es ese nombre de celda el que acta como variable. Para dar nombre a una celda se utiliza la secuencia Men Principal / Insertar / Nombre / Definir. En este caso es suficiente con escribir la funcin. Excel se encarga de hacer que la celda nombrada asuma el valor de los datos introducidos a travs de =Introducir. A continuacin aparece un ejemplo de macro. Cada una de las sentencias lleva en la lnea siguiente la explicacin de su funcionamiento. En esta macro aparece tambin la funcin =formula(). La accin de esta funcin es colocar datos en la celda activa. Manual de Microsoft Excel Macros Pg. 28 http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

El objetivo de esta macro es dejar que el usuario seleccione una celda cualquiera, pedirle una fecha de nacimiento y calcular la edad actual de la persona nacida en esa fecha. El clculo se ha de realizar independientemente de qu da se ejecute la macro. En otras palabras, la edad calculada debe estar actualizada. Clculo_de_Edades (c) Nombre y letra de Ejecucin de la macro. Celda_Inicial=INTRODUCIR("Introduzca la celda comienzo";8;"Clculo de edades";;100;100;) Peticin de la celda donde se comienza a colocar los datos. Asignacin a la variable Celda_Inicial =SELECCIONAR(Celda_Inicial) Seleccin de la celda introducida a travs de la funcin =Introducir. =FORMULA("La fecha de nacimiento es:") Colocacin del texto "La fecha de nacimiento es:" en la celda seleccionada. =SELECCIONAR("lc(1)") Seleccin de una celda una columna a la derecha de la celda activa. =INTRODUCIR("Introduzca la fecha de nacimiento";1;"Clculo de edades";;100;100;) Peticin de la fecha de nacimiento. La celda superior est nombrada como F_Nacimiento. =FORMULA(F_Nacimiento) Colocacin del valor de F_Nacimiento en la celda activa. Edad=ENTERO((AHORA()-F_Nacimiento)/365) Clculo de la edad y asignacin de este valor a la variable Edad. =SELECCIONAR("l(1)c(-1)") Seleccin de una celda una fila mas abajo y una columna a la izquierda. =FORMULA("La edad es:") Colocacin en la celda activa del texto "La edad es:" =SELECCIONAR("lc(1)") Seleccin de una celda una columna a la derecha. =FORMULA(Edad) Colocacin del valor de la variable Edad. =VOLVER() Fin de la ejecucin de la macro. Las filas sombreadas son las que corresponden al cdigo de la macro. Las filas en blanco contienen la explicacin acerca del contenido de la celda de la fila superior. Si se ejecuta esta macro tal y como est escrita, el resultado ser el siguiente: B La fecha de n La edad es: C 22195 35

3 4

Suponiendo que la celda inicial elegida por el usuario haya sido B3. Es obvio que existe un problema con las anchuras de las columnas y con el formato de las celdas. Es el momento idneo para utilizar la grabadora y crear una macro que d formato de fecha a la celda (C3 en este caso concreto) y haga un ajuste automtico de anchura a las columnas. Una vez creada esta macro, se copiaran las rdenes y se incluirn en los lugares correspondientes de la macro Clculo_de_Edades. En la siguiente figura aparece el cdigo de la nueva macro creada a travs de la grabadora: Macro1 =FORMATO.NUMERO("d-mmm-aa") =ANCHO.COLUMNA(;;;3)

Manual de Microsoft Excel Macros

Pg. 29

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

=VOLVER() En este caso lgicamente no importan las especificaciones de nombre, descripcin ni ejecucin, ya que solo va a servir para copiar sus rdenes. Slo importa que esta macro se redacte en Lenguaje de macros de Excel v. 4.0 y se almacene en el libro de trabajo activo. Una vez copiadas las rdenes de esta nueva macro a sus lugares correspondientes de la macro Clculo_de_Edades, el listado final de esta macro ser el siguiente: 1 Clculo_de_Edades (c) 2 Nombre y letra de Ejecucin de la macro. 3 Celda_Inicial=INTRODUCIR("Introduzca la celda comienzo";8;"Clculo de edades";;100;100;) 4 Peticin de la celda donde se comienza a colocar los datos. Asignacin a la variable Celda_Inicial 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 =SELECCIONAR(Celda_Inicial) Seleccin de la celda introducida a travs de la funcin =Introducir. =FORMULA("La fecha de nacimiento es:") Colocacin del texto "La fecha de nacimiento es:" en la celda seleccionada. =SELECCIONAR("lc(1)") Seleccin de una celda una columna a la derecha de la celda activa. =INTRODUCIR("Introduzca la fecha de nacimiento";1;"Clculo de edades";;100;100;) Peticin de la fecha de nacimiento. La celda superior est nombrada como F_Nacimiento. =FORMULA(F_Nacimiento) Colocacin del valor de F_Nacimiento en la celda activa. =FORMATO.NUMERO("d-mmm-aa") Asignacin de formato de fecha a la celda activa. Edad=ENTERO((AHORA()-F_Nacimiento)/365) Clculo de la edad y asignacin de este valor a la variable Edad. =SELECCIONAR("l(1)c(-1)") Seleccin de una celda una fila mas abajo y una columna a la izquierda. =FORMULA("La edad es:") Colocacin en la celda activa del texto "La edad es:" =SELECCIONAR("lc(1)") Seleccin de una celda una columna a la derecha. =FORMULA(Edad) Colocacin del valor de la variable Edad. =SELECCIONAR(DESREF(CELDA.ACTIVA();-1;-1;2;2)) Selecciona el rango donde se han introducido datos. =ANCHO.COLUMNA(;;;3) Realiza un ajuste automtico de ancho de columna. =SELECCIONAR("l1c1") Selecciona la celda A1. =VOLVER() Fin de la ejecucin de la macro. Filas 15 y 16: Formato de fecha. Filas 27 y 28: Seleccin del rango formado por 2 filas y dos columnas. Filas 29 y 30: Ajuste automtico de anchura de columna. Filas 31 y 32: Opcionales. Se han aadido solo para deshacer la seleccin del rango de datos. Una vez aadidas estas sentencias, el resultado ahora es el siguiente: A Manual de Microsoft Excel Macros Pg. 30 B http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

2 La fecha de nacimiento es: 3 La edad es:

6-oct-60 35

Suponiendo que se haya partido de la celda A2 como celda inicial.

ESTRUCTURAS CONDICIONALES.
A veces es necesario que la ejecucin de cualquier programa realice diferentes operaciones en funcin de determinadas circunstancias. Estas circunstancias pueden venir dadas por valores de una variable o por diferentes elecciones que puede hacer el usuario. Sera algo as como si en el lenguaje normal se dijera: Si ocurre este evento, realiza esta determinada serie de operaciones, si ocurre este otro, realiza esta otra serie y si no ocurre nada, esta tercera. Situaciones como la descrita en el prrafo anterior se llaman en programacin ESTRUCTURAS CONDICIONALES O ALTERNATIVAS. Dependiendo de unos parmetros iniciales, el programa (la macro) realizar una u otra operacin. En Lenguaje de Macros de Excel v. 4.0, la funcin mas importante que permite crear este tipo de estructuras es la funcin =SI().

=SI(condicin;cumple;no cumple)
Esta funcin puede actuar en hojas de macros de una forma igual que en hojas de clculo. Sin embargo, dada la estructura secuencial de una macro, las posibilidades se amplan notablemente. Las partes del argumento de esta funcin son las siguientes: condicin: Una comparacin lgica. Permite establecer un criterio que la funcin analizar. cumple: La operacin que la macro debe realizar en el caso de que se cumpla el criterio especificado en condicin. no cumple: La operacin que la macro debe realizar en el caso de que no se cumpla el criterio establecido en condicin. En el caso concreto de la macro anterior, se podra utilizar la funcin =SI() para dos operaciones diferentes: Primero, para regular el funcionamiento del botn CANCELAR del cuadro de dilogo generado por =Introducir. Por otra parte se podra utilizar para calcular tambin el da de la semana correspondiente a la fecha de nacimiento introducida. Por lo que respecta a la primera de las dos operaciones, cuando se pulsa el botn CANCELAR en el cuadro de dilogo que pide una celda inicial, Excel presenta automticamente un mensaje de error. Lo deseable sera que al pulsar CANCELAR terminara la ejecucin de la macro y no apareciera ningn mensaje.

Para realizar estas operaciones, se han aadido a la macro original una serie de instrucciones que aparecen en el cuadro de la pgina siguiente:

Manual de Microsoft Excel Macros

Pg. 31

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

1 Clculo_de_Edades (c) 2 Nombre y letra de Ejecucin de la macro. 3 Celda_Inicial=INTRODUCIR("Introduzca la celda comienzo";8;"Clculo de edades";;100;100;) 4 Peticin de la celda donde se comienza a colocar los datos. Asignacin a la variable Celda_Inicial 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 =SI(Celda_Inicial<>0;VOLVER()) Comprueba si ha habido cambios en el valor de Celda_Inicial. =SELECCIONAR(Celda_Inicial) Seleccin de la celda introducida a travs de la funcin =Introducir. =FORMULA("La fecha de nacimiento es:") Colocacin del texto "La fecha de nacimiento es:" en la celda seleccionada. =SELECCIONAR("lc(1)") Seleccin de una celda una columna a la derecha de la celda activa. =INTRODUCIR("Introduzca la fecha de nacimiento";1;"Clculo de edades";;100;100;) Peticin de la fecha de nacimiento. La celda superior est nombrada como F_Nacimiento. =SI(F_Nacimiento=FALSO;VOLVER()) Condicional que regula el funcionamiento del botn CANCELAR. =FORMULA(F_Nacimiento) Colocacin del valor de F_Nacimiento en la celda activa. =FORMATO.NUMERO("d-mmm-aa") Asignacin de formato de fecha a la celda activa. Edad=ENTERO((AHORA()-F_Nacimiento)/365) Clculo de la edad y asignacin de este valor a la variable Edad. =SELECCIONAR("l(1)c(-1)") Seleccin de una celda una fila mas abajo y una columna a la izquierda. =FORMULA("La edad es:") Colocacin en la celda activa del texto "La edad es:" =SELECCIONAR("lc(1)") Seleccin de una celda una columna a la derecha. =FORMULA(Edad) Colocacin del valor de la variable Edad. =SELECCIONAR(DESREF(CELDA.ACTIVA();-1;-1;2;2)) Selecciona el rango donde se han introducido datos. =ANCHO.COLUMNA(;;;3) Realiza un ajuste automtico de ancho de columna. =SELECCIONAR("l1c1") Selecciona la celda A1. =VOLVER() Fin de la ejecucin de la macro.

Se han aadido las filas 5, 6, 15 y 16. Obsrvese que en la funcin =SI() solo se han utilizado las dos primeras partes del argumento. Se establece lo que la funcin ha de hacer en el caso de que se cumpla la condicin. En el caso de que no se cumpla no se establece ninguna operacin definida, de esta forma, la funcin no hace nada y se prosigue la ejecucin de la macro. En cuanto a la segunda de las posibles operaciones ejemplo, se va a intentar a continuacin que la macro calcule el da de la semana correspondiente a la fecha de nacimiento. A travs de la funcin =DIASEM(nmero de serie del da;sistema de numeracin), Excel calcula un nmero correspondiente al dia de la semana. Existen tres tipos diferentes de sistems de numeracin de das: El tipo 1 asigna al domingo el valor 1, el valor 2 al lunes y as sucesivamente hasta el 7 que pertenece al sbado. El segundo sistema de numeracin comienza asignando al lunes el nmero 1 y al domingo el 7. El tercer tipo asigna el 0 al lunes y el 6 al domingo. Para este ejemplo se va a seguir el tipo 2. Manual de Microsoft Excel Macros Pg. 32 http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

Clculo_de_Edades (c) Nombre y letra de Ejecucin de la macro. Celda_Inicial=INTRODUCIR("Introduzca la celda comienzo";8;"Clculo de edades";;100;100;) Peticin de la celda donde se comienza a colocar los datos. Asignacin a la variable Celda_Inicial =SI(Celda_Inicial<>0;VOLVER()) Comprueba si ha habido cambios en el valor de Celda_Inicial. =SELECCIONAR(Celda_Inicial) Seleccin de la celda introducida a travs de la funcin =Introducir. =FORMULA("La fecha de nacimiento es:") Colocacin del texto "La fecha de nacimiento es:" en la celda seleccionada. =SELECCIONAR("lc(1)") Seleccin de una celda una columna a la derecha de la celda activa. =INTRODUCIR("Introduzca la fecha de nacimiento";1;"Clculo de edades";;100;100;) Peticin de la fecha de nacimiento. La celda superior est nombrada como F_Nacimiento. =SI(F_Nacimiento=FALSO;VOLVER()) Condicional que regula el funcionamiento del botn CANCELAR. =FORMULA(F_Nacimiento) Colocacin del valor de F_Nacimiento en la celda activa. =FORMATO.NUMERO("d-mmm-aa") Asignacin de formato de fecha a la celda activa. Edad=ENTERO((AHORA()-F_Nacimiento)/365) Clculo de la edad y asignacin de este valor a la variable Edad. =SELECCIONAR("l(1)c(-1)") Seleccin de una celda una fila mas abajo y una columna a la izquierda. =FORMULA("El da del nacimiento fue:") Coloca en la celda el texto "El da de nacimiento fue:" =SELECCIONAR("l(0)c(1)") Avanza una columna a la derecha. =SI(DIASEM(F_Nacimiento;2)=1;FORMULA("LUNES")) =SI(DIASEM(F_Nacimiento;2)=2;FORMULA("MARTES")) =SI(DIASEM(F_Nacimiento;2)=3;FORMULA("MIRCOLES")) =SI(DIASEM(F_Nacimiento;2)=4;FORMULA("JUEVES")) =SI(DIASEM(F_Nacimiento;2)=5;FORMULA("VIERNES")) =SI(DIASEM(F_Nacimiento;2)=6;FORMULA("SBADO")) =SI(DIASEM(F_Nacimiento;2)=7;FORMULA("DOMINGO")) Controla el nmero de da de la semana y coloca el nombre correspondiente. =SELECCIONAR("L(1)C(-1)") Avanza una fila y retrocede una columna =FORMULA("La edad es:") Colocacin en la celda activa del texto "La edad es:" =SELECCIONAR("lc(1)") Seleccin de una celda una columna a la derecha. =FORMULA(Edad) Colocacin del valor de la variable Edad. =SELECCIONAR(DESREF(CELDA.ACTIVA();-2;-1;3;2)) Selecciona el rango donde se han introducido datos. =ANCHO.COLUMNA(;;;3) Realiza un ajuste automtico de ancho de columna. =SELECCIONAR("l1c1") Selecciona la celda A1. =VOLVER() Fin de la ejecucin de la macro.

Manual de Microsoft Excel Macros

Pg. 33

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

Las filas 25 y 26 son nuevas. La fila 25 contiene instrucciones acerca de la insercin de un nuevo texto. Se han aadido las filas desde el nmero 29 al 36. En ellas se contemplan los posibles distintos valores de la funcin =DIASEM(). Se ha modificado el contenido de la fila 45 ya que el rango que se ha de seleccionar ahora tiene dos columnas y tres filas.

=SI() / FIN.SI()
Estas dos funciones se utilizan cuando, si se cumple una condicin, han de ejecutarse varias instrucciones seguidas. La funcin =SI() solo permite expresar una instruccin si se cumple la condicin especificada. En este caso, las instrucciones que se deben ejecutar si se cumple la condicin expresada, se colocan en filas sucesivas detrs de la fila que contiene la funcin =SI(). La funcin =FIN.SI() indica a Excel dnde termina este conjunto de instrucciones.

ESTRUCTURAS REPETITIVAS.
Durante la ejecucin de un programa, es posible que sea necesaria la repeticin de una serie de instrucciones de dicho programa mientras se cumpla determinada condicin. Un ejemplo de esta afirmacin puede mejorar el funcionamiento de la macro del tema anterior. Supngase que se necesitan introducir muchas fechas. Con la macro tal y como est diseada, para introducir cada una de estas fechas habra que ejecutar la macro, es decir, habra que ir al sistema de mens o a la barra de herramientas y pulsar el botn correspondiente. Una posible solucin sera que al final de la ejecucin normal de la macro, sta se detuviera y preguntara al usuario si desea introducir otra fecha. En caso de que el usuario responda S, la macro repetir todas sus instrucciones. En caso de que el usuario responda No, la macro terminar su ejecucin y devolver el control a Excel v. 5.0.

=MIENTRAS() / =SALIR.BUCLE()
La funcin tpica de creacin de estructuras repetitivas es =MIENTRAS(condicin). Esta funcin debe ir acompaada de =SALIR.BUCLE(). =MIENTRAS(condicin) comienza la ejecucin del bucle. Todas las instrucciones desde sta se repetirn mientras se cumpla condicin. =SALIR.BUCLE() indica a Excel dnde terminan las instrucciones que deben ser repetidas durante la ejecucin de la macro. La siguiente macro est diseada para pedir al usuario que introduzca un nombre y un primer apellido. Su funcionamiento es el siguiente: Al activarse, pide al usuario que introduzca un nombre. Una vez introducido este nombre, al ACEPTAR, la celda activa se desplaza una celda a la derecha y la macro pide el primer apellido. El funcionamiento de la tecla CANCELAR de cada uno de de los cuadros de dilogo generados por la funcin =Introducir(), est controlado por la funcin =Si(), que aparece exactamente detrs de dicha funcin.

Manual de Microsoft Excel Macros

Pg. 34

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

La celda que incluye la funcin =Introducir que pide el Nombre, est nombrada como Nombre. La celda que incluye la funcin =Introducir que pide el Primer Apellido, est nombrada como Primer_Apellido. La macro no pide la celda de comienzo: El usuario se sita en cualquier celda y los datos introducidos se irn situando en la hoja a partir de esta celda. El cdigo de esta macro es el siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Introduccin_de_datos (i) Nombre de la macro y tecla de activacin. =INTRODUCIR("Introduzca el Nombre";2;"Introduccin de Datos";;100;100;) Peticin del Nombre. =SI(Nombre=FALSO;VOLVER()) Regulacin de la tecla CANCELAR. =FORMULA(Nombre) Colocacin del Nombre en la celda activa. =SELECCIONAR("lc(1)") Avance de una columna de la celda activa. =INTRODUCIR("Introduzca el Primer Apellido";2;"Introduccin de Datos";;100;100;) Peticin del primer apellido. =SI(Primer_Apellido=FALSO;VOLVER()) Regulacin de la tecla CANCELAR. =FORMULA(Primer_Apellido) Inserta el Primer Apellido en la celda activa. =VOLVER()

Con este cdigo, la macro pide una vez el nombre y una vez el primer apellido. Si el usuario necesitase incluir muchos nombres en la hoja de clculo desde la que se ejecuta esta macro, necesitara que esta peticin de nombre y apellido se repitiera indefinidamente. Para realizar esta operacin, nada mejor que un bucle. La idea es que cada vez que el usuario introduzca el primer apellido, la macro haga que la celda activa retroceda una columna, avance una fila y vuelva a pedir el nombre, avance una columna, pida el apellido y as sucesivamente. Cuando el usuario no desee aadir mas nombres y apellidos, ser suficiente que pulse la tecla CANCELAR. El cdigo ser el siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 Introduccin_de_datos (i) Nombre de la macro y tecla de activacin. Valor=0 Asignacin invariable. =MIENTRAS(Valor=0) Comienzo de un bucle infinito. = INTRODUCIR("Introduzca el Nombre";2;"Introduccin de Datos";;100;100;) Peticin del Nombre. = SI(Nombre=FALSO;VOLVER()) Regulacin de la tecla CANCELAR. = FORMULA(Nombre) Colocacin del Nombre en la celda activa. = SELECCIONAR("lc(1)") Avance de una columna de la celda activa. = INTRODUCIR("Introduzca el Primer Apellido";2;"Introduccin de Datos";;100;100;) Peticin del primer apellido. = SI(Primer_Apellido=FALSO;VOLVER()) Regulacin de la tecla CANCELAR. = FORMULA(Primer_Apellido) Colocacin del Primer Apellido en la celda activa. = SELECCIONAR("l(1)c(-1)") La celda activa avanza una fila y retrocede una columna. =SALIR.BUCLE() Fin de las instrucciones que se repiten. =VOLVER() Fin de la Ejecucin de la macro.

Manual de Microsoft Excel Macros

Pg. 35

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

En la fila 3 se inicializa la variable Valor. Esta variable sirve para ser utilizada como condicin el el bucle. Tal y como se ha expresado anteriormente, un bucle es un conjunto de instrucciones que se repiten mientras se cumpla una condicin. En este caso la condicin es que Valor sea igual a 0. Como esta condicin nunca cambia, el bucle se repite indefinidamente hasta que el usuario pulsa CANCELAR. De este modo, se pueden aadir un nmero indeterminado de nombres. Desde la fila 5 (=Mientras()) a la fila 23 (=Salir.Bucle()) est el ncleo del bucle. Estas dos instrucciones marcan el comienzo y el final de las filas que contienen instrucciones que se repiten. Si se observa, todas las filas que constituyen el bucle, estn sangradas. En programacin, esta sangra se utiliza con frecuencia en la escritura de los cdigos para identificar de una forma mas cmoda el principio y el final de cada bucle. Hay que tener en cuenta que el primer carcter de cada fila que contiene una funcin, ha de ser un smbolo =. En caso contrario, Excel identificara esa fila como de comentario y no ejecutara la funcin contenida. Si se desea, al final del cdigo se pueden aadir unas instrucciones que hagan un ajuste automtico de anchura de columna, o den un cierto formato a las celdas.

=INTERRUMPIR()
Si se observa, en las filas 9 y 17, si el usuario pulsa CANCELAR, se ejecuta la instruccin =VOLVER() y se termina la ejecucin de la macro. Si detrs de la instruccin =SALIR.BUCLE(), se hubiese aadido alguna instruccin, sta no se ejecutara al salir de la macro. Si, cuando se pulsa CANCELAR, no se desea salir de la macro, sino solamente salir del bucle y por consiguiente, ejecutar las instrucciones existentes entre la funcin =SALIR.BUCLE() y el final de dicha macro, la mejor opcin es utilizar la funcin =INTERRUMPIR() en los condicionales, en lugar de utilizar la funcin =VOLVER(). La funcin =INTERRUMPIR() saca la ejecucin de la macro del bucle y asigna el control a la primer instruccin que encuentra detrs de la funcin =SALIR.BUCLE(). En el siguiente listado, aparece el mismo cdigo anterior modificado para que despus de introducir la serie de nombres, se seleccione todo el rango donde se han introducido valores y se haga un ajuste automtico de anchura de columna. Para poder seleccionar este rango, es necesario llevar la cuenta del nmero de filas que se han recorrido. Para llevar esta cuenta, se establecer una variable llamada Cuenta_Filas. Esta variable se incrementar en una unidad cada vez que la celda activa avance una fila. Al final, este nmero de filas se utilizar para seleccionar el rango donde se han introducido datos. Para establecer esta seleccin, se utilizar la funcin =DESREF(). A diferencia de la funcin =SELECCIONAR(), la funcin =DESREF() admite en su argumento valores variables. Se insiste en el hecho de que, utilizando este conjunto de funciones, el nmero de datos que el usuario puede introducir al ejecutar la macro es absolutamente indeterminado. La inclusin de cualquier valor absoluto limitara las posibilidades de utilizacin. Se trata de que una macro sea lo mas abierta posible, es decir, permita la mayor libertad de movimientos posible al usuario. Como en todos los casos anteriores, las filas sombreadas corresponden a comentarios que explican el funcionamiento de la expresin contenida en la fila superior.

Manual de Microsoft Excel Macros

Pg. 36

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

Introduccin_de_datos (i) Nombre de la macro y tecla de activacin. Valor=0 Asignacin invariable. Cuenta_Filas=0 Inicializa el contador de filas. =MIENTRAS(Valor=0) Comienzo de un bucle infinito. = INTRODUCIR("Introduzca el Nombre";2;"Introduccin de Datos";;100;100;) Peticin del Nombre. = SI(Nombre=FALSO) Regulacin de la tecla CANCELAR. = SELECCIONAR("lc(1)") Avance de una columna de la ceda activa. = INTERRUMPIR() Sale del bucle = FIN.SI() Termina el condicional. = FORMULA(Nombre) Colocacin del Nombre en la celda activa. = SELECCIONAR("lc(1)") Avance de una columna de la celda activa. = INTRODUCIR("Introduzca el Primer Apellido";2;"Introduccin de Datos";;100;100;) Peticin del primer apellido. = SI(Primer_Apellido=FALSO;INTERRUMPIR()) Regulacin de la tecla CANCELAR. = FORMULA(Primer_Apellido) Colocacin del Primer Apellido en la celda activa. = SELECCIONAR("l(1)c(-1)") La celda activa avanza una fila y retrocede una columna. Cuenta_Filas=Cuenta_Filas+1 Aade una unidad al contador de filas. =SALIR.BUCLE() Fin de las instrucciones que se repiten. =SELECCIONAR(DESREF(CELDA.ACTIVA();;;-Cuenta_Filas-1;-2)) Selecciona todo el rango donde se han introducido datos. =ANCHO.COLUMNA(;;;3) Hace un ajuste automtico de anchura de columna. =VOLVER() Termina la ejecucin de la macro.

FUNCIONES DE CONTROL
Dentro de este apartado van a ser agrupadas una serie de funciones cuya misin principal es la de verificar el funcionamiento de celdas concretas, o de gestionar el flujo del programa.

=ESBLANCO(referencia)
Devuelve VERDADERO si la celda est en blanco.

=ESTEXTO(valor)
Cevuelve VERDADERO si el valor es una cadena de texto.

Manual de Microsoft Excel Macros

Pg. 37

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

=COLUMNA(referencia)
Devuelve el nmero de columna en la que se encuentra referencia.

=FILA(referencia)
Devuelve el nmero de fila en la que se encuentra referencia.

=VALREF(referencia)
Devuelve el valor de la celda referencia.

=ECO(n)
Si n=1, se activa el eco a pantalla. Si n=0, se desactiva el eco a pantalla.

=IR.A.(referencia)
Lleva directamente la ejeccin de la macro a la celda referencia.

EJECUCIN AUTOMTICA DE MACROS


En Excel v. 5.0 existe la posibilidad de crear macros que se ejecuten automticamente cuando se abre el libro de trabajo que almacena dichas macros. Para que este proceso tenga lugar, es suficiente que aquella celda de la hoja de macros donde comienza el cdigo de la macro que se desea ejecutar, tenga asignado un nombre que comience por Auto_Abrir. En el ejemplo siguiente, la celda de la fila 1 est nombrada como Auto_abrir. Cuando se activa el libro de trabajo, se ejecuta la macro pidiendo la celda donde se desea comenzar la introduccin de nombres. Por otra parte, es posible que una hoja de clculo se ejecute automticamente al entrar en Excel v. 5.0. Cuando se instala Excel v. 5.0, se crea automticamente un directorio llamado INICIAR. Todos los archivos que se almacenen en este directorio se abrirn automticamente cuando se arranque Excel. De esta forma, un libro de trabajo almacenado en el directorio INICIAR, y que contenga una macro que comienza por una celda nombrada Auto_abrir, funcionar automticamente solo con ejecutar Excel v. 5.0. En la pgina siguiente aparece el cdigo completo de una macro que se activa automticamente nada mas arrancar Excel v. 5.0, ya que el libro de trabajo que la contiene est almacenado en el directorio INICIAR.

Manual de Microsoft Excel Macros

Pg. 38

http://www.serem.com

Cliente: LUCENT TECHNOLOGIES

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52

Introduccin_de_datos (i) Nombre de la macro y tecla de activacin. La celda tiene el nombre Auto_abrir. Celda_Inicio=INTRODUCIR("Introduzca la celda inicial";8;"Introduccin continua de datos";;100;100;) Peticin de la celda de comienzo. =SI(Celda_Inicio<>0;VOLVER()) Control del botn CANCELAR. =SELECCIONAR(Celda_Inicio) Selecciona la celda inicial. Valor=0 Asignacin invariable. Cuenta_Filas=0 Inicializa el contador de filas. =MIENTRAS(Valor=0) Comienzo de un bucle infinito. = INTRODUCIR("Introduzca el Nombre";2;"Introduccin de Datos";;100;100;) Peticin del Nombre. = SI(Nombre=FALSO) Regulacin de la tecla CANCELAR. = SELECCIONAR("lc(1)") Avance de una columna de la ceda activa. = INTERRUMPIR() Sale del bucle = FIN.SI() Termina el condicional. = FORMULA(Nombre) Colocacin del Nombre en la celda activa. = SELECCIONAR("lc(1)") Avance de una columna de la celda activa. = INTRODUCIR("Introduzca el Primer Apellido";2;"Introduccin de Datos";;100;100;) Peticin del primer apellido. = SI(Primer_Apellido=FALSO;INTERRUMPIR()) Regulacin de la tecla CANCELAR. = FORMULA(Primer_Apellido) Colocacin del Primer Apellido en la celda activa. = SELECCIONAR("l(1)c(-1)") La celda activa avanza una fila y retrocede una columna. Cuenta_Filas=Cuenta_Filas+1 Aade una unidad al contador de filas. =SALIR.BUCLE() Fin de las instrucciones que se repiten. =ECO(0) Desactiva el eco a pantalla. =SELECCIONAR(DESREF(CELDA.ACTIVA();;;-Cuenta_Filas-1;-2)) Selecciona todo el rango donde se han introducido datos. =ANCHO.COLUMNA(;;;3) Hace un ajuste automtico de anchura de columna. =SELECCIONAR(Celda_Inicio) Deja la primeracelda como celda activa. =ECO(1) Activa el eco a pantalla. =VOLVER() Termina la ejecucin de la macro.

Manual de Microsoft Excel Macros

Pg. 39

http://www.serem.com

S-ar putea să vă placă și