Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.word.pagelayout
|
|||
|
|||
Macro to place Insert information into a footer
In Word 2003 I had a lovely macro that I used to place the filename, author,
creation date, revision date, and page number into a footer that repeated on every page. I would open a blank file, save it to the filename I wanted it to have, run my macro and poof the footer was exactly as I wanted. I cannot make Word 2007 do that for me. The macro blows up with Run-time error '5941': The requested member of the collection does not exist. I created the macro using the record device in macro. Debug highlights the two lines " ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True" Here is the full code: Sub Foot() ' ' Foot Macro ' Create Footer for Manuscripts ' WordBasic.ViewFooterOnly ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "FILENAME ", PreserveFormatting:=True Selection.TypeText Text:=" " Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "AUTHOR ", PreserveFormatting:=True Selection.TypeText Text:=" " Selection.InsertDateTime DateTimeFormat:="MMMM d, yyyy", InsertAsField:= _ False, DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern, _ InsertAsFullWidth:=False Selection.TypeText Text:=" " Selection.InsertDateTime DateTimeFormat:="M/d/yyyy h:mm am/pm", _ InsertAsField:=True, DateLanguage:=wdEnglishUS, CalendarType:= _ wdCalendarWestern, InsertAsFullWidth:=False Selection.TypeText Text:=" " ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub |
#2
Posted to microsoft.public.word.pagelayout
|
|||
|
|||
Macro to place Insert information into a footer
There's a lesson he Don't always assume that the macro recorder
does the right thing. In fact, there's an article about its foibles: http://www.word.mvps.org/FAQs/Macros...ordedMacro.htm In this case, the recorder is completely wrong when it assumes that the building block you clicked in the gallery came from the template attached to the active document. In fact, it comes from the Building Block.dotx template. There is no way to record the code that's necessary to find that building block: Sub Foot() Dim oTmp As Template, BBTmp As Template For Each oTmp In Templates If LCase(oTmp.Name) = "building blocks.dotx" Then Set BBTmp = oTmp Exit For End If Next If Not BBTmp Is Nothing Then WordBasic.ViewFooterOnly BBTmp.BuildingBlockEntries("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True ' rest of code here End If End Sub -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. On Wed, 23 Sep 2009 15:54:01 -0700, Liz130 wrote: In Word 2003 I had a lovely macro that I used to place the filename, author, creation date, revision date, and page number into a footer that repeated on every page. I would open a blank file, save it to the filename I wanted it to have, run my macro and poof the footer was exactly as I wanted. I cannot make Word 2007 do that for me. The macro blows up with Run-time error '5941': The requested member of the collection does not exist. I created the macro using the record device in macro. Debug highlights the two lines " ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True" Here is the full code: Sub Foot() ' ' Foot Macro ' Create Footer for Manuscripts ' WordBasic.ViewFooterOnly ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "FILENAME ", PreserveFormatting:=True Selection.TypeText Text:=" " Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "AUTHOR ", PreserveFormatting:=True Selection.TypeText Text:=" " Selection.InsertDateTime DateTimeFormat:="MMMM d, yyyy", InsertAsField:= _ False, DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern, _ InsertAsFullWidth:=False Selection.TypeText Text:=" " Selection.InsertDateTime DateTimeFormat:="M/d/yyyy h:mm am/pm", _ InsertAsField:=True, DateLanguage:=wdEnglishUS, CalendarType:= _ wdCalendarWestern, InsertAsFullWidth:=False Selection.TypeText Text:=" " ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub |
#3
Posted to microsoft.public.word.pagelayout
|
|||
|
|||
Macro to place Insert information into a footer
Okay and I thank you. I cut and pasted as instructed, removing the offending
code in the process. It no longer bombs and it does create a footer and position me in the footer but it does not automatically fill in the fields. Waqs that capability sacrificed in 2007? "Jay Freedman" wrote: There's a lesson he Don't always assume that the macro recorder does the right thing. In fact, there's an article about its foibles: http://www.word.mvps.org/FAQs/Macros...ordedMacro.htm In this case, the recorder is completely wrong when it assumes that the building block you clicked in the gallery came from the template attached to the active document. In fact, it comes from the Building Block.dotx template. There is no way to record the code that's necessary to find that building block: Sub Foot() Dim oTmp As Template, BBTmp As Template For Each oTmp In Templates If LCase(oTmp.Name) = "building blocks.dotx" Then Set BBTmp = oTmp Exit For End If Next If Not BBTmp Is Nothing Then WordBasic.ViewFooterOnly BBTmp.BuildingBlockEntries("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True ' rest of code here End If End Sub -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. On Wed, 23 Sep 2009 15:54:01 -0700, Liz130 wrote: In Word 2003 I had a lovely macro that I used to place the filename, author, creation date, revision date, and page number into a footer that repeated on every page. I would open a blank file, save it to the filename I wanted it to have, run my macro and poof the footer was exactly as I wanted. I cannot make Word 2007 do that for me. The macro blows up with Run-time error '5941': The requested member of the collection does not exist. I created the macro using the record device in macro. Debug highlights the two lines " ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True" Here is the full code: Sub Foot() ' ' Foot Macro ' Create Footer for Manuscripts ' WordBasic.ViewFooterOnly ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "FILENAME ", PreserveFormatting:=True Selection.TypeText Text:=" " Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "AUTHOR ", PreserveFormatting:=True Selection.TypeText Text:=" " Selection.InsertDateTime DateTimeFormat:="MMMM d, yyyy", InsertAsField:= _ False, DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern, _ InsertAsFullWidth:=False Selection.TypeText Text:=" " Selection.InsertDateTime DateTimeFormat:="M/d/yyyy h:mm am/pm", _ InsertAsField:=True, DateLanguage:=wdEnglishUS, CalendarType:= _ wdCalendarWestern, InsertAsFullWidth:=False Selection.TypeText Text:=" " ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub |
#4
Posted to microsoft.public.word.pagelayout
|
|||
|
|||
Macro to place Insert information into a footer
The Author and Date fields should update automatically, but the
Filename field never will (http://support.microsoft.com/kb/832897). This is not new behavior in Word 2007. To work around this, add a line just before the End Sub: Selection.Paragraphs(1).Range.Fields.Update Also create the AutoOpen macro described by the KB article. On Wed, 23 Sep 2009 18:42:01 -0700, Liz130 wrote: Okay and I thank you. I cut and pasted as instructed, removing the offending code in the process. It no longer bombs and it does create a footer and position me in the footer but it does not automatically fill in the fields. Waqs that capability sacrificed in 2007? "Jay Freedman" wrote: There's a lesson he Don't always assume that the macro recorder does the right thing. In fact, there's an article about its foibles: http://www.word.mvps.org/FAQs/Macros...ordedMacro.htm In this case, the recorder is completely wrong when it assumes that the building block you clicked in the gallery came from the template attached to the active document. In fact, it comes from the Building Block.dotx template. There is no way to record the code that's necessary to find that building block: Sub Foot() Dim oTmp As Template, BBTmp As Template For Each oTmp In Templates If LCase(oTmp.Name) = "building blocks.dotx" Then Set BBTmp = oTmp Exit For End If Next If Not BBTmp Is Nothing Then WordBasic.ViewFooterOnly BBTmp.BuildingBlockEntries("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True ' rest of code here End If End Sub -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. On Wed, 23 Sep 2009 15:54:01 -0700, Liz130 wrote: In Word 2003 I had a lovely macro that I used to place the filename, author, creation date, revision date, and page number into a footer that repeated on every page. I would open a blank file, save it to the filename I wanted it to have, run my macro and poof the footer was exactly as I wanted. I cannot make Word 2007 do that for me. The macro blows up with Run-time error '5941': The requested member of the collection does not exist. I created the macro using the record device in macro. Debug highlights the two lines " ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True" Here is the full code: Sub Foot() ' ' Foot Macro ' Create Footer for Manuscripts ' WordBasic.ViewFooterOnly ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "FILENAME ", PreserveFormatting:=True Selection.TypeText Text:=" " Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "AUTHOR ", PreserveFormatting:=True Selection.TypeText Text:=" " Selection.InsertDateTime DateTimeFormat:="MMMM d, yyyy", InsertAsField:= _ False, DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern, _ InsertAsFullWidth:=False Selection.TypeText Text:=" " Selection.InsertDateTime DateTimeFormat:="M/d/yyyy h:mm am/pm", _ InsertAsField:=True, DateLanguage:=wdEnglishUS, CalendarType:= _ wdCalendarWestern, InsertAsFullWidth:=False Selection.TypeText Text:=" " ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub |
#5
Posted to microsoft.public.word.pagelayout
|
|||
|
|||
Macro to place Insert information into a footer
It would be as well to also add a line to save the document before updating
the filename field, so that there is a filename to display, rather than the default Document(n)? -- Graham Mayor - Word MVP My web site www.gmayor.com Word MVP web site http://word.mvps.org Jay Freedman wrote: The Author and Date fields should update automatically, but the Filename field never will (http://support.microsoft.com/kb/832897). This is not new behavior in Word 2007. To work around this, add a line just before the End Sub: Selection.Paragraphs(1).Range.Fields.Update Also create the AutoOpen macro described by the KB article. On Wed, 23 Sep 2009 18:42:01 -0700, Liz130 wrote: Okay and I thank you. I cut and pasted as instructed, removing the offending code in the process. It no longer bombs and it does create a footer and position me in the footer but it does not automatically fill in the fields. Waqs that capability sacrificed in 2007? "Jay Freedman" wrote: There's a lesson he Don't always assume that the macro recorder does the right thing. In fact, there's an article about its foibles: http://www.word.mvps.org/FAQs/Macros...ordedMacro.htm In this case, the recorder is completely wrong when it assumes that the building block you clicked in the gallery came from the template attached to the active document. In fact, it comes from the Building Block.dotx template. There is no way to record the code that's necessary to find that building block: Sub Foot() Dim oTmp As Template, BBTmp As Template For Each oTmp In Templates If LCase(oTmp.Name) = "building blocks.dotx" Then Set BBTmp = oTmp Exit For End If Next If Not BBTmp Is Nothing Then WordBasic.ViewFooterOnly BBTmp.BuildingBlockEntries("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True ' rest of code here End If End Sub -- Regards, Jay Freedman Microsoft Word MVP FAQ: http://word.mvps.org Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit. On Wed, 23 Sep 2009 15:54:01 -0700, Liz130 wrote: In Word 2003 I had a lovely macro that I used to place the filename, author, creation date, revision date, and page number into a footer that repeated on every page. I would open a blank file, save it to the filename I wanted it to have, run my macro and poof the footer was exactly as I wanted. I cannot make Word 2007 do that for me. The macro blows up with Run-time error '5941': The requested member of the collection does not exist. I created the macro using the record device in macro. Debug highlights the two lines " ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True" Here is the full code: Sub Foot() ' ' Foot Macro ' Create Footer for Manuscripts ' WordBasic.ViewFooterOnly ActiveDocument.AttachedTemplate.BuildingBlockEntri es("Plain Number 2"). _ Insert Whe=Selection.Range, RichText:=True Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "FILENAME ", PreserveFormatting:=True Selection.TypeText Text:=" " Selection.Fields.Add Range:=Selection.Range, Type:=wdFieldEmpty, Text:= _ "AUTHOR ", PreserveFormatting:=True Selection.TypeText Text:=" " Selection.InsertDateTime DateTimeFormat:="MMMM d, yyyy", InsertAsField:= _ False, DateLanguage:=wdEnglishUS, CalendarType:=wdCalendarWestern, _ InsertAsFullWidth:=False Selection.TypeText Text:=" " Selection.InsertDateTime DateTimeFormat:="M/d/yyyy h:mm am/pm", _ InsertAsField:=True, DateLanguage:=wdEnglishUS, CalendarType:= _ wdCalendarWestern, InsertAsFullWidth:=False Selection.TypeText Text:=" " ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument End Sub |
Reply |
Thread Tools | |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Header/footer information | Microsoft Word Help | |||
How do I insert a doc with a footer into another doc with a macro | Microsoft Word Help | |||
How do place a usable footer in a Word form? | Microsoft Word Help | |||
How do I lock information in a header/footer? | Microsoft Word Help | |||
Inserting merged information into a footer | Microsoft Word Help |