CAUSE
By design, the Visual Basic for Applications AppendToSpike method can only be used with the Word default Normal template. The AppendToSpike Help example is misleading in that it uses the following Visual Basic for Applications command set:
Set myTemplate = ActiveDocument.AttachedTemplate
Using this command set when the active document is attached to any template
other than the Normal template will result in a run-time error.
RESOLUTION
Microsoft provides programming examples for illustration only, without warranty either
expressed or implied, including, but not limited to, the implied warranties of
merchantability and/or fitness for a particular purpose. This article assumes
that you are familiar with the programming language being demonstrated and the
tools used to create and debug procedures. Microsoft support professionals 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 needs. If you have limited programming experience, you may
want to contact a Microsoft Certified Partner or the Microsoft fee-based
consulting line at (800) 936-5200. For more information about Microsoft Certified
Partners, please visit the following Microsoft Web site:
For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site:
For more information about how to use the sample code in this article,
click the article number below to view the article in the Microsoft
Knowledge Base:
173707
OFF97: How to Run Sample Code from Knowledge Base Articles
To resolve this issue, change the code copied from the AppendToSpike Method Help example.
In the following AppendToSpike Method example, the command set,
NormalTemplate.AutoTextEntries,
ActiveDocument.AttachedTemplate
found in the original AppendToSpike Help example.
Using NormalTemplate.AutoTextEntries assures the example will work regardless of the template that is currently attached to the active document.
Sub MyAppendToSpike()
Dim atEntry As AutoTextEntry
Selection.Collapse Direction:=wdCollapseStart
For Each atEntry In NormalTemplate.AutoTextEntries
If atEntry.Name = "Spike" Then atEntry.Delete
Next atEntry
With NormalTemplate.AutoTextEntries
.AppendToSpike Range:=ActiveDocument.Words(3)
.AppendToSpike Range:=ActiveDocument.Words(1)
.Item("Spike").Insert Where:=Selection.Range
End With
End Sub
For more information about the AppendToSpike method, from the Visual Basic Editor, click
Contents and Index on the
Help menu, click the
Index tab in Microsoft Visual Basic Help, type the following text
autotextentries collection object
and then double-click the selected text to go to the
"AppendToSpike Method" topic. If
you are unable to find the information you need, ask the Office
Assistant.