Solved

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

Posted on 2006-07-13
3
412 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

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

The Selection object is designed for user interaction. It has a Range property, so it can be used in most places that a Range object can. Recorded macros must use the Selection because they are simply copying what the user is doing. A Range prope…
Nice table. Huge mess. Maybe this was something you created way back before you figured out tabs or a document you received from someone else. Either way, using the spacebar to separate the columns resulted in a mess. Trying to convert text to t…
In this video, we show how to convert an image-only PDF file into a PDF Searchable Image file, that is, a file with both the image (typically from scanning) and text, which is created in an automated fashion with Optical Character Recognition (OCR) …
This video shows where to find the word count, how to display it, and what it breaks down to in Microsoft Word.

746 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

9 Experts available now in Live!

Get 1:1 Help Now