Macros
You can save time by using a macro to automate a series of repetitive tasks. A macro lets you specify a sequence of actions so that you can quickly repeat those actions later.
You don’t need any programming experience to use macros — in fact, the basic tools for working with macros are available within the main application window. However, if you want to have more control over your macros, you can use the following built-in programming environments:
•
Microsoft Visual Studio Tools for Applications (VSTA) — the successor to VBA, and an excellent choice for developers and other programming experts. VSTA provides the tools and features that you need to create the most advanced macro projects.
•
Microsoft Visual Basic for Applications (VBA) — a subset of the Microsoft Visual Basic (VB) programming environment, and an excellent choice for beginners. You can use VBA to create basic macros for personal use, but you can also use it to create more advanced macro projects.
For detailed information on the differences between VBA and VSTA, please see the programming guide on the Developer area on the CorelDRAW community website.
Getting started with macros
The macro features for VBA and VSTA are installed with the software by default, but you can manually install these features if necessary. You can specify options for the VBA feature.
To use VSTA macro features with CorelDRAW, you must have Microsoft Visual Studio 2019 installed. To use the VSTA Editor, you must first install Microsoft Visual Studio 2019, Community, Professional, Premium, Ultimate or Enterprise Edition; and then reinstall Microsoft Visual Studio Tools for Applications 2019 from microsoft.com.
If you install Microsoft Visual Studio after installing CorelDRAW Graphics Suite, you must re-install the VSTA macro features by modifying your CorelDRAW Graphics Suite installation. For more information, see To manually install the macro features.
The macro features provide several tools for working with macros in the main application window:
•
Macros toolbar — provides easy access to common macro functions
•
Scripts docker — provides easy access to all available macro projects for VBA, and to basic functions for working with those projects
•
Script Editor (formerly the Visual Basic Editor) — provides advanced functions for creating VBA-based macro projects
•
Visual Studio Editor — provides advanced functions for creating VSTA-based macro projects. The VSTA Editor is accessible only if you have Microsoft Visual Studio 2019 installed.
Creating macros
Macros are stored in modules (also called "code modules"), which are stored in macro projects. The Scripts docker lets you view and manage all of the macro projects, modules, and macros that are available to you.
You can use the Scripts docker to create macro projects in the form of Global Macro Storage (GMS) files or Corel VSTA Projects (CGSaddon). Using such files is an excellent way to bundle the components of your macro project for sharing with others. You can use the Scripts docker to open (or "load") the macro projects that you create, as well as the macro projects that install with the software or that are otherwise made available to you. You can also use the Scripts docker to rename macro projects, as well as to copy and close (or "unload") GMS-based and VSTA macro projects.
Some macro projects are locked and cannot be modified.
When you create a document, a macro project for that document is automatically added to the Scripts docker. Although you can store macros within the macro project for a document — for example, to create an all-in-one template — it is recommended that you instead use GMS files to store your macro projects.
Each macro project contains at least one module. You can use the Scripts docker to add a module to a VBA-based macro project, or to open existing modules for editing. You can also use the Scripts docker to rename or delete VBA modules.
The editing feature is disabled for some modules.
Finally, you can use the Scripts docker to create macros within the available modules. You don’t need any programming experience to create macros; however, if you have programming experience and want to edit VBA macros, you can do so by using the Script Editor. You can also use the Scripts docker to rename and delete VBA macros.
Recording macros
You can record macros and save them for later use.
You can also record temporary macros for actions that you need to repeat only a few times. A temporary macro is accessible until a new temporary macro is recorded.
The recording feature is disabled for some macro projects.
Before recording a macro, make sure that you know exactly which actions you want to record and the order in which you want to record them. When you start recording, the macro recorder captures every change that you make in a drawing. For example, if you create a shape, resize the shape, and then change its color, the macro records all the changes. When you are done making the changes, you must stop recording the macro.
Playing macros
You can perform the actions that are associated with a macro by playing that macro.
You can also play a temporary macro.
Learning more about macros
The Developer area on the CorelDRAW community website can help you with its wealth of useful resources: a programming guide, detailed Object Model reference documentation with code samples, object model diagrams, and in-depth programming articles and tutorials.
The Object Model reference documentation, also referred to as API documentation, includes help on every feature and function that can be automated in the applications. (Collectively, these features and functions are called an "object model.") You can easily access relevant documentation from within the Script Editor.
The Object Model diagrams provide a hierarchical representation of the features and functions that can be automated in CorelDRAW, Corel PHOTO-PAINT, and Corel DESIGNER.
For more detailed information about VBA and its programming environment, please consult the Microsoft Visual Basic Help from the Help menu in the Script Editor.
For more detailed information about VSTA and its programming environment, please consult the Help menu in the VSTA Editor.
To manually install the macro features
1
On the Windows Control Panel, click
Uninstall a program.
2
Double-click
CorelDRAW Graphics Suite on the
Uninstall or change a program page.
3
Enable the
Modify option in the wizard that appears, and follow the instructions.
4
On the
Features page of the installation wizard, enable the following check boxes in the
Utilities list box:
•
Visual Basic for Applications
•
Visual Studio Tools for Applications
The macro features for VBA and VSTA are installed with the software by default.
To specify VBA options
1
Click
Tools Options CorelDRAW.
3
In the
Security area, specify how to control the risk of running malicious macros by clicking
Security Options.
If you want to bypass this security feature, enable the
Trust all installed GMS modules check box, and then proceed to step 6.
4
On the
Security level page of the
Security dialog box, enable one of the following options:
•
Very high — allows only macros installed in trusted locations to run. All other signed and unsigned macros are disabled.
•
High — allows only signed macros from trusted sources to run. Unsigned macros are automatically disabled.
•
Medium — lets you choose which macros run, even if they are potentially harmful
•
Low (not recommended) — allows all potentially unsafe macros to run. Enable this setting if you have virus-scanning software installed, or if you check the safety of all documents that you open.
5
On the
Trusted publishers page of the
Security dialog box, review which macro publishers are trusted. Click
View to display details on the selected macro publisher, or click
Remove to delete the selected macro publisher from the list.
If desired, you can enable or disable the
Trust access to Visual Basic project check box for the selected macro publisher.
6
Disable the
Delay load VBA check box if you want to load the VBA feature at start-up.
To access the macro tools
|
|
Display the Macros toolbar
|
Click Window Toolbars Macros.
A check mark next to the command indicates that the toolbar is displayed.
|
Display the Scripts docker
|
Click Tools Scripts Scripts.
|
Display the Script Editor
|
• Click Tools Scripts Script Editor.
• Click the Script Editor button on the Macros toolbar.
• Right-click Visual Basic for Applications in the Scripts docker, and then click Show IDE.
|
Display the Visual Studio Editor
|
Click Tools Scripts Visual Studio Editor. (VSTA must be installed on your computer.)
|
To create a macro project
•
In the
Scripts docker, do one of the following:
•
Click
Visual Studio Tools for Applications in the list, click
New, and then click
New macro project.
•
Click
Visual Basic for Applications in the list, click
New, and then click
New macro project.
|
|
Open (or "load") a macro project
|
• Click Visual Studio Tools for Applications in the list, click Load, and then choose the project.
• Click Visual Basic for Applications in the list, click Load, and then choose the project.
|
|
Right-click the project in the list, and then click Rename.
|
Copy a GMS-based macro project
|
Right-click the project in the list, click Copy to, and then choose the target location for the copied project.
You cannot copy a document-based macro project. Such projects are stored within a document and cannot be managed separately from that document.
|
Display or hide all modules in the list
|
Click the Simple mode button .
|
Add a module to a VBA macro project
|
• Click the project in the list, click New, and then click New module.
• Right-click the project in the list, and then click New module.
|
Edit a module in a VBA macro project
|
• Click the module in the list, and then click the Edit button .
• Right-click the module in the list, and then click Edit.
|
Rename a module in a macro project
|
Right-click the module in the list, and then click Rename.
|
Delete a module from a macro project
|
• Click the module in the list, and then click the Delete button .
• Right-click the module in the list, and then click Delete.
|
Close (or "unload") a GMS-based macro project
|
Right-click the macro project in the list, and then click Unload macro project.
You can close a document-based macro project only by closing the document in which it is stored.
|
Some macro projects are locked and cannot be modified.
To create a macro
•
In the
Scripts docker, do one of the following:
•
Click the container you want, click
New, and then click
New macro.
•
Right-click the desired container module, and then click
New macro.
|
|
|
• Click the macro in the list, and then click the Edit button .
• Right-click the macro in the list, and then click Edit.
|
|
• Click the macro in the list, and then click the Delete button .
• Right-click the macro in the list, and then click Delete.
|
Some macro projects are locked and cannot be modified.
To record a macro
1
Click
Tools Scripts Start Recording.
The
Record macro dialog box appears.
2
In the
Macro name box, type a name for the macro.
Macro names can contain numerals, but they must begin with a letter. Macro names cannot contain spaces or non-alphanumeric characters other than underscores ( _ ).
3
In the
Save Macro In box, choose the macro project to which you want to save the macro.
4
Type a description of the macro in the
Description box, and then click
OK.
5
Perform the actions that you want to record.
The application begins recording your actions. If you want to pause recording, click
Tools Scripts Pause recording. Repeat this step to resume recording.
6
To stop recording, click
File Scripts Stop Recording.
|
|
Save the actions in the Undo list as a VBA macro or a script
|
Click Window Dockers History, perform the actions that you want to record, and then click the Save as a script button in the History docker.
|
You cannot record a macro if all available macro projects are locked.
Not all actions can be recorded — some because of their complexity (although many such actions can be manually coded in the Script Editor). When an action cannot be recorded, a comment is placed in the macro code ("The recording of this command is not supported."), but the recording process continues until you stop it. You can view any comments in the code by opening the macro in the Script Editor.
By default, macros are recorded in the GlobalMacros project so that they can be accessed from other documents. However, you can change the default macro project for recordings by right-clicking another project in the Scripts docker, and then clicking Set as recording project. You cannot specify a locked macro project.
You can cancel recording a macro, and discard any commands recorded thus far, by clicking Tools Scripts Cancel recording.
You can also record, pause, and stop recording a macro by using the Macros toolbar or the Scripts docker (File Scripts Scripts).
To record a temporary macro
1
Click
Tools Scripts Record Temporary Script.
2
Perform the actions that you want to record.
The application begins recording your actions. If you want to pause recording, click
Tools Scripts Pause Recording. Repeat this step to resume recording.
3
To stop recording, click
File Scripts Stop Recording.
The macro is temporarily saved to the default recording project. When the current session is ended, the macro is deleted from that project.
You cannot record a temporary macro if all available macro projects are locked.
Not all actions can be recorded.
By default, macros are recorded in the GlobalMacros project so that they can be accessed from other documents. However, you can change the default recording project by right-clicking another project in the Scripts docker, and then clicking Set as recording project. (You cannot specify a locked macro project.) If you want, you can create multiple temporary recordings by assigning each one to its own macro project.
You can cancel recording a macro, and discard any commands recorded thus far, by clicking Tools Scripts Cancel Recording.
You can also pause and stop recording a temporary macro by using the Macros toolbar or the Scripts docker (Tools Scripts Scripts).
To play a macro
•
Do any of the following:
•
Click
Tools Scripts Run Script, or click the
Run macro button
on the
Macros toolbar. From the
Macros in list box, choose the project or file in which the macro is stored. From the
Macro name list, choose the macro. Click
Run.
•
In the
Scripts docker, double-click the macro in the list.
•
In the
Scripts docker, click the macro in the list, and then click the
Run button
.
•
In the
Scripts docker, right-click the macro in the list, and then click
Run.
To play a temporary macro
•
Click
Tools Scripts Run Temporary Script.
This option is enabled only after you record a temporary macro.
If you have created multiple temporary macros, you must specify which macro project contains the one that you want to run. Right-click the project in the Scripts docker, and then click Set as recording project.
To access Object Model reference documentation from within the Script Editor
1
While in Microsoft Visual Basic for Applications, press
F2 to display the Object Browser.
The Object Browser displays all the features and functions that can be automated in the Script Editor.
2
Choose
VGCore from the
Library list box.
The Object Browser is updated to display only the features and functions of CorelDRAW that can be automated in the Script Editor. Collectively, these features and functions are called an "object model."
3
Click an item in the Object Browser, and press
F1.
You can also display information for any item in the Code window of the Script Editor by clicking that item and pressing F1.