Discussion Locked

Distribute a Word macro across a network

0 helpful
37 replies
Closed to new repliesThis discussion is closed. It stays readable, but it takes no new replies.

This question is being posted by the TechRepublic staff. The response(s) from this post will be turned into an article on the TechRepublic site. This is a winner-take-all scenario and the winner will be the person who provides the best and/or most complete answer in our judgment. If there are multiple correct answers we will select the one that was posted first. In addition to offering a generous amount of TechPoints, the winner will also receive a free piece of TechRepublic gear (e.g. a coffee mug, a desk flag, or another item sporting the TechRepublic logo). This competition ends at 11:59 PM on Sunday, May 23. Good luck and let the best techie win!
Here is the scenario: An enterprise has developed an internal Word macro that will manipulate data into a standard form required for further processing and eventual Web site publication. This macro needs to be mass distributed to the entire organization. The distribution will have to accommodate Office installations including 2000, XP, and 2003. What is the best way to distribute this macro without creating a flurry of Help Desk requests from users?

37 replies

by joseph moore

Umm, Ok, I'll give this a shot.
I don't thing Group Policy can distribute a macro (I could be wrong though). So, the manual way. (I've done this once, so here is what I did). Not the best way, but at least everyone got the macro!
E-mail out a blank Word doc with the macro in it set to auto-run. Tell folks in the e-mail that if they get the macro signing message (the one that says if you want to allow the macro to run or not, that is in the newer versions of Office), to select Yes.
Also mention that the macro is NOT a virus, that this is a good thing for them to receive.
Also, set the e-mail to send a auto-reply-receipt thing, so you know who at least opened the e-mail.
There are probably better ways of doing this, but since it's just a macro, that makes things difficult, AFAIK!

by sgt_shultz

nah, i say it is gonna have to do with sms that fancy 'feature' in 2003...probably way overkill
i think i would export a toolbar and send it to everybody...

by dklippert

Save the macro in an ordinary document, perhaps with buttons to invoke it, if necessary.
The document can be located in any common area on the network.

by ajones17

Have everyone's workgroup templates folder set to the same location and put the macro in a word 2000 template stored in that folder.

by kitsch

why not try this:

using group policy, you could have a script that calls the word document when a user logs on, so they are automatically presented with it - the macro then either auto runs, or the document contains text that tells them to click the button below, invoking the macro. They could save the document to the desktop for use later. : )

by teajay9001

Copy the Project to the Startup Folder
When you place a template (*.dot) or Word add-in library (*.wll) in the Word Startup path, Word loads the macros in the file automatically on startup.

Using the Startup path for distribution therefore reduces administration considerably by allowing you to distribute or update a VBA project with a simple file copy. You will have to use a logon script during network logon, making this process as easy as adding a COPY command to a network logon script.

by zd(sa)

The most efficient way to do this (my opinion) is by using the SMS Orchestrator feature from Microsoft. Register the document as a new advertised \ scheduled application in the SMS admin service, activating it for each user on the specified domain. In this, a restart should follow for all users to install the new document and to be on the same page. In most cases the SMS service should be a dynamic activation (this was tested in a lock-down desktop environement) and therefore it probably wouldn't be necessary to restart or log-of, I think.

by ian.wessington

To ensure that macro's are loaded onto all machines they need to be added to the startup path. This will ensure that all files are loaded automatically whenever a user logs into the system. If you add a 'copy' command to the network logon script you can distribute new macro's or update older macro's with very little administration as all updates take place when the user logs on, no matter which machine they log onto. This is also a very useful way of distributing other items, for example templates.

Also using this method places the new information into the system in a way that takes away the problems of different versions of office. (we do of course assume that the macro has been written to be compatible with all versions)

by r1dharma

Setup servers for different regions of the organization. Create client software that will be installed on user's machine. Mail the client software to user's machine asking them to install it pointing to a region specific server. This client software periodically polls the sever for updates. Post the macro to be distributed on the server under "updates" section. Also, post required software images like office installtion images under pre-req software list. Client software when it sees there is an update, prompts user whether he/she needs or not. If Yes, checks what is required for the client machine/app on client machine to install the update (update could be a macro). If any pre-req software is required, it pulls it down to client machine from server/pre-req..later it pulls down the update (macro) and runs/install it on top of the office installation.

by olowea

This has been done. But it involves the use of Microsoft SMS server.

After the macro has been written and test, a VB script was written to deploy the macro (inside a word template) to target machines. It is the script itself that was pushed to client machine and invoked to run silently (using SMS).

When the script finished running, everyone would be informed via email about the new macro.

by kktaps

The creation of an internal word macro presuposes the existence of a certain style sheet or a template.

