Error message when you run a recorded macro to insert a cover page in Word 2007: "The requested member of the collection does not exist"

Symptoms

Consider the following scenario. You record a macro to insert a cover page in a Microsoft Office Word 2007 document. You then run the recorded macro. In this scenario, the cover page is not inserted. Additionally, you receive the following error message:
Runtime Error '5941':

The requested member of the collection does not exist.

Workaround

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.

To work around this issue, rewrite the recorded macro to use the Templates class.

To do this in Word 2007, follow these steps:
  1. On the Status bar, click Play Macro.
  2. Under Macro name, click to select the recorded macro, and then click Edit.
  3. Replace the recorded macro code with macro code that resembles the following macro code:
    Sub Macro1()

    For Each mytemplate In Templates
    If mytemplate.Name = "Building Blocks.dotx" Then _
    mytemplate.BuildingBlockEntries("Pinstripes").Insert Where:=Selection.Range, RichText:=True
    Next

    End Sub
    Note If you want to use a different cover page, replace "Pinstripes" with the name of the cover page that you want.
  4. On the File menu, click Close and Return to Microsoft Word.

More Information

When you record a macro in Word 2007 to insert the "Pinstripes" cover page, Word 2007 records the following macro code:
Sub Macro1()
'
' Macro1 Macro
'
'
ActiveDocument.AttachedTemplate.BuildingBlockEntries( _
"PlaceholderAutotext_0").Insert Where:=Selection.Range, RichText:=True
ActiveDocument.AttachedTemplate.BuildingBlockEntries( _
"PlaceholderAutotext_1").Insert Where:=Selection.Range, RichText:=True
ActiveDocument.AttachedTemplate.BuildingBlockEntries( _
"PlaceholderAutotext_2").Insert Where:=Selection.Range, RichText:=True
ActiveDocument.AttachedTemplate.BuildingBlockEntries("Pinstripes").Insert _
Where:=Selection.Range, RichText:=True
End Sub
Properties

Article ID: 922846 - Last Review: Apr 25, 2008 - Revision: 1

Feedback