Automatically naming documents with data in form fields?

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I want to save documents using data that I have entered in form fields as the
title.
 
I want to save documents using data that I have entered in form fields as the
title.

You'll need a macro to do that. Because you've given almost no details
about your documents, it's hard to recommend what should be in the
macro. At a minimum you'll need a statement like this:

ActiveDocument.SaveAs FileName:= _
ActiveDocument.FormFields("CaseName").Result & ".doc"

but replace "CaseName" with the actual name of the form field
containing the text that forms the first part of the file name.

There are a lot of other things to think about. For instance:

- If you want the file to be saved in a folder other than the one
listed as the Documents folder in Tools > Options > File Locations,
you'll have to put that path into the FileName expression.

- You'll have to check the field result to make sure it isn't empty
and doesn't contain any characters that aren't legal in a file name.

- You'll need error handling in case the folder isn't available or
something else unexpected happens.

- If your macro is named FileSaveAs, it will run instead of the
built-in SaveAs command (see
http://www.word.mvps.org/FAQs/MacrosVBA/InterceptSavePrint.htm). That
may or may not be what you want to do.

--
Regards,
Jay Freedman
Microsoft Word MVP
Email cannot be acknowledged; please post all follow-ups to the
newsgroup so all may benefit.
 
I have the form fields named text1, text2, etc. I want to save the file as
text1 text2 (today's date) unit text7.doc
 
In that case, you want code like this, which constructs the file name in a
string, piece by piece, and then uses the string to save the file:

Dim myFile As String
With ActiveDocument.FormFields
myFile = .Item("Text1").Result
myFile = myFile & " " & _
.Item("Text2").Result
myFile = myFile & " " & _
Format(Now, "dd MMM yyyy")
myFile = myFile & " unit " & _
.Item("Text7").Result
myFile = myFile & ".doc"
End With
ActiveDocument.SaveAs FileName:=myFile

You can choose the format you want for the date, but be careful not to put
in any characters that aren't valid in a file name.

All the other considerations I listed earlier still need to be taken care
of.

--
Regards,
Jay Freedman
Microsoft Word MVP
Email cannot be acknowledged; please post all follow-ups to the newsgroup so
all may benefit.
 
That worked beautifully! However, I have more than one template and would
like to automatically save the document in a particular file, depending on
which template I am using. For example, any document made with template BAM
would be saved in a file named "Bay Area Mobile" using data from the form
fields as its title.
 
Define a string that contains the path to the folder you want, and
attach it to the beginning of the file name:

Dim myFile As String
Dim myPath As String
myPath = "C:\Bay Area Mobile\"

' this part is the same as in the previous macro
With ActiveDocument.FormFields
myFile = .Item("Text1").Result
myFile = myFile & " " & _
.Item("Text2").Result
myFile = myFile & " " & _
Format(Now, "dd MMM yyyy")
myFile = myFile & " unit " & _
.Item("Text7").Result
myFile = myFile & ".doc"
End With

myFile = myPath & myFile

ActiveDocument.SaveAs FileName:=myFile

In each template, change the line that assigns the value of myPath to
the proper folder for that template's documents.

--
Regards,
Jay Freedman
Microsoft Word MVP
Email cannot be acknowledged; please post all follow-ups to the
newsgroup so all may benefit.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top