VBA Code


Documents can sometimes lose their connection to their template
Need to re-attach if invalid or cannot be found.


application.organizercopy 

There is a templates collection for all the templates

Dim objTemplate As Template 
For Each objTemplate In Application.Templates
Next objTemplate


You cannot create a new template using the templates collection.
Templates are created by first creating a document and then saving it as a template, using SaveAs

ActiveDocument.SaveAs "newtemplate" wdFormatTemplate 


A template is attached to the templates collection whenever you:

  • Use the Documents.Open method

  • Use the Documents.Add method

  • Use the AttachedTemplate property to change the template for a document (i.e. replacing the existing template)


You can use the Application.NormalTemplate property to return a template object that refers to the Normal Template

Dim objTemplate As Template 
Set objTemplate = Application.NormalTemplate


Returns the template attached to the active document

Dim objTemplate As Template 
Set objTemplate = ActiveDocument.AttachedTemplate


Creates a new document from an existing document

Documents.Add Template:="C:\Temp\Template.doc" 
              NewTemplate:=True / False


ActiveDocument.AttachedTemplate.Name 
ActiveDocument.AttachedTemplate.FullName

Opens a template that is in the Templates collection as a document.

ActiveDocument.AttachedTemplate.OpenAsDocument 

Dim objDocument As Document 
   Set objDocument = ActiveDocument.AttachedTemplate.OpenAsDocument
   If objDocument.Content.Text = vbCr Then
'document does not contain any text
   Else
'document does contain text
   End If
   objDocument.Close SaveChanges:=wdSaveOptions.wdDoNotSaveChanges

The following code saves a copy of the Normal.dot template

Set objDocument = NormalTemplate.OpenAsDocument 
objDocument.SaveAs FileName:="C:\Temp\Backup.dot"
objDocument.Close SaveChanges:=wdSaveOptions.wdDoNotSaveChanges


Copying styles from a template

objDocument.CopyStylesFromTemplate 


Using the Organiser

Application.OrganizerCopy Source:="C:\Temp\Normal.dot", _ 
                          Destination:="C:\Temp\Document.doc", _
                          Name:="StyleName_1", _
                          Object:=wdOrganizerObject.wdOrganizerObjectStyles


© 2019 Better Solutions Limited. All Rights Reserved. © 2019 Better Solutions Limited TopPrevNext