When using MSWord object code, be sure to test it first by opening MSWord before trying the code and vice-versa. Then close each. If the code does not account for this scenario, closing takes a bit of work.

I normally just use late binding methods for MSWord creations which makes it easier to account for the scenario above. However, I prefer early binding so that I can use intellisense while coding. In this example, I use both to get the best of both methods. There are some other methods to account for this scenario but they can get busy.

Focus can be an issue so I added some API routines. You may still have a bit of a focus issue.

If you don't need to edit the MSWord file when it is created, putting the code into an MSWord object and saving it as a doc file is handy. This method offers some other advantages.

When creating the doc file from scratch like this, record a macro in MSWord and this will show how to code the commands that you might want to use in your code.

You can easily use this code in the previous example xls. Rename the other sub or reference this sub with another name. Put this code in its own module. API declarations must be made at the top of a module.

[VBA]'TypeText methods:
'http://www.excelforum.com/excel-programming/650672-populate-word-document-from-excel.html#post1946784
'http://www.excelforum.com/showthread.php?p=1946784
Declare Function FindWindow _
Lib "user32" _
Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Declare Function BringWindowToTop _
Lib "user32" _
(ByVal hwnd As Long) As Long
Sub TransferData()
'Add Reference for early binding: Microsoft Word 11.00 Object Libray (MSWord.olb)
'Early Binding
Dim cRow As Long
Dim doc As Word.Document
Dim wa As Word.Application
Dim wordRunning As Boolean, rc As Long

rc = FindWindow("OpusApp", vbNullString)
wordRunning = Not rc = 0
On Error Resume Next
Set wa = GetObject(, "Word.Application")
If Not wordRunning Then Set wa = New Word.Application

cRow = ActiveCell.Row
Set doc = wa.Documents.Add(DocumentType:=wdNewBlankDocument)
doc.Activate
wa.Visible = True
wa.ScreenUpdating = False
'BringWindowToTop FindWindow(vbNullString, wa.Caption)
With wa.Selection
'Transfer the data
.TypeText Join(WorksheetFunction.Transpose(WorksheetFunction.Transpose( _
Range("A" & cRow & "" & cRow))), vbCrLf)
HR wa, 3 'enter .TypeParagraph 3 times
.Font.Bold = True
.TypeText "Attention: "
.Font.Bold = False
.TypeText Excel.Range("E" & cRow).Value
HR wa, 3
.TypeText "This is to show you an example of " & _
ActiveSheet.ComboBox1.Value & ":"
.TypeParagraph

Select Case ActiveSheet.ComboBox1.Value
Case "Transmittal1"
.TypeText "Case1"
Case "Transmittal2"
.TypeText "Case2"
Case "Transmittal3"
.TypeText "Case3"
Case Else
.TypeText "Case Else"
End Select
'Save and close doc 'Only if you want a specific document
'doc.Save
'doc.Close(False)
End With

wa.ScreenUpdating = True
Set doc = Nothing
If Not wordRunning Then Set wa = Nothing
End Sub
Sub HR(wd As Word.Application, Optional hrCount As Integer = 1)
Dim i As Integer
For i = 1 To hrCount
wd.Selection.TypeParagraph
Next i
End Sub

[/VBA]