OpenOfficeBasic

OpenOfficeBasic

   OpenOfficeBasic es un lenguaje de programación de alto nivel similar a Microsoft VisualBasic for Applications (VBA) pero basado en OpenOffice Basic

   Se accede a OpenOfficeBasic desde alguns aplicaciones de OpenOffice o LibreOffice como: Writer, Calc y Base. 

   Es utilizado para escribir pequeños programas conocidos como "macros", que sirven por ejemplo para contar palabras en diversos párrafos de un texto .

   Es similar a como se programa y opera con las "Macros" de Microsoft VisualBasic


Está escrito en funciones de llamada o subrutinas macros, y en cada macro el desempeño es una tarea diferente, como por ejemplo: contar las palabras de un párrafo. 


   Es especialmente útil para hacer las tareas repetitivas que no se han integrado en el programa. (es decir, agregarle caraterísticas a la aplicación de LibreOffice)


Como la base de datos de Apache OpenOffice (Base), utiliza los documentos creados en virtud de la aplicación de Writer para informes y formas, se podría decir que OpenOffice Base también puede ser programado con OpenOfficeBasic.


Desarrolladores: Sun Microsystems

Última versión: 3.0.0 (2008)

Sistema operativo: Multiplataforma

Licencia: GNU Lesser General Public License



OpenOfficeBasic puede ser dividido en 4 componentes:




Ejemplo:


REM  *BASIC de Open Office*

' una Macro escrita en Basic

sub sub_saludo

   v_nombre = inputBox("Dime tu nombre")

   msgbox "Hola " + v_nombre

end sub


Sub Main

   sub_saludo

End Sub




Otro ejemplo:


Sub ParaCount

' Count number of paragraphs in a text document

   Dim Doc As Object, Enum As Object, TextEl As Object, Count As Long

  Doc = ThisComponent

' Is this a text document?

  If Not Doc.SupportsService("com.sun.star.text.TextDocument") Then

   MsgBox "This macro must be run from a text document", 64, "Error"

 Exit Sub

 End If

    Count = 0

' Examine each component - paragraph or table?

    Enum = Doc.Text.CreateEnumeration

    While Enum.HasMoreElements

        TextEl = Enum.NextElement

' Is the component a paragraph?

   If TextEl.SupportsService("com.sun.star.text.Paragraph") Then

        Count = Count + 1

   End If

 Wend

'Display result

   MsgBox Count, 0, "Paragraph Count"

End Sub




--------

   Links:

Ayuda de LibreOffice: https://help.libreoffice.org/7.5/es/text/sbasic/shared/main0601.html?&DbPAR=SHARED&System=WIN



Guía de Apache OpenOfficeBASIC: https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide


Aprender macros:


Aprender frameworks y kit de desarrollo: