This documentation is archived and is not being maintained.

TextRange.InsertBarcode Method

Office 2007
Inserts a bar code field at the end of the text range represented by the parent TextRange object.

Version Information
 Version Added:  Publisher 2007



expression   A variable that represents a TextRange object.

Return Value


Ideally, you should create an add-in to Microsoft Office Publisher to handle the MailMergeGenerateBarcode and MailMergeInsertBarcode events. If your add-in or code does not contain handlers for these events, the InsertBarcode method returns an error.

The example that follows shows how to handle these events by using Microsoft Visual Basic for Applications (VBA) code in the Visual Basic Editor.

If you want to enable insertion of bar codes into the publication from the user interface, your add-in or VBA code should also set the InsertBarcodeVisible property value to True.


The following example shows how to use the InsertBarcode method to insert a bar-code field into a text box in a publication. Insert this code into your VBA project, and run the AttachToEvents procedure before running the InsertBarcode_Example procedure.

Before running the code in this example, use the MailMerge.OpenDataSource method to connect to a data source. The data source must contain a bar-code column that lists bar codes for all mail-merge recipients, as described in the topic Add postal bar codes to labels or envelopes in Publisher. Replace barcodeColumnIndex in the MailMergeGenerateBarcode event handler in the code with the index number of the data-source column that contains bar-code information.

Run the following code from the Visual Basic Editor window, and not from the Macros dialog box. (On the Tools menu, point to Macro, and then click Macros.)

Visual Basic for Applications
Public WithEvents pubApplication As Publisher.Application

Private Sub pubApplication_MailMergeGenerateBarcode(ByVal Doc As Document, bstrString As String)

    bstrString = pubApplication.ActiveDocument.MailMerge.DataSource.DataFields.Item(barcodeColumnIndex).Value
End Sub

Private Sub pubApplication_MailMergeInsertBarcode(ByVal Doc As Document, OkToInsert As Boolean)

    OkToInsert = True
End Sub

Public Sub InsertBarcode_Example()

    Dim pubTextRange As Publisher.TextRange
    Dim pubShape As Publisher.Shape
    Set pubShape = ThisDocument.Pages(1).Shapes.AddTextbox(pbTextOrientationHorizontal, 100, 100, 500, 500)
    Set pubTextRange = pubShape.TextFrame.TextRange
End Sub

Public Sub AttachToEvents()

    Set pubApplication = Application

End Sub