Public Function I2of5(DataToEncode As String) As String DataToPrint = "" DataToEncode = RTrim(LTrim(DataToEncode)) OnlyCorrectData = "" ' Check to make sure data is numeric and remove dashes, etc. StringLength = Len(DataToEncode) For I = 1 To StringLength 'Add all numbers to OnlyCorrectData string '2006.2 BDA modified the next 3 lines for compatibility with different office versions 'If IsNumeric(Mid(DataToEncode, I, 1)) Then OnlyCorrectData = OnlyCorrectData & Mid(DataToEncode, I, 1) CurrentCharNum = AscW(Mid(DataToEncode, I, 1)) If CurrentCharNum > 47 And CurrentCharNum < 58 Then OnlyCorrectData = OnlyCorrectData & Mid(DataToEncode, I, 1) Next I DataToEncode = OnlyCorrectData 'Check for an even number of digits, add 0 if not even If (Len(DataToEncode) Mod 2) = 1 Then DataToEncode = "0" & DataToEncode 'Assign start and stop codes StartCode = ChrW(203) StopCode = ChrW(204) StringLength = Len(DataToEncode) For I = 1 To StringLength Step 2 'Get the value of each number pair CurrentCharNum = Val((Mid(DataToEncode, I, 2))) 'Get the ASCII value of CurrentChar If CurrentCharNum < 94 Then DataToPrint = DataToPrint & ChrW(CurrentCharNum + 33) If CurrentCharNum > 93 Then DataToPrint = DataToPrint & ChrW(CurrentCharNum + 103) Next I 'Get Printable String PrintableString = StartCode + DataToPrint + StopCode 'Return PrintableString I2of5 = PrintableString End Function