This article includes a list of references, related reading or external links, but its sources remain unclear because it lacks inline citations. Please improve this article by introducing more precise citations.(December 2013)
Three modern Basic variants: Mono Basic, OpenOffice Basic and Gambas.
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.
Sub ParaCount
'' 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