Operation Manual

The data can be cleaned up in several ways, all of them easy to accomplish. The example given
below uses keystrokes that assume the cursor is at the start of the line with the text THIN.
1) Make sure macro recording is enabled by going to Tools > Options > LibreOffice >
Advanced on the main menu bar and selecting the option Enable macro recording. By
default, this feature is turned off when LibreOffice was installed on your computer.
2) Go to Tools > Macros > Record Macro on the main menu bar to start recording.
3) Press Ctrl+Right Arrow to move the cursor to the start of “specifies”.
4) Press Backspace twice to remove the tab and the space.
5) Press Tab to add the tab without the space after the constant name.
6) Press Delete to delete the lower case s and then press Shift+S to add an upper case S.
7) Press Ctrl+Right Arrow twice to move the cursor to the start of the number.
8) Press Ctrl+Shift+Right Arrow to select and move the cursor before the % sign.
9) Press Ctrl+C to copy the selected text to the clipboard.
10) Press End to move the cursor to the end of the line.
11) Press Backspace twice to remove the two trailing spaces.
12) Press Home to move the cursor to the start of the line.
13) Press Ctrl+V to paste the selected number to the start of the line.
14) Pasting the value also pasted an extra space, so press Backspace to remove the extra
space.
15) Press Tab to insert a tab between the number and the name.
16) Press Home to move to the start of the line.
17) Press down arrow to move to the next line.
18) Stop recording the macro and save the macro, see “Recording a macro” on page 338.
It takes much longer to read and write the steps than to record the macro. Work slowly and think
about the steps as you do them. With practice this becomes second nature.
The generated macro code in Listing 4 has been modified to contain the step number in the
comments to match the code to the step above.
Listing 4: Copying numeric value to start of the column.
sub CopyNumToCol1
rem -------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem -------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem (3) Press Ctrl+Right Arrow to move the cursor to the start of “specifies”.
dispatcher.executeDispatch(document, ".uno:GoToNextWord", "", 0, Array())
rem (4) Press Backspace twice to remove the tab and the space.
dispatcher.executeDispatch(document, ".uno:SwBackspace", "", 0, Array())
rem -------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:SwBackspace", "", 0, Array())
rem (5) Press Tab to add the tab without the space after the constant name.
dim args4(0) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Text"
Chapter 13 Getting Started with Macros | 343