Recording a Macro in Excel
A macro
is a piece of computer code, that is written for Excel, using the Visual Basic
for Applications (VBA) programming language. However, it is recommended that
you read the sections below to familiarise yourself with the Excel Macro
Security settings and the Visual Basic Editor, before you start to write VBA
code.
Excel's macro recording functionality
is a useful way of efficiently performing simple repetitive tasks. This feature
of Excel can also assist you when you are writing more complex macros.
If you have a simple set of actions
that you need to repeat several times over, you can make Excel record these
actions and produce a macro, containing the code to repeat them.
Once you have recorded the macro, you
can repeat the set of actions as many times as you like, by simply running the
recorded macro. This is much more efficient than repeating the same set of
actions manually each time.
In
order to record a macro, you need to initially start off the recording process.
This option resides in the Macros menu, which is located in
the View tab of the Excel ribbon, (or in the Tools drop-down
menu in Excel 2003). These options are shown in the images below:
Record Macro in Current Versions of
Excel (2007 and Later):
Record Macro in Excel 2003:
You
will then be presented with the 'Record Macro' dialog box shown on the
right. This box allow you to enter a name and description for your macro if you
wish. It is a good idea to give the macro a meaningful name, so that when you
come back to the macro at a later date, this will help you to remember what it
does. However, if you do not supply a name, Excel will automatically assign a
macro name (e.g. Macro1, Macro2, etc).
The 'Record Macro' dialog box also
gives you the option of assigning a keyboard shortcut to your macro. This will
make the macro much easier to run. However, you should be careful not to assign
one of Excel's predefined key combinations (e.g. CTRL-C) to the macro. If you
do select an existing Excel key combination, this will be overwritten by your
macro, and you, or other users, may end up accidentally executing your macro
code.
Once you are satisfied with your
macro name and (if required) keyboard shortcut, select OK to start the macro
recording.
Once the macro starts to record, every
action that you perform (entering data, selecting cells, formatting cells,
scrolling down the worksheet, etc.) will be recorded in the new macro, as VBA
code.
Also, while the macro is recording, a
stop button will be displayed at the bottom left of your workbook (or in Excel
2003, the stop button will be presented to you on a floating toolbar), as show
below:
Macro Stop Button in Excel 2007 & Later Versions of Excel:
|
Record Macro Toolbar
in Excel 2003: |
When
you have completed the actions that you want to record, you can stop the macro
recording by clicking on the stop button. Your macro code will now be stored in
a module within the Visual Basic Editor.
The 'Use Relative References'
Option
If you
select the Use Relative References option during the recording
of a macro, then all cell references within the macro will be relative.
However, if the Use Relative References option has not been
selected, any cell references appearing in the code will be absolute (see
the Excel Cell References if you want to learn more about these two types of cell
references).
The Use
Relative References option is found in the Macros menu
(and is located on the Macro Toolbar in Excel 2003). This is illustrated in the
images below:
Relative References Option
in Current Versions of Excel: |
Use Relative References
Button in Excel 2003: |

Viewing the VBA Code
The VBA
code produced by the macro is placed into a module, which can be viewed via
the Visual Basic Editor. This can be opened by pressing ALT-F11 (i.e. press the ALT key,
and while this is pressed down, press F11).
The
code is located in one of the modules in the project window, which is
positioned to the left of the visual basic editor. In the simple project window
shown on the right, you could view this code by double clicking on 'Module
1'.
Running Excel Recorded Macros
When recording macros, Excel always
produces a Sub procedure (rather than a Function procedure). If you have
assigned a a keyboard shortcut to the macro, then this shortcut will be the
simplest way of running the macro. Otherwise, the macro can be run by
performing the following steps :
·
Press ALT-F8 (i.e. press the ALT key
and while this is pressed down, press F8);
·
From the list of macros that appear,
select the macro you wish to run;
·
Click Run.
Limitations
Although the Excel macro recording
feature is a very simple way of creating VBA code, it can only be used for very
basic macros. This is because it cannot make use of many VBA features, such as
:
·
Defined Constants, Variables and
Arrays;
·
If Statements;
·
Loops;
·
Calls to Built-In Functions or Other
Procedures.
Also, the recording tool can only
produce Sub procedures (not Function procedures), as it cannot return a value.
These Sub procedures cannot be passed any arguments, although they are able to
identify the current active cells, ranges or worksheets, and values stored in
the cells of the workbook. It should also be noted that the code generated is
not always the most efficient code possible for the required actions.
While
Excel's automatically generated VBA code is fine for simple macros, if you want
to produce more complex macros, you will need to Excel Visual Basic
for yourself. However the Excel Macro Recording feature is an
excellent tool to provide you with code that you can adapt or insert into more
complex macros.






No comments:
Post a Comment