Writing macros without the recorder
From Wiki
Jump to navigationJump to search- Creating a simple macro
- Creating a macro
- Sometimes the macro recorder fails
- Macro organization
- How to run a macro
- Extensions
- [[EN/documentation/ooo3_user_guides/getting_started/writing_macros_without_the_recorder|]]
- Finding more information
The examples covered in this chapter are created using the macro recorder and the dispatcher. You can also write macros that directly access the objects that comprise OpenOffice.org. In other words, you can directly manipulate a document.
Directly manipulating OOo's internal objects is an advanced topic that is beyond the scope of this chapter. A simple example, however, demonstrates how this works.
Listing 4: Append the text “Hello" to the current document.
Sub AppendHello
Dim oDoc
Dim sTextService$
Dim oCurs
REM ThisComponent refers to the currently active document.
oDoc = ThisComponent
REM Verify that this is a text document
sTextService = "com.sun.star.text.TextDocument"
If NOT oDoc.supportsService(sTextService) Then
MsgBox "This macro only works with a text document"
Exit Sub
End If
REM Get the view cursor from the current controller.
oCurs = oDoc.currentController.getViewCursor()
REM Move the cursor to the end of the document
oCurs.gotoEnd(False)
REM Insert text "Hello" at the end of the document
oCurs.Text.insertString(oCurs, "Hello", False)
End Sub
Content on this page is licensed under the Creative Common Attribution 3.0 license (CC-BY). |