Two ways to do it (i am not a techie! but we have used macros succesfully without our remote help desk going mad!). Our Office versions stretch all the way from 97-2003, including XP.
1) Presuposing that the enterprise has a central repository for all documents/data and that the above style sheet/template exists: Modify the style sheet/template-add in the macro and place it in the central location. To prevent, mails from flooding the help desk send out auto-receipt mail stating that the revised template style sheet has been uploaded/placed and that if Word throws up the "this document contains macros: enable or disable command" users should enable.

2) A little more convoluted method in that some one from the MIS/Helpdesk will have to go around and check peoples computers: mail it across the organization and let users add it either to the normal.dot or the required document.

by azizcohos

The best, fastest and most time-tested method of
distributing a Word macro over a network is via
an email virus.

by softwareteacher

First Step is to create a Word Template and have the template contain a custom button that appears when the template is loaded as an ADD-IN.

Save the template in a shared location and add the following line to the login script:

Copy F:\Public\customform.dot "c:\documents and settings\%username%\application data\microsoft\templates"

When the user logins in the template and custom button will appear in Word allowing the user to click a button to pull up the custom form and allow data entry and any other macros desired by the IT department.

David Reid

by floyd.temeyer

1. Create the form, save as a template.
2. Put the form in folder(s) designated as workgroup templates for all groups.
3. Send e-mail instructions for form or place instructions on Homepage (Word/File/New, open form, complete form, e-mail form to...)
4. Save form (data only) from e-mail.
5. Import data and publish report to website.

by pamcse

1. Confirm that the macro works in all versions of Word used in the environment (W2000, Wxp, W2003, etc.)
2. Create a Word template document (e.g., data prep.dot) which includes the macro.
3. Write easy-to-follow steps* to save the document in the normal 'templates' folder.
*-Alt: Write a simple batch file (doubleclickme.bat)that saves the file to the Template folder. [Assumes common/default folder structure]
4. Create template instructions of how to use macro -- what it does, how to execute it, etc.
5. Incorporate the batch file, template instructions, and install step instructions into an email message. (Use self-extracting zip file if size requires it.)
6. Use 'Exchange Administrator' to disseminate the email message and attachment(s) to ALL accounts in GAL.
7. Send management directive/advisory to all supervisors advising them of new template, who the template pertains to, and how to install/use it.
8. Hope for the best! ...just kidding!!!

by bw2151

Email it to everyone in the company and tell them it's an application that will allow Bill Gates to send them $100,000 each by tracking their computer use. They will all be sure to open it and you've distributed your macro.

by kafriedma

Add the macro to the Normal.dot template. Attach a Word document via email with an autostart macro which will add the custom macro to the Normal.dot template.

by gpartridge

In this scenario I have created the macro and saved it in a normal.dot template in the G:\templates folder using Office 2000 for backwards compatibility.

Either create two login scripts. One for 95/98 users with the following command after the drive mappings:

C:\WINDOWS\COMMAND\XCOPY.EXE G:\TEMPLATES\*.* C:\WINDOWS\APPLIC~1\MICROSOFT\TEMPLATES /Q /E

and one for 2K/XP users, with the following command:

XCOPY G:\TEMPLATES\*.* C:\DOCUME~1\%USERNAME%\APPLIC~1\MICROSOFT\TEMPLATES /Q /Y /E

OR use the Gettype.exe command to detect the OS and use one script. Note that you will have to run the command remotely as the workstations will not have this command.

The script will copy the normal.dot file and any other templates in the folder to the users default templates folder in a way which is transparent to the users themselves.

by pr0x1

Damn... after reading through 17 responses I still thought I had the better answer... then I saw #18...
#18 is the winner. Put the macro in a file called normal.dot (can create one for different versions if oyu have to), and create a update that is executed on login that simply replaces that file pending the office version that is installed on that system (which can be detected very easily) with the correct normal.dot version.

by knudson

What I've done in enterprise deployments of Word macros is to use an ActiveX control that I wrote on a web page to handle deployment. The ActiveX control handles version checking, downloads an update if necessary, and launchs Word with the appropriate command line parameters to create a new document based on the macro. The ActiveX control is invoked by the users pressing a button on a web page on their corporate portal. This method ensures that users are always using the most recent version of the macro, it only downloads the macro if needed, and there is a single point in the enterprise where you have to place a new version of the macro and everyone will automatically pick it up as they need it. It also flattened the learning curve for users since they already were accustomed to using the corporate portal.

by martoncik

Use Altiris Deployment server to distribute to all users. No user intervention, no help desk calls, life is good. Whole process takes about 5 minutes to deploy. Much easier to use then SMS.

by mjbigelow

We want the macro to be automatically updated in case of changes and available to everybody, regardless of version. So, write an add-in in Word 2000 and install it on each computer. The best way to install it is to set it up in Install Shield and email the new application to every user in the org. Then save a copy of the add-in (not the Install Shield file) on a network drive that each person has access to. When a person starts up Word, the add-in will connect to the drive and check for a new version of itself. If it finds one, it automatically downloads the latest copy, alerts the user, closes Word, restarts and the new add-in is installed.

