1
votes

I'm currently trying to write a script which would run through a word document and output to a text file all the lines that are written in a certain font.

So if I had the document:

"This is the first line of the document. This is the second line of the document. This is the third line of the document."

And say normal lines are Times New Roman, bold is Arial, and italics is Sans Serif.

Then, ideally, I could parse the document for all lines in Arial and the text file output would have the line:

This is the second line of the document.

Any idea on how to do this from a script? I was thinking about first converting the doc into xml, but I do not think this is possible within a script.

1

1 Answers

1
votes

You'll want to use the FIND object, and the FONT property of the FIND object.

So, something like this:

Public Sub FindTest()
    Dim r As Range
    Set r = ActiveDocument.Content
    With r.Find
        .ClearFormatting
        .Style = "SomeStyleName"
        Do While .Execute(Forward:=True, Format:=True) = True
            '---- we found a range
            Dim duperange As Range
            Set duperange = r.Duplicate
            Debug.Print r.Text
        Loop
    End With
End Sub

Note that where I've specified Style, you could specify font formatting via the FIND.FONT object, or various other formatting options. Just browse around the FIND object to see what's available.