Uso de cookies

Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continúa navegando, consideramos que acepta su uso. Para obtener más información o bien conocer cómo cambiar la configuración lea nuestra Política de cookies

Las macros de MSO Excel y OpenOffice Calc

Salvo alguna rara excepción, MS Office y OpenOffice.org NO SON COMPATIBLES en cuanto al lenguaje de macros se refiere. Dicho de otra forma, NO SE PUEDEN EJECUTAR macros de Excel en Calc.

Si bien es cierto que el lenguaje que ambas suites utilizan es prácticamente el mismo (Visual Basic en el caso de MS Office, Basic en el caso de OpenOffice.org), los objetos, sus propiedades, eventos y métodos son absolutamente diferentes.

Ello es debido a que el primero se basa en la API 1 de VBA (Visual Basic for Aplications) mientras que el segundo se basa en la API de SUN.

Sí que es cierto que algunas macros se pueden ejecutar en la versión 3.x de OOo. Para ello, deberemos habilitar esta característica desde el menú Herramientas > Opciones > Cargar/Guardar > Propiedades VBA.

Calc.32x.Migrar.012.png

Cargar el código Basic

Carga y guarda el código Basic de un documento de Microsoft como un módulo especial de OpenOffice.org junto con el documento. Éste código queda inhabilitado, si bien es visible y editable en el IDE (editor de macros) de OpenOffice.org Basic entre las sentencias Sub y End Sub. Al guardar el documento en formato de OpenOffice.org, el código Basic se guarda también, pero si guardas en otro formato, la IDE de Basic de OpenOffice.org Basic (las macros escritas desde OOo) no se guarda.

Por lo tanto, podremos ver y modificar las macros de Excel, pero no ejecutarlas. Al guardar el documento en formato Excel, cualquier macro agregada desde OOo será eliminada.

Código ejecutable

El código VBA (Visual Basic for Applications) se cargará y estará listo para ser ejecutado. Si esta casilla de verificación no esta marcada, el código VBA será comentado podrá verificarse, pero no podrá ejecutarse.

Hay que tener en cuenta que cualquier objeto de la API de VBA que no tenga exacta correspondencia con la API de OOo (y que sepamos, no hay ninguno) dará error al ejecutarse. Por lo tanto, tan sólo se podrá ejecutar código BASIC (sentencias y funciones que tengan correspondencia entre Excel y Calc)

Guardar el código Basic original

Especifica que el código original de Microsoft Basic del documento se conserve en una memoria interna especial durante el tiempo que el documento esté cargado en OpenOffice.org. Al guardar el documento en formato de Microsoft, Microsoft Basic se vuelve a guardar sin modificar. Al guardar en un formato distinto del formato Microsoft, el código Basic de Microsoft no se guarda.

Por lo tanto, si el documento contiene código de Microsoft Basic y se guarda en formato de OpenOffi­ce.org, se mostrará una advertencia indicando que el código de Microsoft Basic no se guardará.

La casilla de verificación Guardar el código Basic original tiene preferencia ante el campo Cargar Código Basic : si las dos casillas de verificación están activadas y editas el Código Basic comentado en el IDE de OpenOffice.org Basic, al almacenar en el formato Microsoft, también se almacenará el Código Basic de Microsoft. Un mensaje te informará de este hecho.

Para eliminar cualquier posible virus de macro de Microsoft Basic del documento de Microsoft, desmarca la casilla de verificación Guardar Código Basic original y guarda el documento en formato Microsoft. El documento se guardará sin el código de Microsoft Basic, y por lo tanto, sin el código malicioso.

El proyecto VBA

En la actualidad existe un proyecto desarrollado por Novell & Sun que se propone crear un sistema para poder ejecutar desde OOo las macros de Excel y Word en modo nativo.

Éste proyecto está albergado en http://wiki.services.openoffice.org/wiki/VBA.

Este proyecto actualmente está incompleto, y sólo puede ser instalado en sistemas Linux, por lo que no es aplicable a equipos con ninguna versión de Windows.

Aprendiendo OOo Basic

El libro Aprendiendo OOo Basic de Mauricio Baeza, disponible gratuitamente en la carpeta BIN de este repositorio puede introducirte en los secretos de la programación de macros para Calc, disponiendo de un capítulo entero para este menester.


Notas

1 API significa Application Program Interface. Básicamente una API es una librería de programación en la que se disponen los nombres, propiedades, métodos y eventos de los objetos que maneja una aplicación. Por ejemplo, un documento de Writer es un objeto, que dispone de propiedades (tamaño, márgenes, color de fondo) y de métodos (imprimir, vista previa, editar, guardar, cerrar) así como de eventos (cuando se cierra, se guarda, finaliza la impresión, se envía un aviso al sistema). Pero también es un objeto una tabla, una imagen, una gráfica..., y cada uno de ellos dispone de sus propiedades, métodos y eventos.


Modificada el 25 ago 2015 17:55.   Visitas: 29 151