Skip to content

Watermarks in Word using VBA

Just one example of VBA users being shortchanged in Microsoft Office

An obvious way to apply watermarks in Microsoft Word would be via VBA.

For example some code to print a document multiple times – once with an ‘Office Copy’ watermark and other showing a ‘Customer Copy’ watermark.

Or using VBA to programmatically insert document properties into the watermark text like “Draft – 5 March 2013” which is not available from the standard watermark dialog.

Amazingly, there’s no direct VBA equivalent of the Watermark feature in Word. Which means there’s no simple way to apply, change or remove a watermark programmatically.

To do it in VBA you need to revert to the system used waaaay back in Word’s past. Using VBA code, you insert the text or image into the document header with positioning to place it down from the usual header location into the middle of the document. … HeaderFooter.Shapes.AddTextEffect method adds the watermark. This is the way we all did the Watermark effect before it was added as an explicit feature.

Removing the watermark is similarly messy since you have to find the shape or shapes that created the watermark.

Search the web for various Watermark in VBA workarounds … and good luck.

All pretty clumsy here in 2013, if you ask me. Microsoft should ensure that all Office features have direct equivalents in VBA. There’s no reason for the omission except a cheapskate Microsoft cutting their development costs.

About this author