How to Automatically Add Text to a Document’s Header in Microsoft Word Using VBA

656684 How to Automatically Add Text to a Document’s Header in Microsoft Word Using VBA

Here is a 1200-word SEO-friendly step-by-step blog article draft on “How to Automatically Add Text to a Document’s Header in Microsoft Word Using VBA”:

How to Automatically Add Text to a Document’s Header in Microsoft Word Using VBA

Adding text to the header of a Word document manually can be tedious, especially if you have multiple documents that need the same header text. Fortunately, you can automate this process using Visual Basic for Applications (VBA) code.

In this article, I’ll walk you through how to write a simple VBA macro to automatically add header text to any Word document.

Prerequisites

To follow along, you’ll need:

  • Microsoft Word installed on your computer
  • Basic familiarity with the VBA editor

Step 1: Open the VBA Editor

First, open the Word document you want to add header text to. Go to the Developer tab and click on Visual Basic to launch the VBA editor.

If you don’t see the Developer tab, you’ll need to enable it first:

  1. Go to File > Options > Customize Ribbon
  2. Under Main Tabs, check the box next to Developer
  3. Click OK

Once the VBA editor opens, you should see the project window on the left containing your document (e.g. Document1) and Modules.

Step 2: Create a New Module

Double click on Module1 in the project window to open it. This is where we’ll write our VBA macro.

You can rename Module1 if desired by right-clicking it and selecting Rename.

Step 3: Write the Macro

In the code window for Module1, write the following macro:

Sub AddHeaderText()

  With ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary)
    .Range.Text = "My Header Text"
  End With

End Sub

Let’s break down what this macro is doing:

  • With ActiveDocument.Sections(1)... – References the first section in the active Word document
  • .Headers(wdHeaderFooterPrimary) – Specifies the primary header
  • .Range.Text = ... – Sets the text for the header range
  • "My Header Text" – The actual text to add to the header

So in plain English, this VBA code is adding the text “My Header Text” to the primary header in the first section of the active Word document.

You can customize the header text by changing "My Header Text" to whatever you want.

Step 4: Run the Macro

Now go back to your Word document, and click on the Macros button under the Developer tab. Select the macro you just created, and click Run.

The text “My Header Text” should now appear in the top margin of every page!

And just like that, you’ve automated adding header text in Word documents using VBA.

Customizing the Macro

Here are some ways you can customize this macro:

  • Add multiple lines to the header by using & vbNewLine & between text:
.Range.Text = "Line 1 Text" & vbNewLine & "Line 2 Text"
  • Insert the header text before/after existing header contents using .InsertBefore or .InsertAfter
  • Apply formatting like bold, underline, fonts, etc.
  • Add the macro to the Quick Access Toolbar or assign a keyboard shortcut for easy access

The possibilities are endless!

Conclusion

While this example adds text to just the first section’s primary header, you can modify it to update any header or footer in any section by tweaking the code.

Some examples:

'First section, first page header
.Sections(1).Headers(wdHeaderFooterFirstPage) 

'Second section, even pages footer 
.Sections(2).Footers(wdHeaderFooterEvenPages)

Being able to automate repetitive Word tasks like this allows you to work more efficiently.

Hopefully this gives you a good starting point for using VBA to manipulate headers and footers. Let me know in the comments if you have any other questions!

About The Author