'MacroName:CvtDiacritics 'MacroDescription:Convert precomposed Latin characters to base character + diacritic 'Macro written by: Joel Hahn, Niles Public Library District 'Macro last modified: 23 July 2009 Option Explicit Declare Function GetAscChars(sChars) As String Declare Function GetUniChars(sHtmlEntity) As String Declare Sub InitializeUniArr() Declare Sub CannotConvertToMARC() Dim UniArr(-5000 to 20000) Sub Main Dim bool, i as Integer Dim Add2i As integer Dim sFieldData As String Dim place1, place2, oldplace1 As Integer Dim CS As Object Set CS = CreateObject("Connex.Client") 'numErrors = CS.Validate(sErrorList) 'MsgBox sErrorList bool = CS.GetFieldLineUnicode(CS.CursorRow, sFieldData) i = 1 Do While i <=Len(sFieldData) Select Case Asc(Mid(sFieldData, i, 1)) Case 0 to 31 'CS.GetFieldLineUnicode did not convert the Unicode characters to HTML entities MsgBox "The macro was unable to read the Unicode characters in this line. Please add one or more curly double quote characters and then restart the macro to fix the problem. Exiting..." Exit Sub Case 32 to 126 'Do nothing; same in ASCII & ANSEL Case 136, 137, 141, 142, 159 'Do nothing; ASCII non-character values that are also used by ANSEL Case 129, 130, 131, 159 'In theory, 128 to 159 'Do nothing; ASCII non-character values that are also used because CS.GetFieldLineUnicode auto-converts some ASCII characters to ANSEL 'Case 128 to 159 'MsgBox Mid(sFieldData, i, 1) & ":" & Asc(Mid(sFieldData, i, 1)) Case 161 to 174, 176 to 189, 192 to 200, 224 to 251, 254 'Convert ASCII to ANSEL; ASCII character values that are also used by ANSEL Add2i = Len(sFieldData) 'Add2i = Len(GetAscChars(Mid(sFieldData, i, 1))) - 1 sFieldData = Left(sFieldData, i-1) & GetAscChars(Mid(sFieldData, i, 1)) & Mid(sFieldData, i+1) Add2i = Len(sFieldData) - Add2i If Add2i >= 0 Then i = i + Add2i Case 160, 175, 190, 191, 201 to 223, 252, 253, 255 'Convert ASCII to ANSEL; ASCII values that are not also used by ANSEL Add2i = Len(sFieldData) 'Add2i = Len(GetAscChars(Mid(sFieldData, i, 1))) - 1 sFieldData = Left(sFieldData, i-1) & GetAscChars(Mid(sFieldData, i, 1)) & Mid(sFieldData, i+1) Add2i = Len(sFieldData) - Add2i If Add2i >= 0 Then i = i + Add2i Case Else 'MsgBox Mid(sFieldData, i, 1) & ":" & Asc(Mid(sFieldData, i, 1)) End Select i = i + 1 Loop 'MsgBox sFieldData place1 = 0 : place2 = 1 : oldplace1 = 1 If InStr(sFieldData, "&#x") Then Call InitializeUniArr End If Do While InStr(sFieldData, "&#x") place1 = InStr(oldplace1, sFieldData, "&#x") If place1 = 0 Then Exit Do place2 = InStr(place1, sFieldData, ";") If place2 > place1 Then sFieldData = Left(sFieldData, place1 - 1) & GetUniChars(Mid(sFieldData, place1, (place2 - place1) + 1)) & Mid(sFieldData, place2 + 1) Else Exit Do End If oldplace1 = place1 + 1 Loop 'MsgBox sFieldData bool = CS.SetFieldLine(CS.CursorRow, sFieldData) End Sub Function GetAscChars(sChar) As String Dim nRetVal As Integer 'nRetVal = 6 is Yes 'nRetVal = 7 is No Dim nLocalAsc As Integer nLocalAsc = Asc(Left(sChar, 1)) Select Case nLocalAsc Case 160 GetAscChars = " " Case 161 GetAscChars = Chr(201) 'This is OCLC-MARC; MARC21 is Chr(198) Case 162 'should be "[cents]", but CS.GetFieldLineUnicode auto-converts Unicode capital O with a slash (D8) to the MARC-8 value (A2) nRetval = MsgBox("Should this text include a cents sign " & Chr(162) & " (click Yes) or a capital O with a slash " & Chr(216) & " (click No)?", 4) If nRetVal = 6 Then GetAscChars = "[cents]" Else GetAscChars = Chr(162) Case 163 GetAscChars = Chr(185) Case 164 'should be Chr(252), but CS.GetFieldLineUnicode auto-converts Unicode capital Thorn (DE) to the MARC-8 value (A4) nRetval = MsgBox("Should this text include a fill character " & Chr(164) & " (click Yes) or a capital thorn " & Chr(222) & " (click No)?", 4) If nRetVal = 6 Then GetAscChars = Chr(252) Else GetAscChars = Chr(164) Case 165 'should be "[yen]", but CS.GetFieldLineUnicode auto-converts Unicode AE-ligature (C6) to the MARC-8 value (A5) nRetval = MsgBox("Should this text include a Yen sign " & Chr(165) & " (click Yes) or a capital AE-ligature " & Chr(198) & " (click No)?", 4) If nRetVal = 6 Then GetAscChars = "[yen]" Else GetAscChars = Chr(165) Case 166 GetAscChars = "|" Case 167 GetAscChars = "[section]" Case 168 GetAscChars = Chr(232) Case 169 GetAscChars = Chr(202) 'or "c"; This is for OCLC-MARC; MARC21 is Chr(195) Case 170 'should be "a.", but CS.GetFieldLineUnicode auto-converts Unicode phonograph copyright (AE) to the MARC-8 value (AA) nRetval = MsgBox("Should this text include a feminine ordinal " & Chr(170) & " (click Yes) or a phonograph copyright " & Chr(174) & " (click No)?", 4) If nRetVal = 6 Then GetAscChars = "a." Else GetAscChars = Chr(170) Case 171 'should be Chr(232) or Chr(34), but CS.GetFieldLineUnicode auto-converts Unicode plus/minus (B1) to the MARC-8 value (AB) nRetval = MsgBox("Should this text include an umlaut/diaresis " & Chr(171) & " (click Yes) or a plus/minus sign " & Chr(177) & " (click No)?", 4) If nRetVal = 6 Then GetAscChars = Chr(34) Else GetAscChars = Chr(171) Case 172 GetAscChars = "[not]" Case 173 GetAscChars = "-" Case 174 GetAscChars = Chr(170) Case 175 GetAscChars = Chr(229) Case 176 GetAscChars = Chr(158) 'This is for OCLC-MARC; MARC21 is Chr(192) Case 177 GetAscChars = Chr(171) Case 178 'should be Chr(130), but CS.GetFieldLineUnicode auto-converts Unicode lowercase o with slash (F8) to the MARC-8 value (B2) nRetval = MsgBox("Should this text include a superscript 2 " & Chr(178) & " (click Yes) or a lowercase o with a slash " & Chr(248) & " (click No)?", 4) If nRetVal = 6 Then GetAscChars = Chr(130) Else GetAscChars = Chr(178) Case 179 GetAscChars = Chr(131) Case 180 'should be "'", but CS.GetFieldLineUnicode auto-converts Unicode lowercase thorn (FE) to the MARC-8 value (B4) nRetval = MsgBox("Should this text include an acute accent " & Chr(180) & " (click Yes) or a lowercase thorn " & Chr(254) & " (click No)?", 4) If nRetVal = 6 Then GetAscChars = "'" Else GetAscChars = Chr(180) Case 181 'should be "[micro]", but CS.GetFieldLineUnicode auto-converts Unicode ae-ligature (E6) to the MARC-8 value (B5) nRetval = MsgBox("Should this text include a micro sign/lowercase mu " & Chr(181) & " (click Yes) or a lowercase ae-ligature " & Chr(230) & " (click No)?", 4) If nRetVal = 6 Then GetAscChars = "[micro]" Else GetAscChars = Chr(181) Case 182 GetAscChars = "[pilcrow]" Case 183 GetAscChars = Chr(168) Case 184 GetAscChars = Chr(240) Case 185 'should be Chr(129), but CS.GetFieldLineUnicode auto-converts Unicode British pound sign (A3) to the MARC-8 value (B9) nRetval = MsgBox("Should this text include a superscript 1 " & Chr(185) & " (click Yes) or a British pound sign " & Chr(163) & " (click No)?", 4) If nRetVal = 6 Then GetAscChars = Chr(129) Else GetAscChars = Chr(185) Case 186 'should be "o.", but CS.GetFieldLineUnicode auto-converts Unicode lowercase eth (F0) to the MARC-8 value (BA) nRetval = MsgBox("Should this text include a masculine ordinal " & Chr(186) & " (click Yes) or a lowercase eth " & Chr(240) & " (click No)?", 4) If nRetVal = 6 Then GetAscChars = "o." Else GetAscChars = Chr(186) Case 187 GetAscChars = Chr(34) Case 188 GetAscChars = "1/4" Case 189 GetAscChars = "1/2" Case 190 GetAscChars = "3/4" Case 191 GetAscChars = Chr(200) 'This is OCLC-MARC; MARC21 is Chr(197) Case 192 To 195 GetAscChars = "A" & Chr(225 + (nLocalAsc - 192)) Case 196 GetAscChars = "A" & Chr(232) Case 197 GetAscChars = "A" & Chr(234) Case 200 'should be "E" & Chr(225), but CS.GetFieldLineUnicode auto-converts Unicode inverted question mark (BF) to the MARC-8 value (C8) nRetval = MsgBox("Should this text include a capital E-grave " & Chr(200) & " (click Yes) or an inverted question mark " & Chr(191) & " (click No)?", 4) If nRetVal = 6 Then GetAscChars = "E" & Chr(225) Else GetAscChars = Chr(200) Case 201 'should be "E" & Chr(226), but CS.GetFieldLineUnicode auto-converts Unicode inverted exclamation point (A1) to the MARC-8 value (C9) nRetval = MsgBox("Should this text include a capital E-acute " & Chr(201) & " (click Yes) or an inverted exclamation point " & Chr(161) & " (click No)?", 4) If nRetVal = 6 Then GetAscChars = "E" & Chr(226) Else GetAscChars = Chr(201) Case 202 'should be "E" & Chr(227), but CS.GetFieldLineUnicode auto-converts Unicode Copyright symbol (A9) to the MARC-8 value (CA) nRetval = MsgBox("Should this text include a capital E-circumflex " & Chr(202) & " (click Yes) or a Copyright symbol " & Chr(169) & " (click No)?", 4) If nRetVal = 6 Then GetAscChars = "E" & Chr(227) Else GetAscChars = Chr(202) Case 203 GetAscChars = "E" & Chr(232) Case 204 to 206 GetAscChars = "I" & Chr(225 + (nLocalAsc - 204)) Case 207 GetAscChars = "I" & Chr(232) Case 208 GetAscChars = Chr(163) Case 209 GetAscChars = "N" & Chr(228) Case 210 to 213 GetAscChars = "O" & Chr(225 + (nLocalAsc - 210)) Case 214 GetAscChars = "O" & Chr(232) Case 215 GetAscChars = "x" Case 216 GetAscChars = Chr(162) Case 217 to 219 GetAscChars = "U" & Chr(225 + (nLocalAsc - 217)) Case 220 GetAscChars = "U" & Chr(232) Case 221 GetAscChars = "Y" & Chr(226) Case 222 GetAscChars = Chr(164) Case 223 'should be Chr(159), but CS.GetFieldLineUnicode doesn't convert delimiters to HTML entities if there are no Unicode characters with values higher than 255 nRetval = MsgBox("Should this text include an ess-tzet " & Chr(223) & " (click Yes) or a delimiter symbol (click No)?", 4) If nRetVal = 6 Then GetAscChars = Chr(159) Else GetAscChars = Chr(223) 'This is OCLC-MARC; MARC21 is Chr(199) Case 224 to 227 GetAscChars = "a" & Chr(225 + (nLocalAsc - 224)) Case 228 GetAscChars = "a" & Chr(232) Case 229 GetAscChars = "a" & Chr(234) Case 230 GetAscChars = Chr(181) Case 231 GetAscChars = "c" & Chr(240) Case 232 to 234 GetAscChars = "e" & Chr(225 + (nLocalAsc - 232)) Case 235 GetAscChars = "e" & Chr(232) Case 236 to 238 GetAscChars = "i" & Chr(225 + (nLocalAsc - 236)) Case 239 GetAscChars = "i" & Chr(232) Case 240 GetAscChars = Chr(186) Case 241 GetAscChars = "n" & Chr(228) Case 242 to 245 GetAscChars = "o" & Chr(225 + (nLocalAsc - 242)) Case 246 GetAscChars = "o" & Chr(232) Case 247 GetAscChars = "[divided by]" Case 248 GetAscChars = Chr(178) Case 249 to 251 GetAscChars = "u" & Chr(225 + (nLocalAsc - 249)) Case 252 GetAscChars = "u" & Chr(232) Case 253 GetAscChars = "y" & Chr(226) Case 254 GetAscChars = Chr(180) Case 255 GetAscChars = "y" & Chr(232) Case Else GetAscChars = Left(sChar, 1) End Select End Function Sub InitializeUniArr() UniArr(&H0100) = "A" & Chr(229) UniArr(&H0101) = "a" & Chr(229) UniArr(&H0102) = "A" & Chr(230) UniArr(&H0103) = "a" & Chr(230) UniArr(&H0104) = "A" & Chr(241) UniArr(&H0105) = "a" & Chr(241) UniArr(&H0106) = "C" & Chr(226) UniArr(&H0107) = "c" & Chr(226) UniArr(&H0108) = "C" & Chr(227) UniArr(&H0109) = "c" & Chr(227) UniArr(&H010A) = "C" & Chr(231) UniArr(&H010B) = "c" & Chr(231) UniArr(&H010C) = "C" & Chr(233) UniArr(&H010D) = "c" & Chr(233) UniArr(&H010E) = "D" & Chr(233) UniArr(&H010F) = "d" & Chr(233) UniArr(&H0110) = Chr(163) UniArr(&H0111) = Chr(179) UniArr(&H0112) = "E" & Chr(229) UniArr(&H0113) = "e" & Chr(229) UniArr(&H0114) = "E" & Chr(230) UniArr(&H0115) = "e" & Chr(230) UniArr(&H0116) = "E" & Chr(231) UniArr(&H0117) = "e" & Chr(231) UniArr(&H0118) = "E" & Chr(241) UniArr(&H0119) = "e" & Chr(241) UniArr(&H011A) = "E" & Chr(233) UniArr(&H011B) = "e" & Chr(233) UniArr(&H011C) = "G" & Chr(227) UniArr(&H011D) = "g" & Chr(227) UniArr(&H011E) = "G" & Chr(230) UniArr(&H011F) = "g" & Chr(230) UniArr(&H0120) = "G" & Chr(231) UniArr(&H0121) = "g" & Chr(231) UniArr(&H0122) = "G" & Chr(240) UniArr(&H0123) = "g" & Chr(240) UniArr(&H0124) = "H" & Chr(227) UniArr(&H0125) = "h" & Chr(227) UniArr(&H0126) = "H" & Chr(252) 'H with stroke UniArr(&H0127) = "h" & Chr(252) 'h with stroke UniArr(&H0128) = "I" & Chr(228) UniArr(&H0129) = "i" & Chr(228) UniArr(&H012A) = "I" & Chr(229) UniArr(&H012B) = "i" & Chr(229) UniArr(&H012C) = "I" & Chr(230) UniArr(&H012D) = "i" & Chr(230) UniArr(&H012E) = "I" & Chr(241) UniArr(&H012F) = "i" & Chr(241) UniArr(&H0130) = "I" & Chr(231) UniArr(&H0131) = Chr(184) UniArr(&H0132) = "I" & "J" UniArr(&H0133) = "i" & "j" UniArr(&H0134) = "J" & Chr(227) UniArr(&H0135) = "j" & Chr(227) UniArr(&H0136) = "K" & Chr(240) UniArr(&H0137) = "k" & Chr(240) UniArr(&H0138) = "k" UniArr(&H0139) = "L" & Chr(226) UniArr(&H013A) = "l" & Chr(226) UniArr(&H013B) = "L" & Chr(240) UniArr(&H013C) = "l" & Chr(240) UniArr(&H013D) = "L" & Chr(233) UniArr(&H013E) = "l" & Chr(233) UniArr(&H013F) = "L" & Chr(168) UniArr(&H0140) = "l" & Chr(168) UniArr(&H0141) = Chr(161) UniArr(&H0142) = Chr(177) UniArr(&H0143) = "N" & Chr(226) UniArr(&H0144) = "n" & Chr(226) UniArr(&H0145) = "N" & Chr(240) UniArr(&H0146) = "n" & Chr(240) UniArr(&H0147) = "N" & Chr(233) UniArr(&H0148) = "n" & Chr(233) UniArr(&H0149) = "'" & "n" UniArr(&H014C) = "O" & Chr(229) UniArr(&H014D) = "o" & Chr(229) UniArr(&H014E) = "O" & Chr(230) UniArr(&H014F) = "o" & Chr(230) UniArr(&H0150) = "O" & Chr(238) UniArr(&H0151) = "o" & Chr(238) UniArr(&H0152) = Chr(166) UniArr(&H0153) = Chr(182) UniArr(&H0154) = "R" & Chr(226) UniArr(&H0155) = "r" & Chr(226) UniArr(&H0156) = "R" & Chr(240) UniArr(&H0157) = "r" & Chr(240) UniArr(&H0158) = "R" & Chr(233) UniArr(&H0159) = "r" & Chr(233) UniArr(&H015A) = "S" & Chr(226) UniArr(&H015B) = "s" & Chr(226) UniArr(&H015C) = "S" & Chr(227) UniArr(&H015D) = "s" & Chr(227) UniArr(&H015E) = "S" & Chr(240) UniArr(&H015F) = "s" & Chr(240) UniArr(&H0160) = "S" & Chr(233) UniArr(&H0161) = "s" & Chr(233) UniArr(&H0162) = "T" & Chr(240) UniArr(&H0163) = "t" & Chr(240) UniArr(&H0164) = "T" & Chr(233) UniArr(&H0165) = "t" & Chr(233) UniArr(&H0166) = "T" & Chr(252) 'T with stroke UniArr(&H0167) = "t" & Chr(252) 't with stroke UniArr(&H0168) = "U" & Chr(228) UniArr(&H0169) = "u" & Chr(228) UniArr(&H016A) = "U" & Chr(229) UniArr(&H016B) = "u" & Chr(229) UniArr(&H016C) = "U" & Chr(230) UniArr(&H016D) = "u" & Chr(230) UniArr(&H016E) = "U" & Chr(234) UniArr(&H016F) = "u" & Chr(234) UniArr(&H0170) = "U" & Chr(238) UniArr(&H0171) = "u" & Chr(238) UniArr(&H0172) = "U" & Chr(241) UniArr(&H0173) = "u" & Chr(241) UniArr(&H0174) = "W" & Chr(227) UniArr(&H0175) = "w" & Chr(227) UniArr(&H0176) = "Y" & Chr(227) UniArr(&H0177) = "y" & Chr(227) UniArr(&H0178) = "Y" & Chr(232) UniArr(&H0179) = "Z" & Chr(226) UniArr(&H017A) = "z" & Chr(226) UniArr(&H017B) = "Z" & Chr(231) UniArr(&H017C) = "z" & Chr(231) UniArr(&H017D) = "Z" & Chr(233) UniArr(&H017E) = "z" & Chr(233) UniArr(&H017F) = "s" UniArr(&H0180) = "b" & Chr(252) 'b with stroke UniArr(&H0181) = "B" & Chr(252) 'B with hook UniArr(&H0182) = "B" & Chr(252) 'B with top bar UniArr(&H0183) = "b" & Chr(252) 'b with top bar UniArr(&H0187) = "C" & Chr(252) 'C with hook UniArr(&H0188) = "c" & Chr(252) 'c with hook UniArr(&H0189) = Chr(163) UniArr(&H018A) = "D" & Chr(252) 'D with hook UniArr(&H018B) = "D" & Chr(252) 'D with top bar UniArr(&H018C) = "d" & Chr(252) 'd with top bar UniArr(&H0191) = "F" & Chr(252) 'F with hook UniArr(&H0192) = "f" & Chr(252) 'f with hook UniArr(&H0193) = "G" & Chr(252) 'G with hook UniArr(&H0197) = "I" & Chr(252) 'I with stroke UniArr(&H0198) = "K" & Chr(252) 'K with hook UniArr(&H0199) = "k" & Chr(252) 'K with hook UniArr(&H019A) = "l" & Chr(252) 'l with bar UniArr(&H019D) = "N" & Chr(247) UniArr(&H01A0) = Chr(172) UniArr(&H01A1) = Chr(188) UniArr(&H01A4) = "P" & Chr(252) 'P with hook UniArr(&H01A5) = "p" & Chr(252) 'p with hook UniArr(&H01AB) = "t" & Chr(247) UniArr(&H01AC) = "T" & Chr(252) 'T with hook UniArr(&H01AD) = "t" & Chr(252) 't with hook UniArr(&H01AE) = "T" & Chr(241) UniArr(&H01AF) = Chr(173) UniArr(&H01B0) = Chr(189) UniArr(&H01B2) = "V" & Chr(252) 'V with hook UniArr(&H01B3) = "Y" & Chr(252) 'Y with hook UniArr(&H01B4) = "y" & Chr(252) 'y with hook UniArr(&H01B5) = "Z" & Chr(252) 'Z with stroke UniArr(&H01B6) = "z" & Chr(252) 'z wtih stroke UniArr(&H01BB) = "2" & Chr(252) '2 with stroke UniArr(&H01C0) = "|" UniArr(&H01C2) = Chr(223) UniArr(&H01C3) = "!" UniArr(&H01C4) = "DZ" & Chr(233) UniArr(&H01C5) = "Dz" & Chr(233) UniArr(&H01C6) = "dz" & Chr(233) UniArr(&H01C7) = "L" & "J" UniArr(&H01C8) = "L" & "j" UniArr(&H01C9) = "l" & "j" UniArr(&H01CA) = "N" & "J" UniArr(&H01CB) = "N" & "j" UniArr(&H01CC) = "n" & "j" UniArr(&H01CD) = "A" & Chr(233) UniArr(&H01CE) = "a" & Chr(233) UniArr(&H01CF) = "I" & Chr(233) UniArr(&H01D0) = "i" & Chr(233) UniArr(&H01D1) = "O" & Chr(233) UniArr(&H01D2) = "o" & Chr(233) UniArr(&H01D3) = "U" & Chr(233) UniArr(&H01D4) = "u" & Chr(233) UniArr(&H01D5) = "U" & Chr(232) & Chr(229) UniArr(&H01D6) = "u" & Chr(232) & Chr(229) UniArr(&H01D7) = "U" & Chr(232) & Chr(226) UniArr(&H01D8) = "u" & Chr(232) & Chr(226) UniArr(&H01D9) = "U" & Chr(232) & Chr(233) UniArr(&H01DA) = "u" & Chr(232) & Chr(233) UniArr(&H01DB) = "U" & Chr(232) & Chr(225) UniArr(&H01DC) = "u" & Chr(232) & Chr(225) UniArr(&H01DE) = "A" & Chr(232) & Chr(229) UniArr(&H01DF) = "a" & Chr(232) & Chr(229) UniArr(&H01E0) = "A" & Chr(231) & Chr(229) UniArr(&H01E1) = "a" & Chr(231) & Chr(229) UniArr(&H01E2) = Chr(165) & Chr(229) UniArr(&H01E3) = Chr(181) & Chr(229) UniArr(&H01E4) = "G" & Chr(252) 'G with stroke UniArr(&H01E5) = "g" & Chr(252) 'g with stroke UniArr(&H01E6) = "G" & Chr(233) UniArr(&H01E7) = "g" & Chr(233) UniArr(&H01E8) = "K" & Chr(233) UniArr(&H01E9) = "k" & Chr(233) UniArr(&H01EA) = "O" & Chr(241) UniArr(&H01EB) = "o" & Chr(241) UniArr(&H01EC) = "O" & Chr(241) & Chr(229) UniArr(&H01ED) = "o" & Chr(241) & Chr(229) UniArr(&H01F0) = "j" & Chr(233) UniArr(&H01F1) = "D" & "Z" UniArr(&H01F2) = "D" & "z" UniArr(&H01F3) = "d" & "z" UniArr(&H01F4) = "G" & Chr(226) UniArr(&H01F5) = "g" & Chr(226) UniArr(&H01F8) = "N" & Chr(225) UniArr(&H01F9) = "n" & Chr(225) UniArr(&H01FA) = "A" & Chr(234) & Chr(226) UniArr(&H01FB) = "a" & Chr(234) & Chr(226) UniArr(&H01FC) = Chr(165) & Chr(226) UniArr(&H01FD) = Chr(181) & Chr(226) UniArr(&H01FE) = Chr(162) & Chr(226) UniArr(&H01FF) = Chr(178) & Chr(226) UniArr(&H0200) = "A" & Chr(252) 'Double grave (̏) UniArr(&H0201) = "a" & Chr(252) 'Double grave (̏) UniArr(&H0202) = "A" & Chr(252) 'Inverted breve (̑) UniArr(&H0203) = "a" & Chr(252) 'Inverted breve (̑) UniArr(&H0204) = "E" & Chr(252) 'Double grave (̏) UniArr(&H0205) = "e" & Chr(252) 'Double grave (̏) UniArr(&H0206) = "E" & Chr(252) 'Inverted breve (̑) UniArr(&H0207) = "e" & Chr(252) 'Inverted breve (̑) UniArr(&H0208) = "I" & Chr(252) 'Double grave (̏) UniArr(&H0209) = "i" & Chr(252) 'Double grave (̏) UniArr(&H020A) = "I" & Chr(252) 'Inverted breve (̑) UniArr(&H020B) = "i" & Chr(252) 'Inverted breve (̑) UniArr(&H020C) = "O" & Chr(252) 'Double grave (̏) UniArr(&H020D) = "o" & Chr(252) 'Double grave (̏) UniArr(&H020E) = "O" & Chr(252) 'Inverted breve (̑) UniArr(&H020F) = "o" & Chr(252) 'Inverted breve (̑) UniArr(&H0210) = "R" & Chr(252) 'Double grave (̏) UniArr(&H0211) = "r" & Chr(252) 'Double grave (̏) UniArr(&H0212) = "R" & Chr(252) 'Inverted breve (̑) UniArr(&H0213) = "r" & Chr(252) 'Inverted breve (̑) UniArr(&H0214) = "U" & Chr(252) 'Double grave (̏) UniArr(&H0215) = "u" & Chr(252) 'Double grave (̏) UniArr(&H0216) = "U" & Chr(252) 'Inverted breve (̑) UniArr(&H0217) = "u" & Chr(252) 'Inverted breve (̑) UniArr(&H0218) = "S" & Chr(252) 'Comma below (̦) UniArr(&H0219) = "s" & Chr(252) 'Comma below (̦) UniArr(&H021A) = "T" & Chr(252) 'Comma below (̦) UniArr(&H021B) = "t" & Chr(252) 'Comma below (̦) UniArr(&H021E) = "H" & Chr(233) UniArr(&H021F) = "h" & Chr(233) UniArr(&H0224) = "Z" & Chr(252) 'Z with hook UniArr(&H0225) = "z" & Chr(252) 'z with hook UniArr(&H0226) = "A" & Chr(231) UniArr(&H0227) = "a" & Chr(231) UniArr(&H0228) = "E" & Chr(240) UniArr(&H0229) = "e" & Chr(240) UniArr(&H022A) = "O" & Chr(232) & Chr(229) UniArr(&H022B) = "o" & Chr(232) & Chr(229) UniArr(&H022C) = "O" & Chr(228) & Chr(229) UniArr(&H022D) = "o" & Chr(228) & Chr(229) UniArr(&H022E) = "O" & Chr(231) UniArr(&H022F) = "o" & Chr(231) UniArr(&H0230) = "O" & Chr(231) & Chr(229) UniArr(&H0231) = "o" & Chr(231) & Chr(229) UniArr(&H0232) = "Y" & Chr(229) UniArr(&H0233) = "y" & Chr(229) UniArr(&H023A) = "A" & Chr(252) 'A with stroke UniArr(&H023B) = "C" & Chr(252) 'C with stroke UniArr(&H023C) = "c" & Chr(252) 'c with stroke UniArr(&H023D) = "L" & Chr(252) 'L with bar UniArr(&H023E) = "T" & Chr(252) 'T with diagonal stroke UniArr(&H023F) = "s" & Chr(252) 's with swash tail UniArr(&H0240) = "z" & Chr(252) 'z with swash tail UniArr(&H0243) = "B" & Chr(252) 'B with stroke UniArr(&H0246) = "E" & Chr(252) 'E with stroke UniArr(&H0247) = "e" & Chr(252) 'e with stroke UniArr(&H0248) = "J" & Chr(252) 'J with stroke UniArr(&H0249) = "j" & Chr(252) 'j with stroke UniArr(&H024C) = "R" & Chr(252) 'R with stroke UniArr(&H02BC) = Chr(174) UniArr(&H02BB) = Chr(176) UniArr(&H0360) = Chr(250) 'This is just the left half UniArr(&H0361) = Chr(235) 'This is just the left half UniArr(&H1D01) = Chr(181) UniArr(&H1E00) = "A" & Chr(244) UniArr(&H1E01) = "a" & Chr(244) UniArr(&H1E02) = "B" & Chr(231) UniArr(&H1E03) = "b" & Chr(231) UniArr(&H1E04) = "B" & Chr(242) UniArr(&H1E05) = "b" & Chr(242) UniArr(&H1E06) = "B" & Chr(252) 'Macron below (̱) UniArr(&H1E07) = "b" & Chr(252) 'Macron below (̱) UniArr(&H1E08) = "C" & Chr(240) & Chr(226) UniArr(&H1E09) = "c" & Chr(240) & Chr(226) UniArr(&H1E0A) = "D" & Chr(231) UniArr(&H1E0B) = "d" & Chr(231) UniArr(&H1E0C) = "D" & Chr(242) UniArr(&H1E0D) = "d" & Chr(242) UniArr(&H1E0E) = "D" & Chr(252) 'Macron below (̱) UniArr(&H1E0F) = "d" & Chr(252) 'Macron below (̱) UniArr(&H1E10) = "D" & Chr(240) UniArr(&H1E11) = "d" & Chr(240) UniArr(&H1E12) = "D" & Chr(252) 'Circumflex below (̭) UniArr(&H1E13) = "d" & Chr(252) 'Circumflex below (̭) UniArr(&H1E14) = "E" & Chr(229) & Chr(225) UniArr(&H1E15) = "e" & Chr(229) & Chr(225) UniArr(&H1E16) = "E" & Chr(229) & Chr(226) UniArr(&H1E17) = "e" & Chr(229) & Chr(226) UniArr(&H1E18) = "E" & Chr(252) 'Circumflex below (̭) UniArr(&H1E19) = "e" & Chr(252) 'Circumflex below (̭) UniArr(&H1E1A) = "E" & Chr(252) 'Tilde below (̰) UniArr(&H1E1B) = "e" & Chr(252) 'Tilde below (̰) UniArr(&H1E1C) = "E" & Chr(240) & Chr(230) UniArr(&H1E1D) = "e" & Chr(240) & Chr(230) UniArr(&H1E1E) = "F" & Chr(231) UniArr(&H1E1F) = "f" & Chr(231) UniArr(&H1E20) = "G" & Chr(229) UniArr(&H1E21) = "g" & Chr(229) UniArr(&H1E22) = "H" & Chr(231) UniArr(&H1E23) = "h" & Chr(231) UniArr(&H1E24) = "H" & Chr(242) UniArr(&H1E25) = "h" & Chr(242) UniArr(&H1E26) = "H" & Chr(232) UniArr(&H1E27) = "h" & Chr(232) UniArr(&H1E28) = "H" & Chr(240) UniArr(&H1E29) = "h" & Chr(240) UniArr(&H1E2A) = "H" & Chr(252) 'Breve below (̮) UniArr(&H1E2B) = "h" & Chr(252) 'Breve below (̮) UniArr(&H1E2C) = "I" & Chr(252) 'Tilde below (̰) UniArr(&H1E2D) = "i" & Chr(252) 'Tilde below (̰) UniArr(&H1E2E) = "I" & Chr(232) & Chr(226) UniArr(&H1E2F) = "i" & Chr(232) & Chr(226) UniArr(&H1E30) = "K" & Chr(226) UniArr(&H1E31) = "k" & Chr(226) UniArr(&H1E32) = "K" & Chr(242) UniArr(&H1E33) = "k" & Chr(242) UniArr(&H1E34) = "K" & Chr(252) 'Macron below (̱) UniArr(&H1E35) = "k" & Chr(252) 'Macron below (̱) UniArr(&H1E36) = "L" & Chr(242) UniArr(&H1E37) = "l" & Chr(242) UniArr(&H1E38) = "L" & Chr(242) & Chr(229) UniArr(&H1E39) = "L" & Chr(242) & Chr(229) UniArr(&H1E3A) = "L" & Chr(252) 'Macron below (̱) UniArr(&H1E3B) = "l" & Chr(252) 'Macron below (̱) UniArr(&H1E3C) = "L" & Chr(252) 'Circumflex below (̭) UniArr(&H1E3D) = "l" & Chr(252) 'Circumflex below (̭) UniArr(&H1E3E) = "M" & Chr(226) UniArr(&H1E3F) = "m" & Chr(226) UniArr(&H1E40) = "M" & Chr(231) UniArr(&H1E41) = "m" & Chr(231) UniArr(&H1E42) = "M" & Chr(242) UniArr(&H1E43) = "m" & Chr(242) UniArr(&H1E44) = "N" & Chr(231) UniArr(&H1E45) = "n" & Chr(231) UniArr(&H1E46) = "N" & Chr(242) UniArr(&H1E47) = "n" & Chr(242) UniArr(&H1E48) = "N" & Chr(252) 'Macron below (̱) UniArr(&H1E49) = "n" & Chr(252) 'Macron below (̱) UniArr(&H1E4A) = "N" & Chr(252) 'Circumflex below (̭) UniArr(&H1E4B) = "n" & Chr(252) 'Circumflex below (̭) UniArr(&H1E4C) = "O" & Chr(228) & Chr(226) UniArr(&H1E4D) = "o" & Chr(228) & Chr(226) UniArr(&H1E4E) = "O" & Chr(228) & Chr(232) UniArr(&H1E4F) = "o" & Chr(228) & Chr(232) UniArr(&H1E50) = "O" & Chr(229) & Chr(225) UniArr(&H1E51) = "o" & Chr(229) & Chr(225) UniArr(&H1E52) = "O" & Chr(229) & Chr(226) UniArr(&H1E53) = "o" & Chr(229) & Chr(226) UniArr(&H1E54) = "P" & Chr(226) UniArr(&H1E55) = "p" & Chr(226) UniArr(&H1E56) = "P" & Chr(231) UniArr(&H1E57) = "p" & Chr(231) UniArr(&H1E58) = "R" & Chr(231) UniArr(&H1E59) = "r" & Chr(231) UniArr(&H1E5A) = "R" & Chr(242) UniArr(&H1E5B) = "r" & Chr(242) UniArr(&H1E5C) = "R" & Chr(242) & Chr(229) UniArr(&H1E5D) = "r" & Chr(242) & Chr(229) UniArr(&H1E5E) = "R" & Chr(252) 'Macron below (̱) UniArr(&H1E5F) = "r" & Chr(252) 'Macron below (̱) UniArr(&H1E60) = "S" & Chr(231) UniArr(&H1E61) = "s" & Chr(231) UniArr(&H1E62) = "S" & Chr(242) UniArr(&H1E63) = "s" & Chr(242) UniArr(&H1E64) = "S" & Chr(226) & Chr(231) UniArr(&H1E65) = "s" & Chr(226) & Chr(231) UniArr(&H1E66) = "S" & Chr(233) & Chr(231) UniArr(&H1E67) = "s" & Chr(233) & Chr(231) UniArr(&H1E68) = "S" & Chr(242) & Chr(231) UniArr(&H1E69) = "s" & Chr(242) & Chr(231) UniArr(&H1E6A) = "T" & Chr(231) UniArr(&H1E6B) = "t" & Chr(231) UniArr(&H1E6C) = "T" & Chr(242) UniArr(&H1E6D) = "t" & Chr(242) UniArr(&H1E6E) = "T" & Chr(252) 'Macron below (̱) UniArr(&H1E6F) = "t" & Chr(252) 'Macron below (̱) UniArr(&H1E70) = "T" & Chr(252) 'Circumflex below (̭) UniArr(&H1E71) = "t" & Chr(252) 'Circumflex below (̭) UniArr(&H1E72) = "U" & Chr(243) UniArr(&H1E73) = "u" & Chr(243) UniArr(&H1E74) = "U" & Chr(252) 'Tilde below (̰) UniArr(&H1E75) = "u" & Chr(252) 'Tilde below (̰) UniArr(&H1E76) = "U" & Chr(252) 'Circumflex below (̭) UniArr(&H1E77) = "u" & Chr(252) 'Circumflex below (̭) UniArr(&H1E78) = "U" & Chr(228) & Chr(226) UniArr(&H1E79) = "u" & Chr(228) & Chr(226) UniArr(&H1E7A) = "U" & Chr(229) & Chr(232) UniArr(&H1E7B) = "u" & Chr(229) & Chr(232) UniArr(&H1E7C) = "V" & Chr(228) UniArr(&H1E7D) = "v" & Chr(228) UniArr(&H1E7E) = "V" & Chr(242) UniArr(&H1E7F) = "v" & Chr(242) UniArr(&H1E80) = "W" & Chr(225) UniArr(&H1E81) = "w" & Chr(225) UniArr(&H1E82) = "W" & Chr(226) UniArr(&H1E83) = "w" & Chr(226) UniArr(&H1E84) = "W" & Chr(232) UniArr(&H1E85) = "w" & Chr(232) UniArr(&H1E86) = "W" & Chr(231) UniArr(&H1E87) = "w" & Chr(231) UniArr(&H1E88) = "W" & Chr(242) UniArr(&H1E89) = "w" & Chr(242) UniArr(&H1E8A) = "X" & Chr(231) UniArr(&H1E8B) = "x" & Chr(231) UniArr(&H1E8C) = "X" & Chr(232) UniArr(&H1E8D) = "x" & Chr(232) UniArr(&H1E8E) = "Y" & Chr(231) UniArr(&H1E8F) = "y" & Chr(231) UniArr(&H1E90) = "Z" & Chr(227) UniArr(&H1E91) = "z" & Chr(227) UniArr(&H1E92) = "Z" & Chr(242) UniArr(&H1E93) = "z" & Chr(242) UniArr(&H1E94) = "Z" & Chr(252) 'Macron below (̱) UniArr(&H1E95) = "z" & Chr(252) 'Macron below (̱) UniArr(&H1E96) = "h" & Chr(252) 'Macron below (̱) UniArr(&H1E97) = "t" & Chr(232) UniArr(&H1E98) = "w" & Chr(234) UniArr(&H1E99) = "y" & Chr(234) UniArr(&H1E9A) = "a" & Chr(252) 'Right half ring (ʾ) UniArr(&H1EA0) = "A" & Chr(242) UniArr(&H1EA1) = "a" & Chr(242) UniArr(&H1EA2) = "A" & Chr(252) 'Hook above (̉) UniArr(&H1EA3) = "a" & Chr(252) 'Hook above (̉) UniArr(&H1EA4) = "A" & Chr(227) & Chr(226) UniArr(&H1EA5) = "a" & Chr(227) & Chr(226) UniArr(&H1EA6) = "A" & Chr(227) & Chr(225) UniArr(&H1EA7) = "a" & Chr(227) & Chr(225) UniArr(&H1EA8) = "A" & Chr(227) & Chr(252) 'Hook above (̉) UniArr(&H1EA9) = "a" & Chr(227) & Chr(252) 'Hook above (̉) UniArr(&H1EAA) = "A" & Chr(227) & Chr(228) UniArr(&H1EAB) = "a" & Chr(227) & Chr(228) UniArr(&H1EAC) = "A" & Chr(242) & Chr(227) UniArr(&H1EAD) = "a" & Chr(242) & Chr(227) UniArr(&H1EAE) = "A" & Chr(230) & Chr(226) UniArr(&H1EAF) = "a" & Chr(230) & Chr(226) UniArr(&H1EB0) = "A" & Chr(230) & Chr(225) UniArr(&H1EB1) = "a" & Chr(230) & Chr(225) UniArr(&H1EB2) = "A" & Chr(230) & Chr(252) 'Hook above (̉) UniArr(&H1EB3) = "a" & Chr(230) & Chr(252) 'Hook above (̉) UniArr(&H1EB4) = "A" & Chr(230) & Chr(228) UniArr(&H1EB5) = "a" & Chr(230) & Chr(228) UniArr(&H1EB6) = "A" & Chr(242) & Chr(230) UniArr(&H1EB7) = "a" & Chr(242) & Chr(230) UniArr(&H1EB8) = "E" & Chr(242) UniArr(&H1EB9) = "e" & Chr(242) UniArr(&H1EBA) = "E" & Chr(252) 'Hook above (̉) UniArr(&H1EBB) = "e" & Chr(252) 'Hook above (̉) UniArr(&H1EBC) = "E" & Chr(228) UniArr(&H1EBD) = "e" & Chr(228) UniArr(&H1EBE) = "E" & Chr(227) & Chr(226) UniArr(&H1EBF) = "e" & Chr(227) & Chr(226) UniArr(&H1EC0) = "E" & Chr(227) & Chr(225) UniArr(&H1EC1) = "e" & Chr(227) & Chr(225) UniArr(&H1EC2) = "E" & Chr(227) & Chr(252) 'Hook above (̉) UniArr(&H1EC3) = "e" & Chr(227) & Chr(252) 'Hook above (̉) UniArr(&H1EC4) = "E" & Chr(227) & Chr(228) UniArr(&H1EC5) = "e" & Chr(227) & Chr(228) UniArr(&H1EC6) = "E" & Chr(242) & Chr(227) UniArr(&H1EC7) = "e" & Chr(242) & Chr(227) UniArr(&H1EC8) = "I" & Chr(252) 'Hook above (̉) UniArr(&H1EC9) = "i" & Chr(252) 'Hook above (̉) UniArr(&H1ECA) = "I" & Chr(242) UniArr(&H1ECB) = "i" & Chr(242) UniArr(&H1ECC) = "O" & Chr(242) UniArr(&H1ECD) = "o" & Chr(242) UniArr(&H1ECE) = "O" & Chr(252) 'Hook above (̉) UniArr(&H1ECF) = "o" & Chr(252) 'Hook above (̉) UniArr(&H1ED0) = "O" & Chr(227) & Chr(226) UniArr(&H1ED1) = "o" & Chr(227) & Chr(226) UniArr(&H1ED2) = "O" & Chr(227) & Chr(225) UniArr(&H1ED3) = "o" & Chr(227) & Chr(225) UniArr(&H1ED4) = "O" & Chr(227) & Chr(252) 'Hook above (̉) UniArr(&H1ED5) = "o" & Chr(227) & Chr(252) 'Hook above (̉) UniArr(&H1ED6) = "O" & Chr(227) & Chr(228) UniArr(&H1ED7) = "o" & Chr(227) & Chr(228) UniArr(&H1ED8) = "O" & Chr(242) & Chr(227) UniArr(&H1ED9) = "o" & Chr(242) & Chr(227) UniArr(&H1EDA) = Chr(172) & Chr(226) UniArr(&H1EDB) = Chr(188) & Chr(226) UniArr(&H1EDC) = Chr(172) & Chr(225) UniArr(&H1EDD) = Chr(188) & Chr(225) UniArr(&H1EDE) = Chr(172) & Chr(252) 'Hook above (̉) UniArr(&H1EDF) = Chr(188) & Chr(252) 'Hook above (̉) UniArr(&H1EE0) = Chr(172) & Chr(228) UniArr(&H1EE1) = Chr(188) & Chr(228) UniArr(&H1EE2) = Chr(172) & Chr(242) UniArr(&H1EE3) = Chr(188) & Chr(242) UniArr(&H1EE4) = "U" & Chr(242) UniArr(&H1EE5) = "u" & Chr(242) UniArr(&H1EE6) = "U" & Chr(252) 'Hook above (̉) UniArr(&H1EE7) = "u" & Chr(252) 'Hook above (̉) UniArr(&H1EE8) = Chr(173) & Chr(226) UniArr(&H1EE9) = Chr(189) & Chr(226) UniArr(&H1EEA) = Chr(173) & Chr(225) UniArr(&H1EEB) = Chr(189) & Chr(225) UniArr(&H1EEC) = Chr(173) & Chr(252) 'Hook above (̉) UniArr(&H1EED) = Chr(189) & Chr(252) 'Hook above (̉) UniArr(&H1EEE) = Chr(173) & Chr(228) UniArr(&H1EEF) = Chr(189) & Chr(228) UniArr(&H1EF0) = Chr(173) & Chr(242) UniArr(&H1EF1) = Chr(189) & Chr(242) UniArr(&H1EF2) = "Y" & Chr(225) UniArr(&H1EF3) = "y" & Chr(225) UniArr(&H1EF4) = "Y" & Chr(242) UniArr(&H1EF5) = "y" & Chr(242) UniArr(&H1EF6) = "Y" & Chr(252) 'Hook above (̉) UniArr(&H1EF7) = "y" & Chr(252) 'Hook above (̉) UniArr(&H1EF8) = "Y" & Chr(228) UniArr(&H1EF9) = "y" & Chr(228) UniArr(&H2018) = "'" UniArr(&H2019) = "'" UniArr(&H201A) = "," UniArr(&H201B) = "'" UniArr(&H201C) = Chr(34) UniArr(&H201D) = Chr(34) UniArr(&H201E) = Chr(34) UniArr(&H201F) = Chr(34) UniArr(&H2032) = Chr(167) UniArr(&H2033) = Chr(183) UniArr(&H2070) = Chr(128) UniArr(&H2074) = Chr(132) UniArr(&H2075) = Chr(133) UniArr(&H2076) = Chr(134) UniArr(&H2077) = Chr(135) UniArr(&H2078) = Chr(136) UniArr(&H2079) = Chr(137) UniArr(&H207A) = Chr(140) UniArr(&H207B) = Chr(141) UniArr(&H207D) = Chr(138) UniArr(&H207E) = Chr(139) UniArr(&H2080) = Chr(144) UniArr(&H2081) = Chr(145) UniArr(&H2082) = Chr(146) UniArr(&H2083) = Chr(147) UniArr(&H2084) = Chr(148) UniArr(&H2085) = Chr(149) UniArr(&H2086) = Chr(150) UniArr(&H2087) = Chr(151) UniArr(&H2088) = Chr(152) UniArr(&H2089) = Chr(153) UniArr(&H208A) = Chr(157) UniArr(&H208B) = Chr(156) UniArr(&H208D) = Chr(154) UniArr(&H208E) = Chr(155) UniArr(&H20AC) = Chr(160) 'This is OCLC-MARC; MARC21 is Chr(200) UniArr(&H2113) = Chr(190) 'This is OCLC-MARC; MARC21 is Chr(193) UniArr(&H2117) = Chr(203) 'This is OCLC-MARC; MARC21 is Chr(194) UniArr(&H266D) = Chr(169) 'This is OCLC-MARC; MARC21 is Chr(196) UniArr(&H266F) = Chr(204) 'This is OCLC-MARC; MARC21 is Chr(197) End Sub Function GetUniChars(sHtmlEntity) As String Dim Hextext As String Dim HexVal As Long Hextext = Mid(sHtmlEntity, 4) Hextext = Left(HexText, Len(sHtmlEntity) - 1) HexVal = Val("&H" & Hextext & "&") GetUniChars = sHtmlEntity 'If sHtmlEntity = "ǂ" Then GetUniChars = Chr(223) 'If HexVal = &H01C2 Then msgBox UniArr(HexVal) If UniArr(HexVal) <> "" Then GetUniChars = UniArr(HexVal) Else GetUniChars = sHtmlEntity End Function Sub CannotConvertToMARC() Dim UniNonMarcArr(0 to 32757) UniNonMarcArr(&H014A) = Chr(252) 'Capital letter Eng UniNonMarcArr(&H014B) = Chr(252) 'Lowercase letter eng UniNonMarcArr(&H0184) = Chr(252) 'Capital Tone Six UniNonMarcArr(&H0185) = Chr(252) 'Lowercase tone six UniNonMarcArr(&H0186) = Chr(252) 'Capital Open O UniNonMarcArr(&H018D) = Chr(252) 'Lowercase turned delta UniNonMarcArr(&H018E) = Chr(252) 'Capital Reversed E UniNonMarcArr(&H018F) = Chr(252) 'Capital Schwa UniNonMarcArr(&H0190) = Chr(252) 'Capital Open E UniNonMarcArr(&H0194) = Chr(252) 'Capital Gamma UniNonMarcArr(&H0195) = Chr(252) 'Lowercase hv UniNonMarcArr(&H0196) = Chr(252) 'Capital iota UniNonMarcArr(&H019B) = Chr(252) 'Lowercase lambda with stroke UniNonMarcArr(&H019C) = Chr(252) 'Capital Turned M UniNonMarcArr(&H019E) = Chr(252) 'Lowercase n with long right leg UniNonMarcArr(&H019F) = Chr(252) 'Capital O with middle tilde UniNonMarcArr(&H01A2) = Chr(252) 'Capital Oi UniNonMarcArr(&H01A3) = Chr(252) 'Lowercase oi UniNonMarcArr(&H01A6) = Chr(252) 'Letter Yr UniNonMarcArr(&H01A7) = Chr(252) 'Capital Letter Tone Two UniNonMarcArr(&H01A8) = Chr(252) 'Lowercase letter tone two UniNonMarcArr(&H01A9) = Chr(252) 'Letter Esh UniNonMarcArr(&H01AA) = Chr(252) 'Reversed esh loop UniNonMarcArr(&H01B1) = Chr(252) 'Capital Upsilon UniNonMarcArr(&H01B7) = Chr(252) 'Capital Ezh UniNonMarcArr(&H01B8) = Chr(252) 'Capital Ezh Reversed UniNonMarcArr(&H01B9) = Chr(252) 'Lowercase ezh reversed UniNonMarcArr(&H01BA) = Chr(252) 'Lowercase ezh with tail UniNonMarcArr(&H01BC) = Chr(252) 'Capital Letter Tone Five UniNonMarcArr(&H01BD) = Chr(252) 'Lowercase letter tone five UniNonMarcArr(&H01BE) = Chr(252) 'Inverted glottal stop with stroke UniNonMarcArr(&H01BF) = Chr(252) 'Letter Wynn UniNonMarcArr(&H01C1) = Chr(252) 'Lateral click UniNonMarcArr(&H01DD) = Chr(252) 'Lowercase schwa UniNonMarcArr(&H01EE) = Chr(252) UniNonMarcArr(&H01EF) = Chr(252) UniNonMarcArr(&H01F6) = Chr(252) 'Capital Letter Hwair UniNonMarcArr(&H01F7) = Chr(252) 'Capital Letter Wynn UniNonMarcArr(&H021C) = Chr(252) 'Capital Yogh UniNonMarcArr(&H021D) = Chr(252) 'Lowercase yogh UniNonMarcArr(&H0220) = Chr(252) 'Capital N with long right leg UniNonMarcArr(&H0221) = Chr(252) 'd with curl UniNonMarcArr(&H0222) = Chr(252) 'Capital Ou UniNonMarcArr(&H0223) = Chr(252) 'Lowercase ou UniNonMarcArr(&H0234) = Chr(252) 'l with curl UniNonMarcArr(&H0235) = Chr(252) 'n with curl UniNonMarcArr(&H0236) = Chr(252) 't with curl UniNonMarcArr(&H0237) = Chr(252) 'dotless j UniNonMarcArr(&H0238) = Chr(252) 'lowercase db digraph UniNonMarcArr(&H0239) = Chr(252) 'lowercase qp digraph UniNonMarcArr(&H0241) = Chr(252) 'Capital glottal stop UniNonMarcArr(&H0242) = Chr(252) 'Lowercase glottal stop UniNonMarcArr(&H0244) = Chr(252) 'U bar UniNonMarcArr(&H0245) = Chr(252) 'Turned V UniNonMarcArr(&H024A) = Chr(252) 'Q with hook tail UniNonMarcArr(&H024B) = Chr(252) 'q with hook tail UniNonMarcArr(&H024D) = Chr(252) UniNonMarcArr(&H024E) = Chr(252) UniNonMarcArr(&H024F) = Chr(252) UniNonMarcArr(&H0250) = Chr(252) UniNonMarcArr(&H0251) = Chr(252) UniNonMarcArr(&H0252) = Chr(252) UniNonMarcArr(&H0253) = Chr(252) UniNonMarcArr(&H0254) = Chr(252) UniNonMarcArr(&H0255) = Chr(252) UniNonMarcArr(&H0256) = Chr(252) UniNonMarcArr(&H0257) = Chr(252) UniNonMarcArr(&H0258) = Chr(252) UniNonMarcArr(&H0259) = Chr(252) UniNonMarcArr(&H025A) = Chr(252) UniNonMarcArr(&H025B) = Chr(252) UniNonMarcArr(&H025C) = Chr(252) UniNonMarcArr(&H025D) = Chr(252) UniNonMarcArr(&H025E) = Chr(252) UniNonMarcArr(&H025F) = Chr(252) UniNonMarcArr(&H0260) = Chr(252) UniNonMarcArr(&H0261) = Chr(252) UniNonMarcArr(&H0262) = Chr(252) UniNonMarcArr(&H0263) = Chr(252) UniNonMarcArr(&H0264) = Chr(252) UniNonMarcArr(&H0265) = Chr(252) UniNonMarcArr(&H0266) = Chr(252) UniNonMarcArr(&H0267) = Chr(252) UniNonMarcArr(&H0268) = Chr(252) UniNonMarcArr(&H0269) = Chr(252) UniNonMarcArr(&H026A) = Chr(252) UniNonMarcArr(&H026B) = Chr(252) UniNonMarcArr(&H026C) = Chr(252) UniNonMarcArr(&H026D) = Chr(252) UniNonMarcArr(&H026E) = Chr(252) UniNonMarcArr(&H026F) = Chr(252) UniNonMarcArr(&H0270) = Chr(252) UniNonMarcArr(&H0271) = Chr(252) UniNonMarcArr(&H0272) = Chr(252) UniNonMarcArr(&H0273) = Chr(252) UniNonMarcArr(&H0274) = Chr(252) UniNonMarcArr(&H0275) = Chr(252) UniNonMarcArr(&H0276) = Chr(252) UniNonMarcArr(&H0277) = Chr(252) UniNonMarcArr(&H0278) = Chr(252) UniNonMarcArr(&H0279) = Chr(252) UniNonMarcArr(&H027A) = Chr(252) UniNonMarcArr(&H027B) = Chr(252) UniNonMarcArr(&H027C) = Chr(252) UniNonMarcArr(&H027D) = Chr(252) UniNonMarcArr(&H027E) = Chr(252) UniNonMarcArr(&H027F) = Chr(252) UniNonMarcArr(&H0280) = Chr(252) UniNonMarcArr(&H0281) = Chr(252) UniNonMarcArr(&H0282) = Chr(252) UniNonMarcArr(&H0283) = Chr(252) UniNonMarcArr(&H0284) = Chr(252) UniNonMarcArr(&H0285) = Chr(252) UniNonMarcArr(&H0286) = Chr(252) UniNonMarcArr(&H0287) = Chr(252) UniNonMarcArr(&H0288) = Chr(252) UniNonMarcArr(&H0289) = Chr(252) UniNonMarcArr(&H028A) = Chr(252) UniNonMarcArr(&H028B) = Chr(252) UniNonMarcArr(&H028C) = Chr(252) UniNonMarcArr(&H028D) = Chr(252) UniNonMarcArr(&H028E) = Chr(252) UniNonMarcArr(&H028F) = Chr(252) UniNonMarcArr(&H0290) = Chr(252) UniNonMarcArr(&H0291) = Chr(252) UniNonMarcArr(&H0292) = Chr(252) UniNonMarcArr(&H0293) = Chr(252) UniNonMarcArr(&H0294) = Chr(252) UniNonMarcArr(&H0295) = Chr(252) UniNonMarcArr(&H0296) = Chr(252) UniNonMarcArr(&H0297) = Chr(252) UniNonMarcArr(&H0298) = Chr(252) UniNonMarcArr(&H0299) = Chr(252) UniNonMarcArr(&H029A) = Chr(252) UniNonMarcArr(&H029B) = Chr(252) UniNonMarcArr(&H029C) = Chr(252) UniNonMarcArr(&H029D) = Chr(252) UniNonMarcArr(&H029E) = Chr(252) UniNonMarcArr(&H029F) = Chr(252) UniNonMarcArr(&H02A0) = Chr(252) UniNonMarcArr(&H02A1) = Chr(252) UniNonMarcArr(&H02A2) = Chr(252) UniNonMarcArr(&H02A3) = Chr(252) UniNonMarcArr(&H02A4) = Chr(252) UniNonMarcArr(&H02A5) = Chr(252) UniNonMarcArr(&H02A6) = Chr(252) UniNonMarcArr(&H02A7) = Chr(252) UniNonMarcArr(&H02A8) = Chr(252) UniNonMarcArr(&H02A9) = Chr(252) UniNonMarcArr(&H02AA) = Chr(252) UniNonMarcArr(&H02AB) = Chr(252) UniNonMarcArr(&H02AC) = Chr(252) UniNonMarcArr(&H02AD) = Chr(252) UniNonMarcArr(&H02AE) = Chr(252) UniNonMarcArr(&H02AF) = Chr(252) UniNonMarcArr(&H1D00) = Chr(252) UniNonMarcArr(&H1D02) = Chr(252) UniNonMarcArr(&H1D03) = Chr(252) UniNonMarcArr(&H1D04) = Chr(252) UniNonMarcArr(&H1D05) = Chr(252) UniNonMarcArr(&H1D06) = Chr(252) UniNonMarcArr(&H1D07) = Chr(252) UniNonMarcArr(&H1D08) = Chr(252) UniNonMarcArr(&H1D09) = Chr(252) UniNonMarcArr(&H1D0A) = Chr(252) UniNonMarcArr(&H1D0B) = Chr(252) UniNonMarcArr(&H1D0C) = Chr(252) UniNonMarcArr(&H1D0D) = Chr(252) UniNonMarcArr(&H1D0E) = Chr(252) UniNonMarcArr(&H1D0F) = Chr(252) UniNonMarcArr(&H1D10) = Chr(252) UniNonMarcArr(&H1D11) = Chr(252) UniNonMarcArr(&H1D12) = Chr(252) UniNonMarcArr(&H1D13) = Chr(252) UniNonMarcArr(&H1D14) = Chr(252) UniNonMarcArr(&H1D15) = Chr(252) UniNonMarcArr(&H1D16) = Chr(252) UniNonMarcArr(&H1D17) = Chr(252) UniNonMarcArr(&H1D18) = Chr(252) UniNonMarcArr(&H1D19) = Chr(252) UniNonMarcArr(&H1D1A) = Chr(252) UniNonMarcArr(&H1D1B) = Chr(252) UniNonMarcArr(&H1D1C) = Chr(252) UniNonMarcArr(&H1D1D) = Chr(252) UniNonMarcArr(&H1D1E) = Chr(252) UniNonMarcArr(&H1D1F) = Chr(252) UniNonMarcArr(&H1D20) = Chr(252) UniNonMarcArr(&H1D21) = Chr(252) UniNonMarcArr(&H1D22) = Chr(252) UniNonMarcArr(&H1D23) = Chr(252) UniNonMarcArr(&H1D24) = Chr(252) UniNonMarcArr(&H1D25) = Chr(252) UniNonMarcArr(&H1D6B) = Chr(252) UniNonMarcArr(&H1D6C) = Chr(252) UniNonMarcArr(&H1D6D) = Chr(252) UniNonMarcArr(&H1D6E) = Chr(252) UniNonMarcArr(&H1D6F) = Chr(252) UniNonMarcArr(&H1D70) = Chr(252) UniNonMarcArr(&H1D71) = Chr(252) UniNonMarcArr(&H1D72) = Chr(252) UniNonMarcArr(&H1D73) = Chr(252) UniNonMarcArr(&H1D74) = Chr(252) UniNonMarcArr(&H1D75) = Chr(252) UniNonMarcArr(&H1D76) = Chr(252) UniNonMarcArr(&H1D77) = Chr(252) UniNonMarcArr(&H1D79) = Chr(252) UniNonMarcArr(&H1D7A) = Chr(252) UniNonMarcArr(&H1D7B) = Chr(252) UniNonMarcArr(&H1D7C) = Chr(252) UniNonMarcArr(&H1D7D) = Chr(252) UniNonMarcArr(&H1D7E) = Chr(252) UniNonMarcArr(&H1D7F) = Chr(252) UniNonMarcArr(&H1D80) = Chr(252) UniNonMarcArr(&H1D81) = Chr(252) UniNonMarcArr(&H1D82) = Chr(252) UniNonMarcArr(&H1D83) = Chr(252) UniNonMarcArr(&H1D84) = Chr(252) UniNonMarcArr(&H1D85) = Chr(252) UniNonMarcArr(&H1D86) = Chr(252) UniNonMarcArr(&H1D87) = Chr(252) UniNonMarcArr(&H1D88) = Chr(252) UniNonMarcArr(&H1D89) = Chr(252) UniNonMarcArr(&H1D8A) = Chr(252) UniNonMarcArr(&H1D8B) = Chr(252) UniNonMarcArr(&H1D8C) = Chr(252) UniNonMarcArr(&H1D8D) = Chr(252) UniNonMarcArr(&H1D8E) = Chr(252) UniNonMarcArr(&H1D8F) = Chr(252) UniNonMarcArr(&H1D90) = Chr(252) UniNonMarcArr(&H1D91) = Chr(252) UniNonMarcArr(&H1D92) = Chr(252) UniNonMarcArr(&H1D93) = Chr(252) UniNonMarcArr(&H1D94) = Chr(252) UniNonMarcArr(&H1D95) = Chr(252) UniNonMarcArr(&H1D96) = Chr(252) UniNonMarcArr(&H1D97) = Chr(252) UniNonMarcArr(&H1D98) = Chr(252) UniNonMarcArr(&H1D99) = Chr(252) UniNonMarcArr(&H1D9A) = Chr(252) UniNonMarcArr(&H1E9B) = Chr(252) UniNonMarcArr(&H1E9C) = Chr(252) UniNonMarcArr(&H1E9D) = Chr(252) UniNonMarcArr(&H1E9E) = Chr(252) UniNonMarcArr(&H1E9F) = Chr(252) UniNonMarcArr(&H1EFA) = Chr(252) UniNonMarcArr(&H1EFB) = Chr(252) UniNonMarcArr(&H1EFC) = Chr(252) UniNonMarcArr(&H1EFD) = Chr(252) UniNonMarcArr(&H1EFE) = Chr(252) UniNonMarcArr(&H1EFF) = Chr(252) UniNonMarcArr(&H207C) = Chr(252) UniNonMarcArr(&H208C) = Chr(252) UniNonMarcArr(&H2C60) = Chr(252) UniNonMarcArr(&H2C61) = Chr(252) UniNonMarcArr(&H2C62) = Chr(252) UniNonMarcArr(&H2C63) = Chr(252) UniNonMarcArr(&H2C64) = Chr(252) UniNonMarcArr(&H2C65) = Chr(252) UniNonMarcArr(&H2C66) = Chr(252) UniNonMarcArr(&H2C67) = Chr(252) UniNonMarcArr(&H2C68) = Chr(252) UniNonMarcArr(&H2C69) = Chr(252) UniNonMarcArr(&H2C6A) = Chr(252) UniNonMarcArr(&H2C6B) = Chr(252) UniNonMarcArr(&H2C6C) = Chr(252) UniNonMarcArr(&H2C6D) = Chr(252) UniNonMarcArr(&H2C6E) = Chr(252) UniNonMarcArr(&H2C6F) = Chr(252) UniNonMarcArr(&H2C71) = Chr(252) UniNonMarcArr(&H2C72) = Chr(252) UniNonMarcArr(&H2C73) = Chr(252) UniNonMarcArr(&H2C74) = Chr(252) UniNonMarcArr(&H2C75) = Chr(252) UniNonMarcArr(&H2C76) = Chr(252) UniNonMarcArr(&H2C77) = Chr(252) UniNonMarcArr(&H2C78) = Chr(252) UniNonMarcArr(&H2C79) = Chr(252) UniNonMarcArr(&H2C7A) = Chr(252) UniNonMarcArr(&H2C7B) = Chr(252) UniNonMarcArr(&H2C7C) = Chr(252) End Sub