Solved

changing text inside footer/header by vb code

Posted on 2008-06-10
3
231 Views
Last Modified: 2008-06-24
hi,

is there a way to say in vb under word doc:
dim n as integer
n=0
for each word in this document's headers and footers (lets say there's only one duplicated header and footer for every page), n=n+1? (i know it will also count commas, spaces etc.. i dont care)

thanks!
0
Comment
Question by:Or_A
  • 2
3 Comments
 
LVL 16

Expert Comment

by:robinu
ID: 21750382
In Word, in VBA, you could count the words as in the following code example.
If that's what you want.
'Header
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Debug.Print Selection.Words.Count
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
 
'Footer
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Debug.Print Selection.Words.Count
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

Open in new window

0
 

Author Comment

by:Or_A
ID: 21750620
thanks,
but my real intension is not counting the words, but to replace words that begins with FLD with lets say the word Try, so i planned to put this code lines:

dim str as string
str="Try"
(for each word in the headers and footers)
for n=1 to (footer/header.words.count - not sure how to write this)
  if left$(trim$(words(n).text,3)="FLD" then (here too, im not sure if "words(n)" is correct to write)
  words(n).text=str
next n

can you please arrange together what you wrote and what i wrote to one complete code?
thanks!
0
 
LVL 16

Accepted Solution

by:
robinu earned 500 total points
ID: 21750676
Yes, sure. Something like this:

    Dim lIdx As Long
    Dim sReplace As String
    
    sReplace = "Try"
    
    'header
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    For lIdx = 1 To Selection.Words.Count
        If Left$(Selection.Words(lIdx).Text, 3) = "FLD" Then
            Selection.Words(lIdx).Text = sReplace & " "
        End If
    Next lIdx
 
    'footer
    ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
    For lIdx = 1 To Selection.Words.Count
        If Left$(Selection.Words(lIdx).Text, 3) = "FLD" Then
            Selection.Words(lIdx).Text = sReplace & " "
        End If
    Next lIdx
 
    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument

Open in new window

0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
I would like to show you some basics you can do with Mailings in MS Word. It´s quite handy feature you can use for creating envelopes, labels, personalized letters etc. First question could be what is this feature good for? Mailing can really he…
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 the viewer how to set up and create Footnotes in their document. Click on the References tab: Select "Insert Footnote": Type in desired text:

827 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