Nota: Este Blog me sirve a la vez para ensayar CSS, Javascript(jQuery)y XHTML.

miércoles, 19 de octubre de 2011

Unidad 18. Macros en la nube (Google Docs)

¿Macros en Google Docs?

Por el momento las macros no están ni implementadas por Google y Google Docs, sin un futuro desarrollo de estas.

El foro de ayuda Google Docs lo aclara en el siguiente enlace: 
 
Si desea utilizar algo similar en hojas de cálculo de Google, hay una buena noticia: Google script Aplicaciones ya está disponible para todos los usuarios de Google Docs.  

Eso significa que usted puede escribir scripts para realizar acciones repetitivas, la creación de funciones personalizadas, o incluso la adición de características avanzadas de Google Spreadsheets.



Usted puede tratar de uno de los guiones aparece al abrir una hoja de cálculo, haga clic en el menú "Insertar" y seleccionar "Script". Por desgracia, los scripts de Google muestra que aun no son muy útiles .

Macros en Calc.


Veamos un sencillo ejemplo como muestra: necesitamos una función que calcule la raiz (cuadrada, triple, cuarta...) de un valor. Por supuesto que se puede realizar con una sencilla fórmula (por ejemplo, calcular en la celda B3 la raiz cuarta del valor contenido en la celda A3 es tan sencillo como escribir en B3 la fórmula =A3^(1/4)), pero en este post sólo pretendemos ilustrar cómo crear una función; la complejidad de ésta depende de las necesidades del usuario.

Paso 1: Activar el editor de macros

Abre un nuevo documento Calc, y guárdalo con un nombre, por ejemplo Mi_Función.ods. Activar el editor de macros desde el menú Herramientas > Macros > Organizar macros > OpenOffice.org Basic....
OOo mostrará el diálogo Macros básicas de OpenOffice.org; haz clic sobre el signo + que se muestra delante del nombre de tu archivo (en nuestro ejemplo, Mi_Funicón.ods), y selecciona la carpeta Standard; a continuación, haz clic sobre el botón Nuevo. OOo creará un nuevo módulo dentro de tu documento, y solicitará la confirmación del nombre de éste; dado que para nosotros es intrascendente, aceptaremos sin más.






 

Paso 2: Escribir la función en el editor de macros

La función que vamos a crear es sencilla; la llamaremos RaizX (sin acento), y precisará que le indiquemos el número y qué raiz deseamos que calcule; al primer valor lo llamaremos Numero, sin acento, y al segundo, Raiz, tambien sin acento.
En el editor Basic teclearemos el siguiente código justo debajo de la instrucción Sub Main / End Sub:

Function RaizX( Numero, Raiz )

Ten en cuenta que escribimos sin utilizar acentos, y que ponemos Function, en inglés, no Funcion, en castellano. Además, a diferencia de las funciones que utiliza Calc en la que los argumentos se separan por puntos y coma (;) en Basic los argumentos de la función se separan por comas (,).

