Excel VBA: setting font style and size while adding text to MS-Word

excel, fonts, ms-word, vba

Solution

Would something like this fit the bill?

Sub CreateNewWordDoc()
  Dim doc As Word.Document
  Dim toAdd As String
  Dim lengthAdded As Long
  Dim selStart As Long

  Set doc = ActiveDocument
  toAdd = "Hello World" ' What to add?
  lengthAdded = Len(toAdd) ' For later!
  selStart = Selection.Start ' Where to add the text?

  doc.Range(selStart).InsertAfter (toAdd)
  With doc.Range(selStart, selStart + lengthAdded)
    ' Here's where the font stuff happens
    .Font.Name = "Arial"
    .Font.Size = 15
  End With

End Sub

Note that I've got rid of most of the code which isn't directly pertinent to the question. Hopefully you can extrapolate from my code to yours!

Problem

I want to create a word document using Excel VBA, and add text with various font styles and sizes. Here is my code: ``` Sub CreateNewWordDoc() Dim wrdDoc As Word.Document Dim wrdApp As Word.Application Set wrdApp = CreateObject("Word.Application") Set wrdDoc = wrdApp.Documents.Add Dim charStart As Long Dim charEnd As Long With wrdDoc For i = 1 To 3 charStart = wrdApp.Selection.Start .Content.InsertAfter (" some text") charEnd = wrdApp.Selection.End If i = 1 Then 'set the text range (charStart,charEnd) to e.g. Arial, 8pt Else If i = 2 Then 'set the text range (charStart,charEnd) to e.g. Calibri, 10pt Else 'set the text range (charStart,charEnd) to e.g. Verdana, 12pt End If End If Next i .Content.InsertParagraphAfter .SaveAs ("testword.docx") .Close ' close the document End With wrdApp.Quit Set wrdDoc = Nothing Set wrdApp = Nothing End Sub ``` How can I define font style and size on-the-fly in the if-else statement above?

Original source