How to create MS Word document automatically with Text file

This VBA code will help you to import data from a text file and insert it into the MS word document. This is useful when you have to create a report or formats in MS Word format, reading the data from a text file. The VBA code can be extended import extra data from the text file, and also you can add additional format as per your needs.

Please note that VBA macros can cause harm to your computer. First, open them in a disabled mode. To disable macros, to Developer tab, select macro security and then select Macro settings on the left side pane. In the right pane, select the second radio button, 'Disable all macros with notification'. The second option is better because it will notify you if there are any macros associated with your file. So you will not miss any document features that may be available after running a macro. But you can decide whether to allow the macros to run or not.

Please click on the below link to download the MS Word Template file. You can also download the text file used to import the data. I remind you that this is a sample file. You may have to modify the VBA code according to your requirement. You may have to rename the input file.

Please leave a comment below if you have any concerns.
MS word template

The VBA Code
Sub Document_Open()
If (ActiveDocument.Name = "Template.docm") Then
With ActiveDocument
   On Error Resume Next
    .Variables.Add Name:="1", Value:="1"
    .Variables.Add Name:="2", Value:="2"
    .Variables.Add Name:="3", Value:="3"
    .Variables.Add Name:="4", Value:="4"
    .Variables.Add Name:="5", Value:="5"
    .Variables.Add Name:="6", Value:="6"
    Dim ReadData As String
    Dim myarray() As String
    Open ActiveDocument.Path & "\text.txt" For Input As #1

    Do Until EOF(1)
       Line Input #1, ReadData
    If Not Left(ReadData, 1) = "*" Then
    myarray = Split(ReadData, ",")
    End If


    Close #1

    i = 1
    For Each f In myarray
       .Variables(i).Value = f
       i = i + 1
    Next f
End With

With ActiveDocument
strFileName = "Agreement Between " & myarray(5) & " and " & myarray(0)
strPath = .Path

.SaveAs2 (strPath & "\" & strFileName)
'.Close SaveChanges:=wdDoNotSaveChanges
Application.Quit SaveChanges:=wdDoNotSaveChanges
End With
End If
End Sub


  1. Where is the trick / tutorial? I am not able to find it.

  2. For instance, in the Mac's worked in text-to-speech program, on the off chance that you delay the speech while it's perusing a report, and after that need to proceed with, you need to start from the very beginning from the earliest starting point, or feature the whole residual record. This is colossally and pointlessly tedious.

  3. TTS or text to speech software helps enhancing the effectiveness at work, learning distinctive dialects, doing successful editing or basically diminishing eye strain because of perusing a great deal. Here are a couple of contemplations, should you choose to buy TTS:

  4. Can u please give us the password of the word document


How to copy screenshot to clipboard in New Apple Mac OS

If you have upgraded your Apple Mac OS to 14.x.x, then you may find it strange that the screenshots are not copied into the clipboard. The s...