Técnicas de Programación U.D.1.2.- Programas informáticos de uso general: procesadores de texto y bases de datos. Tema 1.2.13.- Macros en Writer Una macro es una secuencia de comandos o combinación de teclas que se almacenan para un uso posterior. Un ejemplo simple de macro simple es aquella que escribe nuestra dirección. Las macros soportan comandos que permiten una gran variedad de funciones avanzadas, tales como tomar decisiones (por ejemplo, si el saldo es menor de cero, se colorea en rojo y en caso contrario en negro), operando (si el valor es mayor de cero, restarle 10), e interactuando con una persona (se pide al usuario un número). Muchos de estos comandos se basan en el lenguaje de programación BASIC (acrónimo de Beginner’s All-purpose Symbolic Instruction Code). Las macros son especialmente útiles cuando tenemos que hacer una misma tarea repetidamente, por ejemplo cuando queremos presionar una sola tecla para hacer algo normalmente requiere la pulsación de varias. El lenguaje de programación BASIC funciona ejecutándose línea a línea, aunque generalmente necesitaremos más de una línea para conseguir nuestro propósito, de forma que escribiremos las denominadas rutinas -también conocidas como procedimientos- que en su conjunto realizan una tarea particular. Por ejemplo, podemos escribir una rutina que sustituya el encabezado de un archivo e inserta el nuestro particular. En OpenOffice.org, las rutinas se almacenan en un módulo relacionadas de forma lógica y a su vez los módulos se almacenan en una biblioteca. Tema 1.2.13.- Macros en Writer 1 Crear y almacenar una macro Cada documento de OpenOffice.org es capaz de contener macros y diálogos. La forma más tradicional de introducirnos a un lenguaje de programación es escribiendo un programa que haga que se muestre el mensaje “Hola mundo”. Para no romper esta tradición nuestra primera macro será para escribir este mensaje. 1. Crear una librería Todos los documentos de OpenOffice.org, sin importar el tipo pueden contener macros. Para agregar una macro a cualquier documento debemos tenerlo abierto en modo edición. Cuando se crea un documento, OpenOffice.org crea una librería vacía con el nombre Standard. Podemos usar la ventana de diálogo macro para organizar las librerías y los módulos que contienen seleccionando Herramientas/Macros/Organizar macros/OpenOffice.org básic..., que despliega la siguiente ventana: Nombre de la macro Muestra el nombre de la macro seleccionada. Para crear o cambiar el nombre de una macro, escribimos un nombre aquí. Macro desde Listado de librerías y módulos que permiten abrir y guardar macros. Ejecutar/Guardar Ejecuta o guarda la macro actual. Tema 1.2.13.- Macros en Writer 2 Crear y almacenar una macro 1. Crear una librería Asignar: Abre el diálogo Personalizar, en el cual la macro seleccionada se asigna a un comando de menú, una combinación de teclas o una acción. Editar: Inicia el editor de OpenOffice.org Basic y abre la macro o el diálogo seleccionados para editarlos. Nuevo/Eliminar: Crea un módulo o una macro, o borra la macro seleccionada. Para crear una macro nueva, seleccionamos el módulo "Standard" en la lista Macro desde y después pulsamos en Nuevo. Si deseamos crear un módulo nuevo, lo seleccionamos en la lista Macro desde y pulsamos en Nuevo. Para borrar una macro, la seleccionamos y después pulse en Eliminar. Administrar: Abre la ventana de diálogo Organizador de macros, que vemos en la diapositiva siguiente y que permite agregar, editar o borrar módulos de macro, diálogos y bibliotecas. Tema 1.2.13.- Macros en Writer 3 Crear y almacenar una macro 1. Crear una librería Pestaña Módulo: Permite administrar módulos. Módulo: Enumera las macros de la aplicación actual y de cualquier documento abierto. Editar: Abre la macro seleccionada para editarla. Cerrar: Cierra el diálogo y guarda todos los cambios. Nuevo: Abre el editor y crea un módulo. Eliminar: Borra el elemento o elementos seleccionados tras la confirmación. Diálogos es similar a Módulos Bibliotecas: Permite administrar las bibliotecas de macros para la aplicación actual y cualquier documento abierto. Ubicación: Para seleccionar la aplicación o el documento que contienen las bibliotecas de macros a organizar. Biblioteca: Enumera las bibliotecas de macros de la aplicación actual y cualquier documento abierto. Editar: Abre el editor de OpenOffice.org Basic para modificar la biblioteca seleccionada. Cerrar: Cierra el diálogo y guarda todos los cambios. Contraseña: Asigna o edita la contraseña de la biblioteca seleccionada. Nuevo: Crea una biblioteca. Añadir: para agregar a la lista. Eliminar: Borra el elemento o elementos Tema 1.2.13.- Macros en Writer seleccionados tras la confirmación. 4 Crear y almacenar una macro 1. Crear una librería Creamos nuestra librería entrando en Administrar (para poner visible el Organizador de macros básicas) y seleccionando la pestaña Bibliotecas, después clicamos en Nuevo y, en la nueva ventana, tecleamos el nombre y pulsamos en Aceptar. 1 4 2 3 Tema 1.2.13.- Macros en Writer 5 Crear y almacenar una macro 1. Crear una librería En las imágenes vemos el efecto de creación de la librería denominada MiLibreria Tema 1.2.13.- Macros en Writer 6 Crear y almacenar una macro 2. Crear un módulo Las macros se almacenan en un módulo, así que el paso siguiente es crearlo en la biblioteca creada anteriormente. Con el organizador de macros abierto, seleccionamos la lengüeta de módulos donde vemos la entrada MiLibreria que seleccionamos y clicamos el botón nuevo. El nombre del defecto es Module1 pero vamos a elegir un nombre más descriptivo para nuestro caso que será MiPrimerModulo. Tema 1.2.13.- Macros en Writer 7 Crear y almacenar una macro 3. Crear nuestra primera macro Con la ventana de diálogo Macros básicas abierta y situados sobre el módulo creado pulsamos el botón Editar y accederemos al IDE de BASIC, que describiremos seguidamente. Tema 1.2.13.- Macros en Writer 8 Crear y almacenar una macro 3. Crear nuestra primera macro El Editor Basic admite las funciones del menú Edición (Cortar, Borrar, Pegar), la posibilidad de seleccionar texto con la tecla Mayúsculas, así como las funciones de posición del cursor (por ejemplo, moverse de palabra en palabra con Control y las teclas de flecha). Las líneas largas se pueden dividir en varias partes insertando un carácter de subrayado (_) como último de una línea. Si se pulsa en el icono Ejecutar de la barra de objetos, la ejecución del programa da comienzo al principio de la primera línea del editor Basic. "Sub Main" no tiene precedencia en la ejecución de un programa. Tema 1.2.13.- Macros en Writer 9 Crear y almacenar una macro 3. Crear nuestra primera macro Lista de bibliotecas: para seleccionar una librería o biblioteca de la lista. Se mostrará el primer módulo de la biblioteca seleccionada. Catálogo de objetos: Pulsando en el icono se muestra la ventana de objetos. Esta ventana de diálogo muestra una lista de todos los objetos existentes en una representación jerárquica. Pulsando dos veces en una entrada de la lista se abrirán sus objetos subordinados. Para que se muestre un módulo concreto en el Editor seleccionamos la entrada correspondiente y pulsamos en el icono Mostrar Tema 1.2.13.- Macros en Writer 10 Crear y almacenar una macro 3. Crear nuestra primera macro Barra de herramientas de macros Ejecutar: Ejecuta la primera macro del módulo actual. Compilar: Compila la macro Basic. Después de efectuar cambios en una macro o si ésta utiliza pasos únicos o de procedimiento, es necesario compilarla. Paso a paso : Ejecuta la macro y la detiene tras el procedimiento siguiente. Paso único : Ejecuta la macro y la detiene tras el comando siguiente. Salto atrás : Retrocede a la rutina anterior de la macro actual. Detener: Detiene la macro que está ejecutándose en ese momento. Tema 1.2.13.- Macros en Writer Punto de ruptura: Inserta un punto de ruptura en la línea de programa que este posicionado el cursor. También se puede usar el icono Observador para comprobar el contenido de las variables pertinentes. 11 Crear y almacenar una macro 3. Crear nuestra primera macro Barra de Habilitar inspección: Para ver las variables de una herramientas macro. El contenido de la variable se muestra en una ventana aparte. Para anular la inspección de variables, de macros seleccionamos la variable en la ventana de inspección y clicamos en el icono Habilitar inspección. Administrar puntos de interrupción: Abre un diálogo para administrar los puntos de interrupción. Buscar paréntesis: Resalta el texto incluido entre dos paréntesis situando el cursor delante de un paréntesis de apertura o cierre y pulsando este icono. Tema 1.2.13.- Macros en Writer Insertar campos de control Insertar texto fuente: Abre el texto fuente Basic en la ventana Basic IDE. Guardar el texto fuente como: Guarda el código fuente de la macro Basic seleccionada. 12 Crear y almacenar una macro 3. Crear nuestra primera macro Ventana Observador: En la ventana de inspección se puede ver el valor de las variables durante la ejecución de un programa. Definimos la variable en el cuadro de texto de inspección. Clicamos en Habilitar inspección para agregar la variable al cuadro de lista y ver los valores. Observador: Escribimos la variable cuyo valor se visualizará en el cuadro de lista. Eliminar observador: Elimina la variable seleccionada de la lista de variables observadas. Edición del valor de una variable observada: Muestra la lista de las variables observadas. Pulsando dos veces haciendo una pequeña pausa sobre una entrada para editar su valor. El valor nuevo se tomará como el de la variable para el programa. Ventana llamadas: La Pila de llamada permite supervisar la secuencia de procedimientos y funciones durante la ejecución de un programa. Los procedimientos y funciones se muestran de abajo a arriba con la llamada a la función o procedimiento más reciente en la parte superior de la lista. Tema 1.2.13.- Macros en Writer 13 Crear y almacenar una macro 3. Crear nuestra primera macro Gestión de los puntos de ruptura: Especifica las opciones de los puntos de ruptura. Puntos de ruptura: Escribimos el número de línea de un nuevo punto de ruptura y pulsamos Nuevo. Activo: Activa o desactiva el punto de ruptura actual. Adaptación: Especifica el número de bucles a efectuar antes de que se active el punto de ruptura. Nuevo: Crea un punto de ruptura en el número de línea especificado. Eliminar: Borra el punto de ruptura seleccionado. Acción Teclas Ejecutar el código desde la primera línea o desde F5 el punto de ruptura actual. Stop Mayús + F5 Añadir un observador para la variable del cursor F7 en la primera línea o en la instrucción donde anteriormente se detuvo la ejecución del F8 programa. Un único paso al igual que con F8, pero se considera que una llamada a una función es Mayús+F8 únicamente una instrucción Establecer o borrar un punto de ruptura en la línea actual o en todos los puntos de ruptura en la F9 selección actual Activar o desactivar el punto de ruptura en la línea actual o en todos los puntos de ruptura en la Mayús+F9 selección actual Una macro en ejecución se puede cancelar con Mayús+Control+Q, también desde el exterior de Basic IDE. Tema 1.2.13.- Macros en Writer Teclas rápidas en el Basic IDE 14 Crear y almacenar una macro 3. Crear nuestra primera macro Vamos a teclear nuestra primera macro tal y como vemos seguidamente: Sub EjemploMsgBox Dim sVariable As Integer sVariable = MsgBox("Hola Mundo",0) sVariable = MsgBox("Hola Mundo de nuevo",3+128) sVariable = MsgBox( "Otra vez: Hola Mundo",256 + 3 + 48,"Saludo") end sub Tema 1.2.13.- Macros en Writer En la ayuda de Openoffice.org podemos encontrar explicaciones sobre las funciones empleadas, que no vamos a tratar aquí por estar escritas en BASIC y nuestro objetivo es programación en C. 15 Crear y almacenar una macro Vamos a crear otra macro sencilla Tecleamos lo siguiente: Si pulsamos en ejecutar se genera el siguiente error: Tema 1.2.13.- Macros en Writer 16 Ejecutar una macro Para ejecutar una macro podemos seguir uno de los métodos siguientes: Teclear la macro y pulsar el icono Run como ya hemos visto 1.- Acceder a la entrada Ejecutar macro... del menú Herramientas/Macros 2.- Desde el cuadro de dialogo de organizar macros 3.- Añadir un botón a nuestro documento OpenOffice.org que podemos denominar Hola Mundo. Esta opción la podemos ver en el Tema 1.2.14 de esta unidad didáctica. 4.- Asignar la macro a una combinación de teclas. 5.- Añadir un nuevo menú con la entrada Hola Mundo 6.- Añadir un botón a la barra de botones que podemos llamar HolaMundo. 1.- Acceder a la entrada Ejecutar macro... del menú Herramientas/Macros Tema 1.2.13.- Macros en Writer 17 Ejecutar una macro 2.- Desde el cuadro de dialogo de organizar macros Tema 1.2.13.- Macros en Writer 18 Ejecutar una macro 4.- Asignar la macro a una combinación de teclas. O bien acceder a la opción Personalizar del menú herramientas En ambos casos se abre el diálogo de configuración donde seleccionamos la pestaña Teclado. Tema 1.2.13.- Macros en Writer 19 Ejecutar una macro 4.- Asignar la macro a una combinación de teclas. Tema 1.2.13.- Macros en Writer OpenOffice.org: Muestra las teclas de acceso directo comunes para todas las aplicaciones de OpenOffice.org. Writer: Muestra las teclas de acceso directo de la aplicación actual. Combinación de teclas: Enumera las teclas de acceso directo y los comandos asociados. Para asignar o modificar las teclas de acceso directo asociadas con el comando seleccionado en la lista Función, elegimos una combinación de la lista y hacemos clic en Modificar. Funciones: Enumera las categorías de funciones y las funciones de OpenOffice.org a las que se puede asignar una combinación de teclas. Área: Enumera las categorías de funciones disponibles. Las macros están al final de la lista Función: Seleccionamos una función a la que deseamos asignar la combinación de teclas en la lista Combinaciones de teclas y pulsamos Modificar. Si la función seleccionada ya tiene asignadas teclas de acceso directo, se muestran en la lista Teclas. Teclas: Muestra las teclas de acceso directo asignadas a la función seleccionada. 20 Ejecutar una macro 4.- Asignar la macro a una combinación de teclas. Después de clicar en Modificar tendremos la siguiente situación. Para volver al documento donde podemos activar la macro mediante la combinación de teclas Mayúsculas+F3 Tema 1.2.13.- Macros en Writer 21 Ejecutar una macro 5.- Añadir un nuevo menú con la entrada Hola Mundo. Accedemos de la forma vista al diálogo de configuración donde seleccionamos la pestaña Teclado. Vamos a ver el proceso de creación de un nuevo menú, aunque podemos realizar otras tareas como agregar una nueva entrada a un menú o submenú ya existente. Pulsando el botón ayuda accedemos a todas las explicaciones necesarias para trabajar en esta pestaña. Tema 1.2.13.- Macros en Writer 22 Ejecutar una macro 5.- Añadir un nuevo menú con la entrada Hola Mundo. Pulsamos Agregar en la ventana Personalizar y localizamos nuestra macro La tilde ~ (Alt+126) se sitúa delante de la tecla que queremos utilizar para acceso rápido (Alt + tecla) Tema 1.2.13.- Macros en Writer 23 Ejecutar una macro 5.- Añadir un nuevo menú con la entrada Hola Mundo. Tema 1.2.13.- Macros en Writer 24 Ejecutar una macro 5.- Añadir un nuevo menú con la entrada Hola Mundo. Tema 1.2.13.- Macros en Writer 25 Ejecutar una macro 6.- Añadir un botón a la barra de botones que podemos llamar HolaMundo. Accedemos de la forma vista al diálogo de configuración donde seleccionamos la pestaña Barras de Herramientas. Vamos a ver el proceso de creación de una barra de herramientas nueva, aunque podemos realizar otras tareas como agregar una nueva entrada a una ya existente. Pulsando el botón ayuda accedemos a todas las explicaciones necesarias para trabajar en esta pestaña. En la siguiente página Tema 1.2.13.- Macros en Writer 26 Ejecutar una macro 6.- Añadir un botón a la barra de botones que podemos llamar HolaMundo. Pulsamos Agregar en la ventana Personalizar y localizamos nuestra macro Tema 1.2.13.- Macros en Writer 27 Ejecutar una macro 6.- Añadir un botón a la barra de botones que podemos llamar HolaMundo. Situación después de agregar las tres macros de que disponemos Tema 1.2.13.- Macros en Writer 28 Ejecutar una macro 6.- Añadir un botón a la barra de botones que podemos llamar HolaMundo. Aspecto de la nueva barra de herramientas en modo flotante. Tema 1.2.13.- Macros en Writer 29 n ó i ac t n se re p a l e d Fin Tema 1.2.13.- Macros en Writer 30