The following is a subroutine for Word 97/2000 that searches through a document looking for any text with the style “barcode”. If it finds any, it converts the text to a barcode.
Sub MergeBarCodes()
'run B-Coder Minimized
Shell "C:B-CODER3B-CODER.EXE", 6
' Note: make sure that the path for B-Coder is correct in the above command
' open DDE channel to B-Coder
Chan = DDEInitiate("B-Coder", "System")
' initialize B-Coder here- send dde commands to set up Bar Codes
' DDEExecute Chan, "[Code128]" ' tell B-Coder to use Code 128
' DDEExecute Chan, "[messagewarnings=off]" ' turn off warning messages
' DDEExecute Chan, "[printwarnings=off]"
' DDEExecute Chan, "[height=.5]" ' set bar code height
On Error GoTo bye ' quit if an error occurs
Set MyRange = Selection ' define a range object
MyRange.SetRange Start:=ActiveDocument.Content.Start, _
End:=ActiveDocument.Content.End
' set the range to start at the top of the document and end at the bottom
While 1 = 1 ' loop forever
With MyRange.Find ' set Find object properties
.Forward = True ' search forward
.Wrap = wdFindStop ' stop at end of document
.Style = "barcode" ' look for style "barcode"
.Execute ' do it now
End With
If MyRange.Find.Found = False Then GoTo bye ' quit if style not found
BCData$ = Selection.Text ' otherwise get bar code data
If Right$(BCData$, 1) = Chr$(13) Then
' Remove the carriage return at the end of the selected text
BCData$ = Left$(BCData$, Len(BCData$) - 1)
End If
'Create the bar code
DDEExecute Chan, "[BARCODE=" + BCData$ + "]"
' Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdMove
' to put the bar code on the line below the text, un-comment the above line
MyRange.PasteSpecial DataType:=wdPasteMetafilePicture, Placement:=wdInLine
' paste in the bar code
Wend ' go find the next one
bye:
On Error GoTo 0 ' remove error trap
' tell B-Coder to quit
DDEExecute Chan, "[Appexit]"
End Sub