Difference between revisions of "ES/Manuales/GuiaAOO/TemasAvanzados/Macros/StarBasic/MiPrimeraMacro"
m |
Marcoagpinto (Talk | contribs) |
||
Line 259: | Line 259: | ||
' comentario | ' comentario | ||
Dim intNum As Integer | Dim intNum As Integer | ||
− | intNum | + | intNum = 10 + 10 |
MsgBox "Prueba" ' comentario | MsgBox "Prueba" ' comentario | ||
End Sub | End Sub |
Revision as of 06:37, 23 August 2013
Contents
- 1 Mi primera macro
- 2 Editar una macro
- 3 Ejecutar una macro
- 4 Insertar comentarios en una macro
- 5 Declarar la macro, procedimiento o subrutina
- 6 Reglas del nombre de una subrutina
- 7 Declarar el final de la macro, procedimiento o subrutina
- 8 Sentencias
- 9 Colores utilizados en el IDE para el código
- 10 Uso de mayúsculas o minúsculas en el código
- 11 Mejorar el aspecto del código escrito
Mi primera macro
Abre el documento que creamos en el capítulo anterior llamado Ejemplos de macros.ods.
De forma predeterminada, cuando se abre un documento de Apache OpenOffice que contiene macros, y en función del nivel de seguridad establecido en las opciones de la suite, se puede mostrar el siguiente aviso de seguridad:
Para poder trabajar con macros hay que configurar el nivel de seguridad para que se habilite el uso de macros; más adelante veremos cómo evitar este mensaje al abrir documentos que sabemos son seguros.
Puede que no se muestre este mensaje y se abra el documento directamente con las macros deshabilitadas; si es tu caso, es muy aconsejable cambiar el nivel de seguridad como se muestra en Seguridad en macros.
Editar una macro
Activa la opción Herramientas | Macros | Organizar macros | OpenOffice.org Basic... y navega hasta tu documento, tu biblioteca y tu modulo.
Selecciona la macro que lleva por nombre Mi_Primer_Macro y haz clic sobre el botón Editar. Éste será el procedimiento para editar cualquier macro, por lo que, de aquí en adelante, se dará por hecho que ya lo dominas.
Con la acción anterior, se mostrará el Entorno de desarrollo (de aquí en adelante IDE) que nos permitirá escribir código, es decir, crear el programa que haga lo que queramos, cuando queramos y como queramos.
Empezaremos con un clásico de la programación, el “Hola Mundo”. Crearemos el código necesario para que se presente una ventana con un mensaje y un botón.
Para lograrlo, agregamos la siguiente linea a la macro. Asegúrate de escribirla o copiarla tal como se muestra aquí escrita. Ten en cuenta que en programación, cada espacio, cada punto, cada coma, es muy importante:
MsgBox "¡¡Hola Mundo!!"
De modo que en el IDE se muestra de la siguiente manera:
Ejecutar una macro
Para ejecutar la macro, es decir, que realice su trabajo, haz clic sobre el botón Ejecutar programa Basic , o bien, pulsa la tecla F5 .
Se presentará el cuadro de mensaje que mostramos lineas arriba.
Ya hemos visto el cómo. Para entender el por qué, analicemos la linea que acabamos de agregarle a nuestra macro:
MsgBox "¡¡Hola Mundo!!"
La primer palabra (MsgBox), es una instrucción de OOo Basic, es decir, una palabra especial, que el lenguaje reconoce de modo diferente y que realiza, hace, ejecuta una tarea especifica.
Esta palabra clave o reservada muestra un mensaje en un cuadro de dialogo.
¿Qué mensaje? El mensaje que muestra es el que indicamos justo tras la palabra clave.
Éste mensaje es lo que en programación se denomina “una cadena" de texto. Las cadenas de texto se escriben en el código encerradas entre comillas dobles y separadas de la instrucción por un espacio.
¿Sucederá lo mismo con números? ¿y con fechas o algún otro valor?
Modifica el código y prueba con las siguientes opciones:
MsgBox 12345 MsgBox 15/01/2012 MsgBox "15/01/2012" MsgBox 1dfgdfh245
Insertar comentarios en una macro
Observa la primera línea que se presenta al principio del módulo que hemos creado:
REM ***** BASIC *****
La primer palabra también es una palabra clave de OOo Basic que le dice al programa (nuestra macro), que todo lo escrito después de esta palabra es un comentario, y será ignorado por el intérprete de comandos.
Comentar las lineas de código es una practica sumamente útil, sobre todo, cuando las macros van creciendo en tamaño y complejidad.
Es muy recomendable, casi una regla, comentar las lineas de código. Un código bien escrito y profesional debe estar comentado.
Así que agregaremos un comentario a nuestra macro:
REM Muestra un mensaje en un cuadro de dialogo MsgBox "¡¡Hola Mundo!!"
Los comentarios, también puedes establecerlos con una una comilla simple ' (cuidado, no confundir con el acento. En el teclado español, se encuentra en la tecla con el signo ?)
' Muestra un mensaje en un cuadro de dialogo MsgBox "¡¡Hola Mundo!!"
Los comentarios pueden insertarse al final de la linea de código:
MsgBox "¡¡Hola Mundo!!" REM Muestra un mensaje...dialogo MsgBox "¡¡Hola Mundo!!" ' Muestra un mensaje... de dialogo
Es muy importante comentar el código; tu memoria te lo agradecerá, así como todos los programadores con los que compartas tu código, si decides que sea software libre, como te recomiendo que sea.
Declarar la macro, procedimiento o subrutina
Observa la línea donde se inicia la macro:
Sub Mi_Primer_Macro()
La primer palabra es otra palabra clave de OOo Basic, la cual nos sirve para declarar el nombre de una subrutina, como también se denomina a las macros.
En lenguaje de programación, decir macro, procedimiento o subrutina es equivalente.
Aunque no es obligatorio, es aconsejable agregar un juego de paréntesis () tras el nombre de la subrutina.
Reglas del nombre de una subrutina
Para identificar la macro es obligatorio asignarle un nombre; en nuestro caso fue Mi_Primer_Macro.
Las subrutinas (macros) deben seguir unas reglas de forma obligatoria a la hora de declarar su nombre.
Si estas reglas se incumplen, se producirá un error de ejecución, y el IDE mostrará un mensaje advirtiendo de tal hecho.
Las reglas son las siguientes:
- El nombre NO puede incluir espacios; en caso contrario, se mostrará el siguiente mensaje de error:
- El nombre NO puede empezar con un número; en caso contrario, se mostrará el siguiente mensaje de error:
- El nombre debe de ser único. NO pueden existir dos o más subrutinas con el mismo nombre dentro del modulo en que se declara. En caso contrario se mostrará el siguiente mensaje de error:
Observa que en los dos últimos casos el mensaje de error identifica un Error de sintaxis de BASIC.
La sintaxis en programación se puede definir como el Conjunto de reglas que definen las secuencias correctas de los elementos de un lenguaje de programación.
En este caso, el IDE nos informa de que hemos escrito código que incumple la sintaxis del lenguaje de programación.
Declarar el final de la macro, procedimiento o subrutina
Analicemos la ultima y muy sencilla linea de nuestra macro:
End Sub
Está formada por dos palabras claves del lenguaje. Indican el final de nuestro procedimiento, subrutina o macro.
Sentencias
Cada línea de código es reconocido por el lenguaje como una sentencia.
Veamos esta macro con dos sentencias:
Sub VariasSentencias() MsgBox "Esta es una sentencia" MsgBox "Esta es otra sentencia" End Sub
OOo Basic admite varias sentencias en una sola línea, separadas por dos puntos, como vemos en el siguiente ejemplo:
Sub VariasSentencias() MsgBox "Esta es una sentencia" : MsgBox "Esta es otra sentencia" End Sub
En sentencias largas, puedes usar el carácter de continuación de línea, (guión bajo _ ), como se muestra en el siguiente ejemplo:
Sub LineasLargas() MsgBox "Esta es una linea larga de código, se puede dividir " & _ "usando el guión bajo, como en este ejemplo", 0 ,"Ejemplo " & _ "de linea larga" End Sub
Aunque la sentencia se escribe utilizando varias líneas, sigue siendo una única sentencia
Colores utilizados en el IDE para el código
El IDE nos muestra las palabras y números que conforman el código utilizando diferentes colores. El uso distintivo de colores en el código es muy útil cuando se esta programando.
El IDE utiliza los siguientes colores en el código:
- Azul para las palabras claves
- Gris para los comentarios
- Rojo para los números
- Rojo para las cadenas de texto
- Verde para todo lo demás
Aquí un ejemplo de como se mostraría el código con esta combinación de colores [1]:
Option Explicit Rem Pruebas de comentario Sub Pruebas(ByVal Pal As String) ' comentario Dim intNum As Integer intNum = 10 + 10 MsgBox "Prueba" ' comentario End Sub
Puedes personalizar la configuración de colores utilizados en el código desde la opción Herramientas | Opciones... | OpenOffice.org | Apariencia.
Uso de mayúsculas o minúsculas en el código
Para OOo Basic es indistinto el uso de MAYUSCULAS o minúsculas, o cualquier combinación de ambas al escribir las palabras reservadas del lenguaje, así como los nombres definidos en las declaraciones de subrutinas, funciones, constantes o variables.
Nuestra macro, funcionará exactamente igual si estos elementos se escriben en:
- Minúsculas
sub mi_primer_macro() msgbox "¡¡Hola Mundo!!" end sub
- Mayúsculas
SUB MI_PRIMER_MACRO() MSGBOX "¡¡Hola Mundo!!" END SUB
- O cualquier combinación de ambas. Es la forma mas común y la que se utilizará a lo largo de éstas páginas.
Sub Mi_Primer_Macro() MsgBox "¡¡Hola Mundo!!" End Sub
A diferencia de otros entornos IDE de programación, el IDE de OOo Basic no realiza una corrección automática de las palabras sustituyendo los nombres de las subrutinas, funciones, constantes y variables escritas en el código a la forma en que se escribieron en su declaración.
Mejorar el aspecto del código escrito
La extensión Basic IDE Tools permite, entre otras cosas, mejorar el aspecto del código escrito, identificando el formato en que se han declarado las subrutinas, funciones, constantes y variables, y reemplaza automáticamente en el código por el formato utilizado en su declaración. También puede realizar una indentación automática del código.
Por ejemplo:
sub Documento_Cierra( oDoc, optional bSoloSinCambios as boolean ) ' Cierra un documento If ismissing( bSolosincambios ) then BSOLOSINCAMBIOS = false if bsoloSinCambios Then IF ODOC.ISMODIFIED() THEN EXIT SUB end if odoc.dispose() end sub
Puede ser automáticamente formateada así:
Sub Documento_Cierra( oDoc, Optional bSoloSinCambios As Boolean ) ' Cierra un documento If IsMissing( bSoloSinCambios ) Then bSoloSinCambios = False If bSoloSinCambios Then If oDoc.isModified() Then Exit Sub End If oDoc.dispose() End Sub
- ↑ Los colores mostrados en esta wiki no tienen por qué coincidir con los colores mostrados en el IDE de Apache OpenOffice, dado que se utilizan sistemas diferentes para colorear las palabras clave, comentarios, etc.
Si tienes dudas acerca de lo aquí explicado, tienes algún problema con AOO, o quieres ampliar la información, no dudes en dirigirte al Foro Oficial en español de Apache OpenOffice para Macros y API UNO |