Con esta instrucción declaramos la función RaizX, que necesitará dos parámetros (argumentos), a los que llamaremos Numero y Raiz.
A diferencia de las subrutinas, identificadas como Sub en Basic, las funciones devuelven un valor, por lo que serán perfectas para utilizarlas en Calc.
A continuación, escribiremos una nota aclaratoria, para que cualquier usuario que lo precise, o nosotros mismos, dentro de varios meses, nos describa qué hace esta función. La nota aclaratoria es una línea que empieza por una comilla sencilla (').

' Devuelve la raíz X de un número; por ejemplo, RaizX( 125, 3) devuelve la raiz cúbica de 125

Tecleamos una tercera línea, que realmente es el corazón de esta sencilla función. Para calcular la raiz X de un número, debemos elevar este número a 1/X. Matemáticamente es sencillo.

Para que la función devuelva el valor calculado, debemos asignarlo al nombre de la función; es tan sencillo como escribir el nombre de la función, un signo igual, y la operación matemática. Teclea la tercera línea.

RaizX = Numero^(1/Raiz)

Recuerda que no estamos utilizando acentos. Y observa que utilizamos las mismas combinaciones de letras mayúsculas y minúsculas en todo momento. Quizás prefieras escribir todo en minúsculas, o todo en mayúsculas. Eso, a tu gusto.

Para finalizar, le indicaremos a Basic que hemos terminado con nuestra función. Tan sólo necesitamos una línea más:

End Function

El código debe de quedar tal como muestra la imagen; las líneas adicionales son para mejorar la lectura del código.


Guardamos el código ( desde el editor Basic, selecciona desde el menú Archivo > Guardar, o haz clic sobre el botón con forma de disquete, o pulsa Ctrl + G) y cierra el editor Basic.

Paso 3: Probar el funcionamiento

En nuestra hoja de cálculo vamos a teclear unos datos (imagen a la izquierda): En la celda B2 tecleamos el número 125; en las celdas C2 a C5 tecleamos 2,3,4 y 5; en la celda D2 escribimos la siguiente fórmula: =RaizX(B2;C2) y pulsamos Intro. Debe de mostrar como resultado 11,18.


Observa que desde Calc SI que utilizamos ; en lugar de comas para separar los argumentos.

Corregimos la fórmula para convertir la celda B2 en referencia absoluta (imagen a la derecha), por lo que en la celda D2 tendremos la siguiente fórmula: =RaizX( $B$2;C2) y pulsamos Intro. Ahora extendemos la fórmula al rango  D3:D5 y comprobamos que todo ha ido perfectamente.


¿Dónde almacenar la macro creada?

A la hora de escribir una macro podemos almacenarla en una de estas dos áreas: Mis Macros o en el documento actual.
Almacenarla en Mis Macros supone que estará disponible para todas las aplicaciones de OOo, y por lo tanto, para todos los documentos Calc que utilicemos. Pero tiene un inconveniente: esta área tan sólo está disponible en nuestro equipo; si enviamos por correo un documento utilizando la función, el receptor del documento no tendrá acceso ésta, y por lo tanto, no la podrá utilizar.
Al mismo tiempo, si almacenamos la macro en el documento actual no será accesible para el resto de aplicaciones OOo, ni siquiera para otros documentos creados con Calc. En esta caso, en cambio, al mandar el documento por correo, dado que incorpora la función creada, sí que podrá ser ejecutada por el receptor del documento.
Podemos almacenar la macro creada en un documento, y guardar éste como plantilla. Cualquier documento creado a partir de ésta tendrá acceso a la macro, pero seguirá siendo invisible para otros documentos.
Lo ideal, por tanto, será generar la macro en el documento, y si deseamos utilizarla en otros documentos dentro de nuestro equipo, copiarla al área Mis Macros. Para el caso que deseamos utilizar la macro en otro documento, y enviarlo por correo a un tercero, deberemos almacenar una copia del código macro en el documento.

Copiar la macro desde el documento a Mis Macros, y viceversa.

Realmente es sencillo; sigue estos sencillos pasos:

Paso 1: Copiar la macro del documento al portapapeles

Abrimos de nuevo el editor de macros: desde el menú Herramientas > Macros > Organizar macros > OpenOffice.org Basic... accedemos a la macro creada en el documento desde Mi_Función.ods > Standard > Module1 seleccionamos RaizX y pulsamos el botón Editar.


Ya en el editor Basic, seleccionamos todo el código de la función, lo copiamos al portapapeles (desde el menú Editar > Copiar o pulsando la combinación de teclas Ctrl + C).

Paso 2: Pegar la macro del portapapeles al área Mis Macros

Desde el editor de Basic, hacemos clic sobre el botón Seleccionar Módulo. Seleccionamos el módulo Mis Macros > Standard > Module1, y hacemos clic sobre el botón Editar.
Justo debajo de la sentencia Sub Main / End Sub hacemos clic, y pegamos (desde el menú Editar > Pegar o pulsando la combinación de teclas Ctrl + V).
Guardamos los cambios en el editor y cerramos éste.



No hay comentarios:

Publicar un comentario