Macros
The Macro Express Editor is more complicated to use than the quick wizards and there is an incredible amount of things that can be done in it. The example below is a simple one and will help get you started on the basics of the editor.
Example: The library has acquired the very popular Professional Series on Monster Truck Engineering and Mashed Potato Mountain Construction. This unnumbered series is ongoing and has over 32,000 titles. The publisher of this series, which we will leave unnamed, has an inescapable need (such as every single time) to spell its series title wrong and we often have to use a 490/830 combination to bring the titles all together. So we really need a macro that can fill in our 830 field for us and hopefully save us over 3,072,000 keystrokes. [This example pre-dates the elimination of the 440 field in 2008].
Step 1: Click on the New Macro button. It is located on the toolbar and looks like this: ![]()
Step 2: Macro Express now prompts us for the activation method and hot key. Make sure HotKey is selected and then type in the hot key or select it from the list. In this example, we are going to use Ctrl+M as shown in the figure below. After making your selection, click on the Scripting Editor button.

Step 3: The next window that will appear is the Macro Express Scripting Editor. On the left are all the available commands and on the right is where our macro script will display. Scroll down in the the list of Commands and look for Text. Click on this. It will open a selection of various text-related commands as shown below. The command we want is "Text Type," so select that by clicking on it.
In between the Commands area and the Macro Script area are three icons. The first one will insert the command before the line highlighted in the script. The second one will insert it after. The third one will add it to the end of the script. Seeing that we currently have no commands in our script yet, any of these buttons will add your first line. Also, you can double-click on the command from the list of commands to do the same thing as adding it to the end of the script. Choose one of these icons or double-click on the command.

Step 4: Now a window will appear in which you can type text. Type in the MARC tag 830 and then in the pale yellow section below, click on "Tab." This will place a <TAB> tag in your text. When the macro is run, Macro Express will treat this the same as pressing the Tab key. The reason why we are adding a <TAB> tag is because after we type in the MARC number, we need to tab to the Indicators field. After you have done this, click on the OK button.

Step 5: The first line of our macro will now appear in the right panel. Now scroll down and look for Timing in the list of commands and click on it. It will open a selection of various timing commands as shown below. The command we want is Delay, so click on it to highlight it.

Step 6: Now click on the second icon (plus sign in a blue circle with an arrow pointing away from it to the right) in the middle bar between the two panels to insert a Delay command after the line we first entered in Step 4. This will open a window that gives us options about how long of a delay we need. The reason we need this delay is because Macro Express runs pretty fast and can easily overwhelm WorkFlows when we type the Tab key. Select "Delay in Milliseconds" and type in 200 in the text box next to "Delay Time" as shown below. Then click OK.

Step 7: We now have two lines in our macro as shown below. Now go back to Text and select Text Type again. Then click on the second icon in the middle bar between the two panels to insert another command after the Delay command we just entered.

Step 8: As before, a window will appear in which we can type more text. From the pale yellow section below, click on "Space," then type a 0 (the number zero), and finally click on "Tab" in the pale yellow section. It should look something like below. The reason for placing a <SPACE> tab is because the first indicator value is blank. The second indicator is a zero. The <TAB> tag will move us into the data portion of the 830 field. When you are done, click OK.

Step 9: We now have three lines in our macro. Like before, we need to place another Delay command in the macro because we typed another Tab key. So select this as before and insert it after the last line using the second icon in the middle bar. Set it to the same values as before and shown below.

Step 10: Now we have four lines in our macro as shown below. Like before, look for the Text Type command and insert it using the second icon in the middle bar.

Step 11: Now you are back with another window to type in the remaining text of this macro. Type in the data portion of the 830 field as shown below. Then click on the OK button.

Step 12: Now we are finished with coding our macro. It should have five lines of code as shown below. Now we need to set some parameters for how and where the macro should run. Just above the Commands list are five tabs. Click on the Properties tab.

Step 13: There are two panels in the Properties tab as shown below. The left panel is called General, and the right panel is called Activation. In the General panel, in the text box under "Nickname," type in "830: Monster Truck Series Macro." In general it is good practice to give all your macros nicknames as they will display in your macro list and any popup macros like this. Otherwise, you'll see a list full of blanks. Although that might be amusing, it most likely will slow you down and you might find yourself running a macro somewhere you wish you hadn't.
In the Activation panel, you will see that "Hot Key" is selected and shows that we assigned Ctrl+M as the shortcut key. If you recall, we assigned this back in Step 2.

Step 14: Now click on the Scope tag. You are given four possible choices. Global means that the macro will run anywhere and in any program. Global Except means it will run anywhere and in any program except for those that you select to exclude. Window Specific means that the macro will only run in the window with the same window title you select. Finally, Program Specific means that the macro will only run when a selected program is running (this is based on the .exe filename only). For this macro, choose Window Specific and click on the Select button.

Step 15: After clicking the Select button, a window will display showing all of the windows currently active on your computer. Select "SirsiDynix Symphony WorkFlows" from the list as shown below. If WorkFlows is currently not running on your computer, it will not show up in the list. If this is the case, you can type in "SirsiDynix Symphony WorkFlows" in the Selected Window(s) field at right.

Step 16: When you selected the window title from the list, it appeared in the Selected Window(s) field at right. Next click on either Add button. Our selected window will show as below. Macro Express automatically defaults to have "Run If On Top" selected. This means our macro will only run if WorkFlows is the topmost window on our screen. This is exactly what we want. You may also select additional windows for your macro to run in at this point, but for this example, we only want it to run in WorkFlows, so click on the OK button.

Step 17: We are now finished with the script, properties, and scope of our macro. The next step is to save it. Click on the save button on the toolbar.
The save button looks like this:
If you forget to save it, Macro Express will prompt you to save it when you attempt to leave the Macro Express editor.
When you are finished and your macro is saved, you can return to your list of macros by clicking on the Macro Explorer icon in the Actions panel as shown below.
