I created and manage what I like to call an "electronic stationery
management system" (sounds fancy, don't it?) for a large multinational
company. You can read about it here:
http://www.amosfivesix.com/portfolio/.
I first created it 10 years ago in Word 6.0 using WordBasic macros in a
global .DOT template. It's now a VB6 COM Add-In. I can tell you about how I
handled things, which may or may not work in your situation.
I took the approach of keeping things as simple and foolproof as possible
for end users. One important element of my scenario is that when we first
created everything, we did not have central servers from which everyone in
the world could update their templates. One of the common scenarios
advocated in this group is a network login script that updates locally
stored templates. I could not do this back then, but it wasn't a big deal
because once the standards where set for the corporate letterhead, they
weren't going to be changed. 10 years ago we distributed floppy disks (yes,
floppy disks!) to all the local offices and they took care of distribution
from there. Now we have an intranet web page where end-users can download a
setup package customized for their unit of the company.
Now for customizing the letterhead, you might want to think about another
approach:
#1 - Each time a document is created, update it with the end-user's contact
information. This appears to be what you are considering. If everyone's
documents are based on the exact same single template stored in a network
location (referenced through the Workgroup Templates path most likely), you
may well HAVE TO do this. If you are using a login script to constantly
update the local templates, you may have to do this as well.
#2 - Install the template(s) on each end-user's computer individually,
perhaps in the templates folder, or maybe in a custom location with some
other means of accessing them, such as a toolbar button with a macro behind
it (that's basically what I do). Then give the end-user some way of doing a
special "personalization" of their templates. This could happen right after
the install of the template, or could be accessed through a custom menu or
toolbar button. It would allow the user to enter their information and would
then open each of the templates and update them appropriately. That way,
when the user starts a new document, no auto macros or anything like that
would need to run. I imagine users would get annoyed at a little delay each
time they start a document.
As you can tell, I went with #2 and it's worked very well for the last ten
years. Of course your specific circumstances may make it a no-go for you.
To address your specific question about macros in the document though, keep
in mind that if you have macros in a TEMPLATE, when you create a DOCUMENT
based on the template, the macros don't get copied into the document. So you
don't have to worry about that kind of thing.
If you do go with approach #2 above, you shouldn't need any macros in the
templates. This was important for me since I had 6 different templates in
over 60 locations. Updating macros in 360 templates would not have been fun!
In the olden days, we used a global .DOT template in the STARTUP folder to
contain all the macros and commandbars, etc. Nowadays I use a COM Add-In.
If you want any more thoughts on things, let me know. I've been doing this
for a long time!