Option Compatible en OpenOffice Basic permite mayor compatibilidad con VBA

Macros OpenOffice Basic y VBA

¿Quien dijo que no se podían utilizar acentos ni la letra ñ ni la letra ç en nombres de funciones, procedimientos o variables en OOo Basic como se hace en VBA?

 

Pues yo mismo. Lo dije ayer, sí, ayer mismo, contestando a una pregunta en el foro español de Apache OpenOffice.

Pues ahora digo que sí se puede hacer. Donde dije Digo ahora digo Diego.

Se pueden utilizar. Pero... ¿cómo?

Muy sencillo. Agregando un comando de opción para el compilador al principio del módulo en el que deseas escribir tus variables o funciones utilizando cualquiera de las letras del conjunto de carácteres Latin-1 (ISO 8859-1), al igual que ocurre con VBA.

Este comando es Option Compatible, y lo puedes utilizar como ves en este ejemplo:

REM  *****  BASIC  *****
Option Compatible

Sub Main
   HolaQuéTal
End Sub

Function HolaQuéTal() As String

   Dim ÉsteMensajeEspañol As String
   Dim Comença_ara As Date

   ÉsteMensajeEspañol = "¡Hola! Ahora permito letras acentuadas," & VbCr &  _
   " ñ y ç en nombres de variables y también en " & VbCr & _
   " nombres de funciones y procedimientos"
   Comença_ara = Date
  
   MsgBox ÉsteMensajeEspañol  
   MsgBox Comença_ara
  
End Function

Como puedes observar, agregando la opción de compilación al principio de un módulo, activas el modo compatible para todo el código que contenga, por lo que podrás utilizar letras acentuadas y carácteres tan hispanos como la ñ, o también la ç utilizada en Andorra, Baleares, Cataluña y Valencia.

La letras que no son compatibles con el modo compatible desactivado (valga la redundancia) se muestran en el editor con un color distinto al del resto de las letras que componen nombre de la variable o función.

Pero no es lo único que permite. Por ejemplo, verás que hemos utilizado en el código (sin necesidad de declararla) la constante VbCr. En VBA, la constante VbCr es equivalente a un retorno de carro (Chr(13)), VbLf es equivalente a un cambio de línea (Chr(10)), y dispones también de VbCrLf.

Pues todas estas constantes las tienes también disponibles con el modo compatible activado.

Éste modo de compatibilidad afecta al módulo donde has incluido tu código. Pueden convivir perfectamente módulos con el modo activado o desactivado. El compilador de Basic actuará en consecuencia con cada módulo en función de tu definición.

Pero es más. Se ha incluido una función, CompatibilityMode(), que puede ser activada o desactivada a voluntad en el mismo código.

Para activarla, basta con escribir CompatibilityMode(True), y CompatibilityMode(False) para desactivarla.

Así, podrás comprobar otros cambios en el comportamiento de funciones que lo hacen tu código más compatible con VBA.

Por ejemplo, rmdir() permite eliminar directorios. En VBA se obliga a que estén vacíos, pero en OOo Basic no se exige (pudiendo con una orden borrar un directorio y todo lo que contenga). Si activas en tu código el modo de compatibilidad escribiendo  CompatibilityMode(True) antes de la orden rmdir(), el comando se comportará del mismo modo en que lo hace en VBA, generando un error si el directorio no está vacío.

No hay reacciones, todavía


Form is loading...