Although OpenOffice Basic itself is similar to other dialects of BASIC, such as Microsoft's VBA, the application programming interface (API) is very different, as the example below of a macro illustrates. While there is a much easier way to obtain the "paragraph count" document property, the example shows the fundamental methods for accessing each paragraph in a text document, sequentially.
'' Count number of paragraphs in a text document'Dim Doc AsObject, Enum AsObject, TextEl AsObject, Count AsLong
Doc =ThisComponent' Is this a text document?IfNot Doc.SupportsService("com.sun.star.text.TextDocument")ThenMsgBox"This macro must be run from a text document", 64, "Error"ExitSubEndIf
Count =0' Examine each component - paragraph or table?
Enum = Doc.Text.CreateEnumerationWhile Enum.HasMoreElements
TextEl = Enum.NextElement' Is the component a paragraph?If TextEl.SupportsService("com.sun.star.text.Paragraph")Then
Count = Count + 1EndIfWend'Display resultMsgBox Count, 0, "Paragraph Count"EndSub