Contents
Index 🔎︎
\<bookmark_value\>deleting; macro assignments to events\</bookmark_value\>\<bookmark_value\>macros; assigning to events\</bookmark_value\>\<bookmark_value\>assigning macros to events\</bookmark_value\>\<bookmark_value\>events; assigning macros\</bookmark_value\>

# Event-Driven Macros

This section describes how to assign Basic programs to program events.

You can automatically execute a macro when a specified software event occurs by assigning the desired macro to the event. The following table provides an overview of program events and at what point an assigned macro is executed.

Event | An assigned macro is executed...
Program Start | ... after a LibreOffice application is started.
Program End | ...before a LibreOffice application is terminated.
Create Document | ...after a new document is created with \<emph\>File - New\</emph\> or with the \<emph\>New\</emph\> icon.
Open Document | ...after a document is opened with \<emph\>File - Open\</emph\> or with the \<emph\>Open\</emph\> icon.
Save Document As | ...before a document is saved under a specified name (with \<emph\>File - Save As\</emph\>, or with \<emph\>File - Save\</emph\> or the \<emph\>Save\</emph\> icon, if a document name has not yet been specified).
Document has been saved as | ... after a document was saved under a specified name (with \<emph\>File - Save As\</emph\>, or with \<emph\>File - Save\</emph\> or with the \<emph\>Save\</emph\> icon, if a document name has not yet been specified).
Save Document | ...before a document is saved with \<emph\>File - Save\</emph\> or the \<emph\>Save\</emph\> icon, provided that a document name has already been specified.
Document has been saved | ...after a document is saved with \<emph\>File - Save\</emph\> or the \<emph\>Save\</emph\> icon, provided that a document name has already been specified.
Close Document | ...before a document is closed.
Document is being closed | ...after a document was closed. Note that the "Save Document" event may also occur when the document is saved before closing.
Activate Document | ...after a document is brought to the foreground.
Deactivate Document | ...after another document is brought to the foreground.
Print Document | ...after the \<emph\>Print\</emph\> dialog is closed, but before the actual print process begins.
JavaScript run-time error | ...when a JavaScript run-time error occurs.
Print Mail Merge | ...after the \<emph\>Print\</emph\> dialog is closed, but before the actual print process begins. This event occurs for each copy printed.
Change of the page count | ...when the page count changes.
Message received | ...if a message was received.

## Assigning a Macro to an Event

1. Choose \<emph\>Tools - Customize\</emph\> and click the \<emph\>Events\</emph\> tab.

2. Select whether you want the assignment to be globally valid or just valid in the current document by selecting the \<emph\>LibreOffice\</emph\> or \<emph\>Document\</emph\> option.

3. Select the event from the \<emph\>Event\</emph\> list.

4. Select the module containing the macro to be assigned to the selected event from the \<emph\>Macros\</emph\> list. The list contains a hierarchical list of modules, libraries, files, and templates.

5. Click \<emph\>Assign\</emph\>.

6. Click \<emph\>OK\</emph\> to close the dialog.

## Removing the Assignment of a Macro to an Event

1. Choose \<emph\>Tools - Customize\</emph\> and click the \<emph\>Events\</emph\> tab.

2. Select whether you want to remove a global assignment or an assignment that is just valid in the current document by selecting the \<emph\>LibreOffice\</emph\> or \<emph\>Document\</emph\> option.

3. Select the event that contains the assignment to be removed from the \<emph\>Event\</emph\> list.

4. Click \<emph\>Remove\</emph\>.

5. Click \<emph\>OK\</emph\> to close the dialog.