by rdalcourt

I would thing running the distribution of this macro could be done via the loggin script.

Get it to copy it to each machine and inform the users of what they need to do to use it.

by vernon

i would -
create a batch file --- with the macro sitting on the server...in this batch file - i'll check for which version of office is installed - if its 2000 / 2003.
i will send out to every user as an attachment, tellling them to double click the batch file.
once they double click - it will install the macro...

by markw

Actually, I'd want to ask some questions first:
-How big is the effort (i.e. 100 desktops, 10,000?)
-How is the network set up? NT Login, Active Directory, etc.
-What tools does the company already have? If they have a distribution tool in place, use it.
-How frequently will pushes like this need to be done? If it's going to be frequent, a push tool might be worth investing in, whereas if it's a one off, copying via a login script might be best.

The "best" answer is going to require a bit more information.

by murali bala

simply copy the document file (that contains the macro) to the company's web folder and email the hyperlink to all the users. Tell the users in the e-mail that if they get the macro security signing message, to click on Yes.

by gentlerf

This is how I would distribute the macro to those systems which have "standalone" Office suites yet are connected to the network: write a "login" script which checks for the presence of the macro on the client system and if the test comes up false, then downloads the macro to the client workstation. It is an old yet reliable method which gets the product distributed in short order. The login script method also ensures minimal helpdesk call-ins as the macro gets distributed as a standalone file, callable from within Word.

by register1

Send an email describing the macro and its uses with a link to a download location. Track the ID of the systems that access the download site. If the a different version of the macro is needed for the various OSes deployed, the server can ID the client platform and offer up the correct version.

by sarahbeth

The biggest thing all of the responses so far miss, is that many of the end users would rather do it the hard way, instead of using the new macros. Forcing them to use the new macro will involve a major slew of help desk calls. Not to mention, you will send it to a bunch of folks who do not use the form at all.

Assuming the enterprise has an intranet set up, with pages for different departments:
1. create the template, embedding the macros. This will actually allow the elimination of some of the macros, by creating drop down and fill in fields, and having the immovable text there already.
2. Write detailed instructions on using the new template to create a document. (Choose "file", "new", from the menu, then click the "other documents" tab....)
3. Write detailed instructions on using the new template features. This should be set up in Word, paginated and numbered, for an easy printout manual.
4. Write a set of instructions for how to download and save the new template. (click on the file to download, choose "save as" then browse to c:\documents and settings\\application data\microsoft\templates)

5. Deploy it on the intranet website, with the instructions to use as a document link, the instructions to dowload as text, and a paragraph explaining why it is great.

6. THEN email to everyone the intranet link!

by netmutt

Snapshot the machine with the macro on it and distribute it (using ZEN of course) with a force run. Easy!

by maxwell edison

Put the macro into 3 separate templates, one for each version of Office. Name the templates as follows:
Microsoft Word XP.dot
Microsoft Word 2000.dot
Microsoft Word 2003.dot

Send an email to everyone, attach all three templates to the email, and provide the following instructions:

Greetings ignorant user,

To make your life more fun and easy, we have created a new Word macro that will do everything you want. To install this macro, please follow these simple instructions:

1. Open a blank Word document.

2. Go to the Help menu. Go to About Microsoft Word (last item on the pull-down menu), and make a note of the version of Word you are using.

3. Write down the version. (Hint: This will appear on the top line, and say "Microsoft Word ______". Fill in the blank.)

4. Click OK.

5. Close Word.

6. Notice that this email has THREE file attachments. You need to save only ONE of them. Save the file attachment that matches your version of Word to the Startup Folder
Note: (Include instructions - path to startup folder)

>>>>End of instructions

A copy of the template (with only the macro) in the user's Startup folder will be loaded automatically each time the user starts Word.

Disclaimer to my answer: I use ONLY Office 97, so my instructions may have to be altered slightly to apply correctly to newer versions of Word. But that's how I'd do it.

by rpaton

We have approx 3000 desktops covering 6 sites and use AD and SMS. All our office installations are done from a single transform to ensure consistency in our images which are tightly locked down. We would apply the Macro to the transform and then use SMS to deploy the update through our scheduled release window which happens on a set night every week. This requires no user interaction.

by tabkey_2010

If all users are login on domain then Add the macro in the login script so it will be install without any difficulty also not effect to users work.

by harrisv

Edit the main login script, so when the users logon the macro will automatically run.

by juergen hartl

After reading all the answers, i came to the conclusion that ALL means of e-mail distributions are out of question. Any somewhat secure e-mail system will NOT allow .doc or .dot attechments.
Assuming that all Desktops are set up in a very similar way (enterprise!) a script on the server that copys the template with the macro in it, to the appropriate Word startup folder should do.

This discussion is closed to new replies.