Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Insert bold text into Word using VBA

Tags:

ms-word

excel

vba

I wrote a little script that exports certain Excel cell values into Word. However, certain inserts need to be bold. And there doesn't seem to be an easy way to do this.

This code loops through the records and adds them to the Word document


Do While intRow < intTotalRows + 1

                strTemp = " ;b;" & Range("G" & intRow).FormulaR1C1 & " " & Range("I" & intRow).FormulaR1C1 & ";e; "

                If strTemp <> strCur Then
                    strCur = strTemp
                    .Content.Font.Bold = True
                    .Content.InsertAfter strCur
                End If

                .Content.Font.Bold = False
                .Content.InsertAfter Range("A" & intRow).FormulaR1C1 & " - " & Range("C" & intRow).FormulaR1C1 & " " & Range("E" & intRow).FormulaR1C1 & " * "

            intRow = intRow + 1
        Loop

Turning on bold before inserting text and turning it off again afterwards seems like the most logical solution, so it does not work.

I then tried to find and replace the text, but that also did not work:


        .Content.Find.ClearFormatting
        With .Content.Find
            .Text = ";b;" 'Look for
            .Replacement.Text = ";bbb;" 'Replace with
            .Forward = True
            .Wrap = wdFindContinue
            .Format = False
            .MatchCase = False 
            .MatchWholeWord = False
            .MatchWildcards = False 
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With

    .Content.Find.Execute Replace:=wdReplaceAll

like image 696
skerit Avatar asked Oct 19 '10 09:10

skerit


1 Answers

Replace .InsertAfter with .TypeText. Inserting works like pasting whereas TypeText works like if you would actually type the text on the keyboard.

like image 82
Dirk Vollmar Avatar answered Sep 24 '22 20:09

Dirk Vollmar