Solved

Word VBA code to insert a document footer in all sections of a document

Posted on 2006-07-13
3
414 Views
Last Modified: 2008-02-01
I'm trying to write some VBA to automate the process of stripping out the first 13  characters of the document name and insert that result as a right-justified footer in all sections of my document.  Everything works EXCEPT I can get the for each loop to work for all the other sections of the document.  Here is my code.   I know it's something to do with the footer properties that I'm missing that casuing it not to work in all sections.  Any help would be greatly appreiciated!

oboefajitaman

Sub stripdocumentname()
 
    Dim namelcase As String
    Dim sec As Section
     
    namelcase = LCase(Mid(ActiveDocument.Name, 13))
                       
        If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
            ActiveWindow.Panes(2).Close
        End If
       
        If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
            ActivePane.View.Type = wdOutlineView Then
            ActiveWindow.ActivePane.View.Type = wdPrintView
        End If
       
        For Each sec In ActiveDocument.Sections
            ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = False
            ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
            Selection.ParagraphFormat.Alignment = wdAlignParagraphRight
            Selection.InsertBefore (namelcase)
            Selection.Font.Size = 7
            ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
        Next sec

End Sub
0
Comment
Question by:oboefajitaman
3 Comments
 
LVL 92

Expert Comment

by:Patrick Matthews
ID: 17103291
Hi oboefajitaman,

Within the loop, you never actually refer to any particular sections.  You'll need to fix that.

Regards,

Patrick
0
 

Author Comment

by:oboefajitaman
ID: 17103320
OK,  I'm just learning VBA and will need a little push here :)

How do I refer to all sections?
0
 
LVL 76

Accepted Solution

by:
GrahamSkan earned 500 total points
ID: 17104353
It's not clear exactly what your problem is, but I find it easier work on the document directly, instead of through the user interface (changing view, activating windows and using the selection).

This demonstrates:

Sub stripdocumentname()
 
    Dim namelcase As String
    Dim sec As Section
    Dim para As Paragraph
    Dim ftr As HeaderFooter
   
    namelcase = LCase(Mid(ActiveDocument.Name, 13))
                       
    For Each sec In ActiveDocument.Sections
        For Each ftr In sec.Footers 'Primary, First page and even page
            If ftr.Exists Then
                Set para = ftr.Range.Paragraphs(1)
                para.Alignment = wdAlignParagraphRight
                para.Range.InsertBefore namelcase
                para.Range.Font.Size = 7
            End If
        Next ftr
    Next sec

End Sub
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you work with Word a lot, you probably use styles. If you use styles a lot, you've probably balled your fist more often than not when working with the ribbon. In Word 2007/2010, one of the things that I find missing when using styles is a quic…
A few years ago I was very much a beginner at VBA, and that very much remains the case today.  I'll do my best to explain things as I go in the hope that other beginners can follow.  If you just want to check out a tool that creates a Select Case fu…
This video shows the viewer how to set up and create Footnotes in their document. Click on the References tab: Select "Insert Footnote": Type in desired text:
This Micro Tutorial well show you how to find and replace special characters in Microsoft Word. This is similar to carriage returns to convert columns of values from Microsoft Excel into comma separated lists.

948 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now