In a template document I want to create a macro that when the template is opened and a new document is pulled up, the "author" name will automatically insert into the footer. Is this possible? I don't know how to write macro code and all the instructions I've found is very confusing to me. I used to be able to create auto-execute macros in very old version of Word but the 2010 is very confusing.
5 Answers
Hit Alt + F11 and on the left you'll see your project and Microsoft Word Objects
Put the following code into ThisDocument
in the visual basic editor
Private Sub Document_New()
With ActiveDocument.Sections(1)
.Footers(wdHeaderFooterPrimary).Range.Text = ActiveDocument.BuiltInDocumentProperties("Author") & " " & Now
End With
End Sub
Close VB Editor and save as Word Macro-Enabled Template
-
-
Didn't work for you or didn't work for someone else? Are macros enabled? Jul 31, 2013 at 20:53
-
when I open the template to the new document there is a message across the top that says macrose disabled, I click on it the enable, but the macro didn't run. Jul 31, 2013 at 20:56
-
-
That worked! However, I didn't realize it would replace what was already in the footer...how would I modify the above text to include the Time/Date info??? Jul 31, 2013 at 23:17
A macro is not necessary to automatically insert the author's name. It can be done using just a template and the Author field. To do this:
- Open a new document.
- Add a footer to the document (fastest way is to double click just above the bottom of the page)
- In the Header & Footer Tools ribbon, click Quick Parts then Document Property and Author.
- Save the document as a Template (.dotx). Do not save it as a regular document (.docx).
To create a new document and have it automatically grab the author's name, just double click the template file or, from the New document window, select New from existing and browse to it. The new document will open as a DOCX file, not the DOTX template. The original author's name will be grabbed by the document and it can be saved as a normal document. The name should not change unless someone opens the footer and explicitly updates the field.
Note: To edit the template itself after closing, hold down Shift while right clicking the file, then select Edit. Opening it otherwise will turn it into a standard document, not a template.
2nd Note: You can add Document Property fields to a regular DOCX document, but it will usually re-update the author each time the document is opened and saved (i.e., grabbing the name of whoever opens it, not the original author).
-
Thanks for this information, but this is not what I am attempting to do. Example: we have a template that different people may open and each time we open this template we have to remember to go into the footer and change our name as the author of the document. Sometimes, the use forgets. Creating a macro that would automatically insert the Author's name of the person that is using the template to create a new document e.g. a pre-designed form, is what I am trying to do here. Jul 31, 2013 at 23:14
-
@user242332, A field in the footer will update automatically when the document is opened. This answer and the accepted answer using the macro do the exact same thing, the only difference is that the one with the macro is a lot more work and not as concise. BTW perhaps you are looking for the UserName field which inserts the name of the computer (i.e the name found under Control Panel -> System).– AdamAug 1, 2013 at 11:47
If you add the Developer tab (Go to File|Options|Customize Ribbon then under Customize the Ribbon and under Main Tabs, select the Developer check box), you can use the macro recorder to do what you want.
- In the Code section, select Record Macro
- Choose whether you want a button or keyboard shortcut to trigger it and where to save the macro it creates
Record you macro - something like this should do it:
- Insert|Footer|Edit Footer
- Insert|Quick Parts|Document Property|Author
Then press Stop Recording
That should generate you a macro to do roughly what you want. You'll need to play around a bit if you want to specify where in the footer you want the Author field placed.
-
I did this and it wouldn't do it as a Automatic Macro when the template document is opened to a new document. Jul 31, 2013 at 21:00
-
In order to run automatically, the code you recorded needs to be added to the
Private Sub Document_Open()
section of your code. It cannot be left in the Sub created automatically when you did the recording. It also must be saved as a Macro-enabled document (DOCM). Jul 31, 2013 at 21:20
user242332's advice above regarding the UserName field is the way to go. I've been building a lot of .dotx files lately and have been experimenting with the use of field codes and they are awesome. To set up the UserName field in the footer go to: http://office.microsoft.com/en-us/word-help/insert-and-format-field-codes-in-word-2007-HA010338798.aspx
Essentially, you just need to place your cursor where you want the author's name in the footer, go to the Insert tab and select Quick Parts and then go to the fields section.
Name Macro "AutoOpen" and it will run automatically everytime you open a document... :)