How do you WANT them to use it.
There are drawbacks to all the methods for distributing macros.
Whatever method you use, you're going to HAVE to take it out of your
Personal.xls file and save it somewhere else.
If you put the macro into an Excel file and save it as .xla,
then send each user a link to the file,
when they double-click on the link, it will install an Excel "add-in".
The problem with this approach is that it actually COPIES the xla file
to their configured folders.
If you have to make a change or repair to the code, they won't get it.
another way is to put it in an standard Excel file (.xls) and send a link (or
shortcut).
You can make it so that when they open the file, your macro automatically runs.
The nice thing about this approach is that you can keep a "working copy"
somewhere
so that you can modify it and test it. Then copy and overwrite "their" file and
all
shortcuts will automatically point to the new and improved version.
Yet a third approach would be to name your module something "unique".
Then, export the macro to a .bas file in a shared location.
Next, create a macro and save it in a .xla file that looks through the modules
and removes the one named "your unique name".
Then, import the module from the shared location and execute your macro.
These are just a few of many, MANY combinations of approaches to distributing
your code.
The fundamental question is, however, how do you want them to USE it.
Do you expect them to turn on the vba toolbar, and hit the "run" icon?
Will the use the menus and select Tools -> Macro -> Macros.
Do you want to have a button?
Deciding how you want them to fire it off will help to narrow down the decision
on how to distribute the code.