OpenOffice Basic

OpenOffice Basic (ранее известный как StarOffice Basic или StarBasic или OOoBasic) — это диалект языка программирования BASIC, впервые появившийся в офисном пакете StarOffice и получивший распространение с пакетом OpenOffice.org, а также с производными от него, такими как LibreOffice (в котором он известен как LibreOffice Basic).

Хотя OpenOffice Basic сам по себе похож на другие диалекты BASIC, такие как Microsoft VBA, его API сильно отличается, как показано в примере макроса ниже. В то время как есть гораздо более простой способ получить свойство документа «счётчик абзацев», в примере показан основные последовательный метод доступа к каждому абзацу текстового документа.

Sub ParaCount
'
' Подсчитать количество абзацев в текстовом документе
'
    Dim Doc As Object, Enum As Object, TextEl As Object, Count As Long
    Doc = ThisComponent
' Это текстовый документ?
    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
' Проверить каждый компонент: абзац или таблица?
    Enum = Doc.Text.CreateEnumeration
    While Enum.HasMoreElements
        TextEl = Enum.NextElement
' Является ли компонент абзацем?
        If TextEl.SupportsService("com.sun.star.text.Paragraph") Then
            Count = Count + 1
        End If
    Wend
'Display result
    MsgBox Count, 0, "Paragraph Count"
End Sub

BASIC Macros

OpenOffice.org API