Cierra la ventana Propiedades: Botón (clic en la X de su extremo superior derecho) Haz clic en el icono “Modo Diseño”: para salir del modo diseño y volver al modo “ejecución”. Según la versión de OpenOffice, la imagen del botón puede ser diferente.
Vamos a probar el botón:
– Clic en [Prog02] – Si todo funciona correctamente en B2 de Hoja2, tendremos “Hola Mundo”
Borra el texto anterior y vuelvelo a probar. Por último graba la hoja Macro01.ods con el mismo nombre y ciérrala
3.- Cuadros de diálogo estándard
En los programas anteriores, hemos utilizado celdas de una hoja de cálculo, para escribir resultados. Aparte de los cuadros de diálogo personalizados, que veremos más adelante, podemos utilizar los llamados “Cuadros de diálogo estándar”.
– Crea una hoja de cálculo nueva (Menú Archivo – Nuevo – Hoja de Cálculo) y grábala como Macro02.ods en TuCarpeta
– Accede al Editor del Basic del Macro02.ods • Menú Herramientas Macros Organizar macros OpenOffice.org Basic …
Si seleccionas: Mis macros – Standard – Module 1 verás que aparecen los programas Prog01 y Prog02. Por defecto, al crear un programa, nos colocamos automáticamente en “Mis macros” y al escribir el o los programas en el “Standard” de Mis macros, éstos serán accesibles desde cualquier documento OOo. A partir de ahora “grabaremos” nuestros programas en el documento correspondiente, es decir: • • • Selecciona Standard de Macro02.ods [Nuevo] Acepta el nombre Module1 – Escribe los programas: – Vuelve a la pantalla del Macro02.ods (Hoja1), vamos a crear un botón para ejecutar el Prog03, es decir: • • • • • • •
• Con la barra Campos de control de formulario a la vista.
Clic en el icono “Botón”:
Marca un recuadro que abarque a la celda B2 (un poco más grande) Accede al menú contextual del botón acabado de insertar Haz clic en la opción “Campo de Control…” Establece como propiedad Título: Prog03 (Solapa: General) Pestaña: Acontecimientos En el campo “Botón del ratón pulsado”, asigna el programa Prog03 de Macro02.ods (Standard – Module1) Sal del modo diseño: clic en el icono Modo Diseño: – Prueba el funcionamiento del botón; si todo va bien, tendremos:
– Crea otro botón, pero ahora asociado al Prog04: En este caso tendremos:
Está claro que el cuadro de diálogo MsgBox tiene muchas posibilidades, ya las estudiaremos más adelante en detalle. Ahora nos interesa un cuadro de diálogo que nos permita “entrar” datos …
Sitúate en el Editor del Basic del Macro02.ods y escribe el siguiente programa: – Sitúate en la Hoja1 del Macro02.ods y crea un botón que has de asociar al Prog05:
– Ejecuta el Prog05, es decir, clic en [Prog05]. Si todo funciona correctamente, debería pasar algo así: – Vamos a estudiar el Prog05 (sitúate en el editor del Basic, para visualizarlo): • Dim nom As String, ciudad As String Declaramos dos variables (nom y ciudad) de texto (String) • nom = InputBox(“Escribe tu nombre”) “InputBox” es un cuadro de diálogo estándar, que contiene un mensaje (que es lo que escribimos entre comillas y paréntesis) y un campo en blanco; donde el usuario del programa puede escribir lo que quiera. En el momento de hacer clic en el [Aceptar] del InputBox, lo que hemos escrito en el campo que estaba vacío, se entiende como un texto (ya veremos cuando necesitemos un número) y se guarda en la variable de nombre “nom”. • MsgBox “mensaje1” & “variable1 & “mensaje2” & Chr$(13) & variable2 … Observa en primer lugar, el operador de concanetación (unir), se trata del “ampersand” y lo que hace es unir los diferentes elementos que “opera”; estos elementos pueden ser: . El texto que sea encerrado entre comillas . Variables . Chr$(13): que representa la pulsación de un [Return], o si tú quieres: fuerza a una nueva línea lo que viene a continuación.
Para acabar este apartado, vamos a hacer un programa que mezcle los cuadros de diálogo estándar y los elementos de nuestros documentos “Calc” (celdas en nuestro caso)…
– Sitúate en el “Editor del Basic” y escribe:
– Sitúate en Macro02.ods • Crea un botón asociado a Prog06 • Prueba el funcionamiento del programa • Espero que te funcione correctamente • Graba el libro de cálculo con el mismo nombre Macro02.ods
4.- Tipos de Variable
OpenOffice Basic soporta los tipos numéricos, cadenas, booleanos y objetos variables. Los objetos son usados principalmente para referirse a los elementos internos del OpenOffice como documentos, tablas, etc. Con un objeto podremos usar sus correspondientes propiedades y métodos. Si usamos “Dim”:los tipos numéricos son inicializados en cero y las cadenas como la cadena vacía “”
Los tipos más utilizados (no los únicos): – Tipo Boolean: puede tomar los valores True (verdadero = -1) y o False (falso = 0)
– Tipo String: cadena de texto Si escribimos el carácter $ al final del nombre, automáticamente definimos un “String” Es decir: Dim nom$ es equivalente a Dim nom As String Es equivalente a Dim x As Integer – Tipo Integer: número entero Número de –32.768 a +32.767 Dim x%
– Tipo Long: número largo Número entero entre: -2.147.483.648 y +2.147.483.647 – Tipo Double: número decimal
– Crea un nuevo libro de cálculo, que deberás grabar como Macro03.ods en TuCarpeta
– Accede al Editor del Basic (deberás crear un Module1) del Macro03 y escribe el siguiente procedimiento: – Sitúate en el Macro03.ods y crea un botón de título: Prog07, asociado al procedimiento Prog07.
– Ejecuta el procedimiento “Prog07” de la siguiente forma:
• • • • • Clic en [Prog07] Ante la primera ventana, haz lo que te dice el programa: Escribe lo que quieras y [Aceptar] o pulsa[Return] Número de Columna ?, escribe 5 y [Return] Número de Fila ?, escribe 7 y [Return] Si todo funciona correctamente, en la celda E7 (quinta columna, septima fila), aparece lo que has escrito primeramente. Veamos:
– Sitúate en el Editor del Basic y observa: • Declaramos x e y como “Integer” ya que representarán las coordenadas de una celda • InputBox (“ “) devuelve un texto. • Val(InputBox(“ “)) devuelve un número. Dicho de otra forma: Val es una función que convierte una cadena que representa números, en dichos números (integer).
– Sitúate en el Editor del Basic de Macro03.ods y escribe el siguiente procedimiento: – Sitúate en el Macro03.ods y crea un botón de “Título = Prog08”, asociado al procedimiento “Prog08”
– Ejecuta el procedimiento de la siguiente forma: • Clic en [Prog08] • Escribe como base del rectángulo 3,07 • Escribe como altura del rectángulo 2,15 • Si todo funciona correctamente en la celda B21, tendremos el número 6,6005 (siempre y cuando aumentemos el número de decimales)
Veamos: – Sitúate en el Editor del Basic y observa: • Coordenadas = (1,20) = 2ª columna – 21 fila = B21 • La base y la altura (bas, alt) se declaran Double, ya que pueden ser decimales. • La función CDbl( ), convierte una cadena de caracteres en número “double” • Cel.SetValue(bas*alt) bas*alt es un número. La función que escribe un número en una celda es SetValue. De la misma forma que lo hace SetFormula si es un texto. – Sitúate en el Editor del Basic de Macro03.ods y escribe el siguiente procedimiento: – Sitúate en Macro03.ods y crea un botón de Titulo = Prog09, asociado al procedimiento Prog09
– Ejecuta el procedimiento de la siguiente manera: • Clic en [Prog09] • Escribe como radio de la circunferencia: 3,5812 • Observa que pi = 3,14159265358979
• Si todo va bien en G7 aparece 22,50134322 (deberás aumentar el número de decimales de la celda) Veamos: – Sitúate en el Editor del Basic y observa: • Coordenadas = (6,6) = 7ª columna – 7ª fila = G7 • longi =2*pi*radi Asignamos (el operador de asignación es el “=”) a la variable “longi” el resultado del • • producto 2*pi*radi. pi, es una constante incorporada al lenguaje cuyo valor es 3,14159265358979 Observa que &, concatena sin problema texto y números: “pi = “ & pi – Sitúate en el Editor del Basic de Macro03.ods y escribe el siguiente procedimiento: – Sitúate en Macro03.ods y crea un botón de Título = Prog10, asociado al procedimiento Prog10
– Ejecuta el procedimiento de la siguiente manera: • Clic en el botón [Prog10] • Base del triángulo = 3,75 • Altura del triángulo = 2,17 • Si todo funciona correctamente tendremos:
– Observa el Prog10, el único elemento nuevo es cStr(), función que convierte un número a una cadena de caracteres. En efecto: • SetFormula(cadena): coloca en la celda correspondiente el texto “cadena” • “bas” es Double, por lo tanto SetFormula(“Base = “ & cStr(bas)), es decir, en la celda correspondiente se escribirá el texto “Base = “ y a continuación (operador “&”) el texto “bas” ya que la función cStr, lo convierte en texto.
– Para acabar este apartado: sitúate en el “Module1” y escribe el siguiente procedimiento:
– Escribe en la Hoja1: Siendo en botón [Calcular], el botón de Título= Calcular, asignado al procedimiento Prog11
– Prueba el funcionamiento del procedimiento anterior de la siguiente forma: • Escribe en la celda E3 = 3,4 • Clic en [Calcular] • Si todo funciona correctamente, en la celda E5, aparece 36,316811 (=3,4*3,4*pi) Veamos, es importante porque estamos interactuando con el interface del “Calc” (no estamos utilizando ni el InputBox, ni el MsgBox)…
– Sitúate en el Editor del Basic del Macro.03. para investigar el procedimiento: Prog11 • Cel1, representa la celda E3 ya que Cel1 = Hoj.getCellByPosition(4,2): 5ªcolumna, 3ª fila. • Cel2, representa la celda E5 ya que Cel2=Hoj.getCellByPositiuon(4,4): 5ª columna, 5ª fila • En Cel1 nostros escribimos un dato (numèrico): para que el programa lo recoja hacemos Cel1.getValue,concretamente lo asignamos a la variable radi: radi=Cel1.getValue • Si fuera texto, haríamos: Cel1.getFormula En Cel2 el programa ha de escribir un número, es decir: Cel2.SetValue(). Si fuera texto, escribiríamos: Cel3.SetF0rmula()
Ejercicios
1) Crea un nuevo libro de cálculo de nombre EjerM01.ods que contenga un procedimiento de nombre EjerM01, que se ejecute con un botón y funcione de la siguiente forma: – El programa nos pregunta nuestro nombre – El programa nos pregunta nuestra edad (en años, claro) – El programa escribe en la hoja de cálculo, nuestro nombre y a continuacion los días que tenemos de vida hasta el momento, de la siguiente forma: 2) Crea un nuevo libro de cálculo de nombre EjerM02.ods que contenga un procedimiento de nombre EjerM02, que se ejecute con un botón y haga lo siguiente: – – El programa nos pide un número entero El programa nos muestra el doble, el triple y el cuadruple del número que habíamos introducido de la siguiente forma: 3) Crea un nuevo libro de cálculo de nombre EjerM03.ods, que contenga dos procedimientos de nombre EjerM03 y EjerM03bis que funcionen de la siguiente forma: El botón [Calcular] está asociado al EjerM03 que calcula el determinante y el botón [Otro], que corresponde al EjerM03bis, lo único que hace es asignar la cadena vacía (“”) a las cuatro celdas. Observa que en nuestro programa no hay ningún InputBox ni MsgBox.
5.- La estructura “If – then – End If”
Crea un nuevo libro de cálculo y grábalo con el nombre Macro04.ods en TuCarpeta
Accede al Editor del Basic (deberás crear el Module1 en Macro04.ods) y escribe el siguiente programa: – Sitúate en la hoja de cálculo. Crea un botón asociado al procedimiento Prog12 y pruébalo.
– Espero que te funcione correctamente en las dos versiones: • Contestando a la pregunta con la palabra “Pepe” • Contestando cualquier cosa que no sea “Pepe”
– Estudio del Prog12 • En la función InputBox, hemos escrito dos parámetros: el primero “Estructura IF – THEN – ESLSE”, es el que aparece en el interior del cuadro “inputbox” y el segundo no es más que el título de la ventana “InputBox”: • Si escribimos un solo argumento, éste es el mensaje que aparece en el interior del cuadro, y no aparece ningún título en la ventana. Observa la estructura de programación “IF – THEN – ELSE”. Constituye la estructura de programación más simple: Si se cumple la condición, entonces haz lo siguiente, si no se cumple, haz esto otro. Es decir: Si (If) escribo “Pepe” entonces (then) aparecen dos cuadros, el primer cuadro con el mensaje “Hola Pepe”, el segundo cuadro con el mensaje “No te conozco”. En caso contrario (Else), es decir, si no escribo “Pepe”: aparece el mensaje “Lo siento me he equivocado”.
Básicamente, con la estructura IF – THEN – ELSE, conseguimos una bifurcación del programa: el si entonces o el caso contrario. Veamos, que no únicamente representa una bifurcación, en el siguiente procedimiento (debido a que utilizamos todas las posibilidades de la estructura).
– Sitúate en el Editor del Basic de Macro04 y escribe el siguiente procedimiento:
– Sitúate en la hoja de cálculo (no te olvides de ir grabando los cambios). Crea un botón asociado al procedimiento Prog13 y pruébalo como mínimo tres veces: para un número mayor de 100, para un número menor de 100 y escribiendo precisamente el 100. Espero que te funcione correctamente: Observa en definitiva, la sintaxis completa de la estructura: If condición1 Then Sentencia 1 Sentencia 2 … ElseIf condición2 Then Sentencia 3 Sentencia 4 … ElseIf condición3 Then Sentencia 5 Sentencia 6 … … … Else Sentencia 7 Sentencia 8 … End If Debes tener en cuenta que las líneas de programa: sentencia 7, sentencia 8, … sólo se ejecutarán si no se cumple ninguna de las condiciones que hemos considerado en la estructura. 6.- Contadores. Operadores Lógicos Crea un nuevo libro de cálculo y grábalo con el nombre Macro05.ods en TuCarpeta Accede al Editor del Basic (deberás crear el Module1 en Macro05) y escribe el siguiente procedimiento:
Página anterior | Volver al principio del trabajo | Página siguiente |