Operation Manual

It is not possible to specify what kind of object to create or insert. If an object is inserted from a file,
you cannot specify which file to insert.
When recording a macro and using Tools > Options on the main menu bar to open and modify
configuration items, the generated macro does not record any configuration changes. In fact, the
generated code is commented so it will not even be run.
rem dispatcher.executeDispatch(document,
".uno:OptionsTreeDialog", "", 0, Array())
If a dialog is opened, a command to open the dialog is likely to be generated. Any work done inside
the dialog is not usually recorded. Examples of this include macro organization dialogs, inserting
special characters, and similar types of dialogs. Other possible problems using the macro recorder
include things such as inserting a formula, setting user data, setting filters in Calc, actions in
database forms, and exporting a document to an encrypted PDF file. You never know for certain
what will work unless you try it. For example, the actions from the search dialog are properly
captured.
Other options
When the macro recorder is not able to solve a specific problem, the usual solution is to write code
using the LibreOffice objects. Unfortunately, there is a steep learning curve for these LibreOffice
objects. It is usually best to start with simple examples and then increase the scope of macros as
you learn more. Learning to read generated macros is a good place to start.
If you record Calc macros, and the recorder can correctly generate a macro, there is an add-in
available which converts Calc macros when they are recorded. The final code manipulates
LibreOffice objects rather than generating dispatches. This can be very useful for learning the
object model and can be downloaded directly from the web site:
http://www.paolo-mantovani.org/downloads/DispatchToApiRecorder/
Macro organization
In LibreOffice, macros are grouped in modules, modules are grouped in libraries, and libraries are
grouped in library containers. A library is usually used as a major grouping for either an entire
category of macros, or for an entire application. Modules usually split functionality, such as user
interaction and calculations. Individual macros are subroutines and functions. Figure 339 shows an
example of the hierarchical structure of macro libraries in LibreOffice.
Go to Tools > Macros > Organize Macros > LibreOffice Basic on the main menu bar to open the
LibreOffice Basic Macros dialog (Figure 333 on page 336). All available library containers are
shown in the Macro from list. Every document is a library container, capable of containing multiple
libraries. The application itself acts as two library containers, one container for macros distributed
with LibreOffice called LibreOffice Macros, and one container for personal macros called My
Macros.
The LibreOffice Macros are stored with the application runtime code, which may not be editable to
you unless you are an administrator. This helps protect these macros because they should not be
changed and you should not store your own macros in the LibreOffice container.
Unless your macros are applicable to a single document, and only to a single document, your
macros will probably be stored in the My Macros container. The My Macros container is stored in
your user area or home directory.
346 | Getting Started with LibreOffice 4.0