Option Base 0 Sub GraecaIIToSBLGreekUnicode() ' ' GraecaIIToSBLGreekUnicode Macro ' Converts GraecaII "ASCII" font to SBLGreek Unicode font ' (C) Matt Postiff, 2018, postiffm@umich.edu ' Revised 5/3/2018, 9/4/2018 ' Released to the public domain ' Developed in Word 2010 ' ' Helpful resources: ' https://unicode-table.com/en/sets/greek-symbols/ ' http://www.unicode.org/charts/ ' https://jktauber.com/2016/01/28/polytonic-greek-unicode-is-still-not-perfect/ ' https://www.compart.com/en/unicode/diacritic/U+0301 ' https://help.keyman.com/keyboard/grkpoly2/1.1/grkpoly2.php Dim GraecaIIMap(288) As String Dim SBLGreekMap(288) As String ' We have to construct these two arrays so that the indexes correspond ' The order of search/replace is important...larger groups need to be ' replaced before smaller groups to properly catch all combinations. GraecaIIMap(0) = "u>" ' upsilon + umlaut GraecaIIMap(1) = "U>" ' Upsilon + umlaut GraecaIIMap(2) = "i>" ' iota + umlaut GraecaIIMap(3) = "I>" ' Iota + umlaut GraecaIIMap(4) = "ÔU" ' strange 0xd4=212 character that is NOT preceded by space but is rough+grave GraecaIIMap(5) = "ÔW" GraecaIIMap(6) = "ÔH" GraecaIIMap(7) = "a;" ' alpha + grave GraecaIIMap(8) = "av" ' alpha + acute GraecaIIMap(9) = "aj" ' alpha + smooth GraecaIIMap(10) = "aJ" ' alpha + rough GraecaIIMap(11) = "a]" ' + smooth, grave GraecaIIMap(12) = "a}" ' + rough, grave GraecaIIMap(13) = "a[" ' + smooth, acute GraecaIIMap(14) = "a{" ' + rough, acute GraecaIIMap(15) = "a\" ' + smooth, circumflex GraecaIIMap(16) = "a|" ' + rough, circumflex GraecaIIMap(17) = "aj/" ' + smooth + iota sub GraecaIIMap(18) = "aJ/" ' + rough + iota sub GraecaIIMap(19) = "a]/" ' + smooth, grave, iota sub GraecaIIMap(20) = "a}/" ' + rough, grave, iota sub GraecaIIMap(21) = "a[/" ' + smooth, acute, iota sub GraecaIIMap(22) = "a{/" ' + rough, acute, iota sub GraecaIIMap(23) = "a\/" ' + smooth, circum, iota sub GraecaIIMap(24) = "a|/" ' + rough, circum, iota sub GraecaIIMap(25) = "a;/" ' + grave, iota sub GraecaIIMap(26) = "a/'" ' + iota sub, circumflex GraecaIIMap(27) = "a/" ' + iota sub GraecaIIMap(28) = "av/" ' + acute, iota sub GraecaIIMap(29) = "a'" ' + circumflex GraecaIIMap(30) = "a" GraecaIIMap(31) = "b" GraecaIIMap(32) = "c" GraecaIIMap(33) = "d" GraecaIIMap(34) = "e[" ' epsilon + smooth + acute GraecaIIMap(35) = "e;" ' epsilon + grave GraecaIIMap(36) = "ev" ' epsilon + acute GraecaIIMap(37) = "ej" ' epsilon + smooth breathing GraecaIIMap(38) = "eJ" ' + rough GraecaIIMap(39) = "e]" ' + smooth, grave GraecaIIMap(40) = "e}" ' + rough, grave GraecaIIMap(41) = "e[" ' + smooth, acute GraecaIIMap(42) = "e{" ' + rough, acute GraecaIIMap(43) = "e" GraecaIIMap(44) = "f" GraecaIIMap(45) = "g" GraecaIIMap(46) = "h;" ' eta + grave GraecaIIMap(47) = "hv" ' eta + acute GraecaIIMap(48) = "hj" ' eta + smooth GraecaIIMap(49) = "hJ" ' eta + rough GraecaIIMap(50) = "h]" ' + smooth, grave GraecaIIMap(51) = "h}" ' + rough, grave GraecaIIMap(52) = "h[" ' + smooth, acute GraecaIIMap(53) = "h{" ' + rough, acute GraecaIIMap(54) = "h\" ' + smooth, circumflex GraecaIIMap(55) = "h|" ' + rough, circumflex GraecaIIMap(56) = "hj/" ' + smooth + iota sub GraecaIIMap(57) = "hJ/" ' + rough + iota sub GraecaIIMap(58) = "h]/" ' + smooth, grave, iota sub GraecaIIMap(59) = "h}/" ' + rough, grave, iota sub GraecaIIMap(60) = "h[/" ' + smooth, acute, iota sub GraecaIIMap(61) = "h{/" ' + rough, acute, iota sub GraecaIIMap(62) = "h\/" ' + smooth, circum, iota sub GraecaIIMap(63) = "h/|" ' + rough, circum, iota sub GraecaIIMap(64) = "h;/" ' + grave, iota sub GraecaIIMap(65) = "h/'" ' + iota sub, circumflex GraecaIIMap(66) = "h/" ' + iota sub GraecaIIMap(67) = "hv/" ' + acute, iota sub GraecaIIMap(68) = "h'" ' + circumflex GraecaIIMap(69) = "h" GraecaIIMap(70) = "iv" ' iota + acute GraecaIIMap(71) = "i;" ' iota + grave GraecaIIMap(72) = "ij" ' iota + smooth GraecaIIMap(73) = "iJ" ' iota + rough GraecaIIMap(74) = "i]" ' + smooth, grave GraecaIIMap(75) = "i}" ' + rough, grave GraecaIIMap(76) = "i[" ' + smooth, acute GraecaIIMap(77) = "i{" ' + rough, acute GraecaIIMap(78) = "i\" ' + smooth, circumflex GraecaIIMap(79) = "i|" ' + rough, circumflex GraecaIIMap(80) = "i'" ' + circumflex GraecaIIMap(81) = "i" GraecaIIMap(82) = "k" GraecaIIMap(83) = "l" GraecaIIMap(84) = "m" GraecaIIMap(85) = "n" GraecaIIMap(86) = "o;" ' omicron + grave accent GraecaIIMap(87) = "ov" ' omicron + acute accent GraecaIIMap(88) = "oj" ' + smooth GraecaIIMap(89) = "oJ" ' + rough GraecaIIMap(90) = "o]" ' + smooth, grave GraecaIIMap(91) = "o}" ' + rough, grave GraecaIIMap(92) = "o[" ' + smooth, acute GraecaIIMap(93) = "o{" ' + rough, acute GraecaIIMap(94) = "o" GraecaIIMap(95) = "p" GraecaIIMap(96) = "q" GraecaIIMap(97) = "rj" ' + smooth GraecaIIMap(98) = "rJ" ' + rough GraecaIIMap(99) = "r" GraecaIIMap(100) = "s" GraecaIIMap(101) = """" ' This is one double-quotation mark, for final sigma GraecaIIMap(102) = "t" GraecaIIMap(103) = "u'" ' upsilon with circumflex GraecaIIMap(104) = "u;" ' + grave GraecaIIMap(105) = "uv" ' + acute GraecaIIMap(106) = "uj" ' + smooth GraecaIIMap(107) = "uJ" ' + rough GraecaIIMap(108) = "u]" ' + smooth, grave GraecaIIMap(109) = "u}" ' + rough, grave GraecaIIMap(110) = "u[" ' + smooth, acute GraecaIIMap(111) = "u{" ' + rough, acute GraecaIIMap(112) = "u\" ' + smooth, circumflex GraecaIIMap(113) = "u|" ' + rough, circumflex GraecaIIMap(114) = "u" GraecaIIMap(115) = "w;" ' + grave GraecaIIMap(116) = "wv" ' + acute GraecaIIMap(117) = "wj" ' + smooth GraecaIIMap(118) = "wJ" ' + rough GraecaIIMap(119) = "w]" ' + smooth, grave GraecaIIMap(120) = "w}" ' + rough, grave GraecaIIMap(121) = "w[" ' + smooth, acute GraecaIIMap(122) = "w{" ' + rough, acute GraecaIIMap(123) = "w\" ' + smooth, circumflex GraecaIIMap(124) = "w|" ' + rough, circumflex GraecaIIMap(125) = "wj/" ' + smooth + iota sub GraecaIIMap(126) = "wJ/" ' + rough + iota sub GraecaIIMap(127) = "w]/" ' + smooth, grave, iota sub GraecaIIMap(128) = "w}/" ' + rough, grave, iota sub GraecaIIMap(129) = "w[/" ' + smooth, acute, iota sub GraecaIIMap(130) = "w{/" ' + rough, acute, iota sub GraecaIIMap(131) = "w\/" ' + smooth, circum, iota sub GraecaIIMap(132) = "w/|" ' + rough, circum, iota sub GraecaIIMap(133) = "w;/" ' + grave, iota sub GraecaIIMap(134) = "w/'" ' + iota sub, circumflex GraecaIIMap(135) = "w/" ' + iota sub GraecaIIMap(136) = "wv/" ' + acute, iota sub GraecaIIMap(137) = "w'" ' + circumflex GraecaIIMap(138) = "w" GraecaIIMap(139) = "x" GraecaIIMap(140) = "y" GraecaIIMap(141) = "z" GraecaIIMap(142) = " jA" ' + smooth GraecaIIMap(143) = " JA" ' + rough GraecaIIMap(144) = " ]A" ' + smooth, grave GraecaIIMap(145) = " }A" ' + rough, grave GraecaIIMap(146) = " [A" ' + smooth, acute GraecaIIMap(147) = " {A" ' + rough, acute GraecaIIMap(148) = " \A" ' + smooth, circumflex GraecaIIMap(149) = " |A" ' + rough, circumflex GraecaIIMap(150) = " jA/" ' + smooth + iota sub GraecaIIMap(151) = " JA/" ' + rough + iota sub GraecaIIMap(152) = " ]A/" ' + smooth, grave, iota sub GraecaIIMap(153) = " }A/" ' + rough, grave, iota sub GraecaIIMap(154) = " [A/" ' + smooth, acute, iota sub GraecaIIMap(155) = " {A/" ' + rough, acute, iota sub GraecaIIMap(156) = " \A/" ' + smooth, circum, iota sub GraecaIIMap(157) = " |A/" ' + rough, circum, iota sub GraecaIIMap(158) = ";A" ' + grave GraecaIIMap(159) = "vA" ' + acute GraecaIIMap(160) = "/A" ' + iota sub GraecaIIMap(161) = "A" GraecaIIMap(162) = "B" GraecaIIMap(163) = "C" GraecaIIMap(164) = "D" GraecaIIMap(165) = " jE" ' + smooth GraecaIIMap(166) = "ÆE" ' + smooth GraecaIIMap(167) = " JE" ' + rough GraecaIIMap(168) = " ]E" ' + smooth, grave GraecaIIMap(169) = " }E" ' + rough, grave GraecaIIMap(170) = " [E" ' + smooth, acute GraecaIIMap(171) = " {E" ' + rough, acute GraecaIIMap(172) = ";E" ' + grave GraecaIIMap(173) = "vE" ' + acute GraecaIIMap(174) = "E" GraecaIIMap(175) = "F" GraecaIIMap(176) = "G" GraecaIIMap(177) = " jH" ' + smooth GraecaIIMap(178) = " JH" ' + rough GraecaIIMap(179) = " ]H" ' + smooth, grave GraecaIIMap(180) = " }H" ' + rough, grave GraecaIIMap(181) = " [H" ' + smooth, acute GraecaIIMap(182) = " {H" ' + rough, acute GraecaIIMap(183) = " \H" ' + smooth, circumflex GraecaIIMap(184) = " |H" ' + rough, circumflex GraecaIIMap(185) = " jH/" ' + smooth + iota sub GraecaIIMap(186) = " JH/" ' + rough + iota sub GraecaIIMap(187) = " ]H/" ' + smooth, grave, iota sub GraecaIIMap(188) = " }H/" ' + rough, grave, iota sub GraecaIIMap(189) = " [H/" ' + smooth, acute, iota sub GraecaIIMap(190) = " {H/" ' + rough, acute, iota sub GraecaIIMap(191) = " \H/" ' + smooth, circum, iota sub GraecaIIMap(192) = " |H/" ' + rough, circum, iota sub GraecaIIMap(193) = ";H" ' + grave GraecaIIMap(194) = "vH" ' + acute GraecaIIMap(195) = "H/" ' + iota sub GraecaIIMap(196) = "H" GraecaIIMap(197) = " jI" ' capital iota with soft breathing mark (starts with space at least on name of Jesus) GraecaIIMap(198) = "ÆI" ' + smooth GraecaIIMap(199) = " JI" ' + rough GraecaIIMap(200) = " ]I" ' + smooth, grave GraecaIIMap(201) = " }I" ' + rough, grave GraecaIIMap(202) = " [I" ' + smooth, acute GraecaIIMap(203) = " {I" ' + rough, acute GraecaIIMap(204) = " \I" ' + smooth, circumflex GraecaIIMap(205) = " |I" ' + rough, circumflex GraecaIIMap(206) = ";I" ' + grave GraecaIIMap(207) = "vI" ' + acute GraecaIIMap(208) = "I" GraecaIIMap(209) = "K" GraecaIIMap(210) = "L" GraecaIIMap(211) = "M" GraecaIIMap(212) = "N" GraecaIIMap(213) = " jO" ' + smooth GraecaIIMap(214) = "ÆO" ' + smooth GraecaIIMap(215) = " JO" ' + rough GraecaIIMap(216) = " ]O" ' + smooth, grave GraecaIIMap(217) = " }O" ' + rough, grave GraecaIIMap(218) = " [O" ' + smooth, acute GraecaIIMap(219) = " {O" ' + rough, acute GraecaIIMap(220) = ";O" ' + grave GraecaIIMap(221) = "vO" ' + acute GraecaIIMap(222) = "O" GraecaIIMap(223) = "P" GraecaIIMap(224) = "Q" GraecaIIMap(225) = "JR" ' + rough GraecaIIMap(226) = "R" GraecaIIMap(227) = "S" GraecaIIMap(228) = "T" GraecaIIMap(229) = ";U" ' + grave GraecaIIMap(230) = "vU" ' + acute GraecaIIMap(231) = "U" GraecaIIMap(232) = "V" GraecaIIMap(233) = " jW" ' + smooth GraecaIIMap(234) = " JW" ' + rough GraecaIIMap(235) = " ]W" ' + smooth, grave GraecaIIMap(236) = " }W" ' + rough, grave GraecaIIMap(237) = " [W" ' + smooth, acute GraecaIIMap(238) = " {W" ' + rough, acute GraecaIIMap(239) = " \W" ' + smooth, circumflex GraecaIIMap(240) = " |W" ' + rough, circumflex GraecaIIMap(241) = " jW/" ' + smooth + iota sub GraecaIIMap(242) = " JW/" ' + rough + iota sub GraecaIIMap(243) = " ]W/" ' + smooth, grave, iota sub GraecaIIMap(244) = " }W/" ' + rough, grave, iota sub GraecaIIMap(245) = " [W/" ' + smooth, acute, iota sub GraecaIIMap(246) = " {W/" ' + rough, acute, iota sub GraecaIIMap(247) = " \W/" ' + smooth, circum, iota sub GraecaIIMap(248) = " |W/" ' + rough, circum, iota sub GraecaIIMap(249) = ";W" ' + grave GraecaIIMap(250) = "vW" ' + acute GraecaIIMap(251) = "W/" ' + iota sub GraecaIIMap(252) = "W" GraecaIIMap(253) = "X" GraecaIIMap(254) = " j" ' + smooth, used at end of kat', for example GraecaIIMap(255) = " JU" ' + rough GraecaIIMap(256) = " }U" ' + rough, grave GraecaIIMap(257) = " {U" ' + rough, acute GraecaIIMap(258) = " |U" ' + rough, circumflex GraecaIIMap(259) = " ]U" ' + smooth, grave; doesn't exist in Unicode because this is an error from Accordance; will convert to U+1F5B, which is rough, grave GraecaIIMap(260) = "Y" GraecaIIMap(261) = "Z" GraecaIIMap(262) = "j" ' this is overstrike soft breathing GraecaIIMap(263) = "v" ' this is overstrike acute GraecaIIMap(264) = "J" ' this is overstrike rough breathing GraecaIIMap(265) = "`" ' this is overstrike circumflex GraecaIIMap(266) = "'" ' this is overstrike circumflex GraecaIIMap(267) = "." ' full stop, period GraecaIIMap(268) = "~" ' final sigma GraecaIIMap(269) = "!" GraecaIIMap(270) = "@" GraecaIIMap(271) = "#" GraecaIIMap(272) = "$" GraecaIIMap(273) = "%" GraecaIIMap(274) = "^" GraecaIIMap(275) = "&" GraecaIIMap(276) = "*" GraecaIIMap(277) = "(" GraecaIIMap(278) = ")" GraecaIIMap(279) = "_" GraecaIIMap(280) = "+" GraecaIIMap(281) = "{" GraecaIIMap(282) = "}" GraecaIIMap(283) = ":" GraecaIIMap(284) = "<" GraecaIIMap(285) = ">" GraecaIIMap(286) = "?" GraecaIIMap(287) = " " SBLGreekMap(0) = ChrW(971) SBLGreekMap(1) = ChrW(980) SBLGreekMap(2) = ChrW(970) SBLGreekMap(3) = ChrW(938) SBLGreekMap(4) = ChrW(8025) ' Upsilon + rough SBLGreekMap(5) = ChrW(8041) ' Omega + rough SBLGreekMap(6) = ChrW(7977) ' Eta + rough SBLGreekMap(7) = ChrW(8048) SBLGreekMap(8) = ChrW(8049) SBLGreekMap(9) = ChrW(7936) SBLGreekMap(10) = ChrW(7937) SBLGreekMap(11) = ChrW(7938) SBLGreekMap(12) = ChrW(7939) SBLGreekMap(13) = ChrW(7940) SBLGreekMap(14) = ChrW(7941) SBLGreekMap(15) = ChrW(7942) SBLGreekMap(16) = ChrW(7943) SBLGreekMap(17) = ChrW(8064) SBLGreekMap(18) = ChrW(8065) SBLGreekMap(19) = ChrW(8066) SBLGreekMap(20) = ChrW(8067) SBLGreekMap(21) = ChrW(8068) SBLGreekMap(22) = ChrW(8069) SBLGreekMap(23) = ChrW(8070) SBLGreekMap(24) = ChrW(8071) SBLGreekMap(25) = ChrW(8114) SBLGreekMap(26) = ChrW(8119) SBLGreekMap(27) = ChrW(8115) SBLGreekMap(28) = ChrW(8116) SBLGreekMap(29) = ChrW(8118) SBLGreekMap(30) = ChrW(945) SBLGreekMap(31) = ChrW(946) SBLGreekMap(32) = ChrW(967) SBLGreekMap(33) = ChrW(948) SBLGreekMap(34) = ChrW(7956) SBLGreekMap(35) = ChrW(8050) SBLGreekMap(36) = ChrW(8051) SBLGreekMap(37) = ChrW(7952) SBLGreekMap(38) = ChrW(7953) SBLGreekMap(39) = ChrW(7954) SBLGreekMap(40) = ChrW(7955) SBLGreekMap(41) = ChrW(7956) SBLGreekMap(42) = ChrW(7957) SBLGreekMap(43) = ChrW(949) SBLGreekMap(44) = ChrW(966) SBLGreekMap(45) = ChrW(947) SBLGreekMap(46) = ChrW(8052) SBLGreekMap(47) = ChrW(8053) SBLGreekMap(48) = ChrW(7968) SBLGreekMap(49) = ChrW(7969) SBLGreekMap(50) = ChrW(7970) SBLGreekMap(51) = ChrW(7971) SBLGreekMap(52) = ChrW(7972) SBLGreekMap(53) = ChrW(7973) SBLGreekMap(54) = ChrW(7974) SBLGreekMap(55) = ChrW(7975) SBLGreekMap(56) = ChrW(8080) SBLGreekMap(57) = ChrW(8081) SBLGreekMap(58) = ChrW(8082) SBLGreekMap(59) = ChrW(8083) SBLGreekMap(60) = ChrW(8084) SBLGreekMap(61) = ChrW(8085) SBLGreekMap(62) = ChrW(8086) SBLGreekMap(63) = ChrW(8087) SBLGreekMap(64) = ChrW(8130) SBLGreekMap(65) = ChrW(8135) SBLGreekMap(66) = ChrW(8131) SBLGreekMap(67) = ChrW(8132) SBLGreekMap(68) = ChrW(8134) SBLGreekMap(69) = ChrW(951) SBLGreekMap(70) = ChrW(8055) SBLGreekMap(71) = ChrW(8054) SBLGreekMap(72) = ChrW(7984) SBLGreekMap(73) = ChrW(7985) SBLGreekMap(74) = ChrW(7986) SBLGreekMap(75) = ChrW(7987) SBLGreekMap(76) = ChrW(7988) SBLGreekMap(77) = ChrW(7989) SBLGreekMap(78) = ChrW(7990) SBLGreekMap(79) = ChrW(7991) SBLGreekMap(80) = ChrW(8150) SBLGreekMap(81) = ChrW(953) SBLGreekMap(82) = ChrW(954) SBLGreekMap(83) = ChrW(955) SBLGreekMap(84) = ChrW(956) SBLGreekMap(85) = ChrW(957) SBLGreekMap(86) = ChrW(8056) SBLGreekMap(87) = ChrW(8057) SBLGreekMap(88) = ChrW(8000) SBLGreekMap(89) = ChrW(8001) SBLGreekMap(90) = ChrW(8002) SBLGreekMap(91) = ChrW(8003) SBLGreekMap(92) = ChrW(8004) SBLGreekMap(93) = ChrW(8005) SBLGreekMap(94) = ChrW(959) SBLGreekMap(95) = ChrW(960) SBLGreekMap(96) = ChrW(952) SBLGreekMap(97) = ChrW(8164) SBLGreekMap(98) = ChrW(8165) SBLGreekMap(99) = ChrW(961) SBLGreekMap(100) = ChrW(963) SBLGreekMap(101) = ChrW(962) SBLGreekMap(102) = ChrW(964) SBLGreekMap(103) = ChrW(8166) '1fe6 SBLGreekMap(104) = ChrW(8058) SBLGreekMap(105) = ChrW(8059) SBLGreekMap(106) = ChrW(8016) SBLGreekMap(107) = ChrW(8017) SBLGreekMap(108) = ChrW(8018) SBLGreekMap(109) = ChrW(8019) SBLGreekMap(110) = ChrW(8020) SBLGreekMap(111) = ChrW(8021) SBLGreekMap(112) = ChrW(8022) SBLGreekMap(113) = ChrW(8023) SBLGreekMap(114) = ChrW(965) SBLGreekMap(115) = ChrW(8060) SBLGreekMap(116) = ChrW(8061) SBLGreekMap(117) = ChrW(8032) SBLGreekMap(118) = ChrW(8033) SBLGreekMap(119) = ChrW(8034) SBLGreekMap(120) = ChrW(8035) SBLGreekMap(121) = ChrW(8036) SBLGreekMap(122) = ChrW(8037) SBLGreekMap(123) = ChrW(8038) SBLGreekMap(124) = ChrW(8039) SBLGreekMap(125) = ChrW(8096) SBLGreekMap(126) = ChrW(8097) SBLGreekMap(127) = ChrW(8098) SBLGreekMap(128) = ChrW(8099) SBLGreekMap(129) = ChrW(8100) SBLGreekMap(130) = ChrW(8101) SBLGreekMap(131) = ChrW(8102) SBLGreekMap(132) = ChrW(8103) SBLGreekMap(133) = ChrW(8178) SBLGreekMap(134) = ChrW(8183) SBLGreekMap(135) = ChrW(8179) SBLGreekMap(136) = ChrW(8180) SBLGreekMap(137) = ChrW(8182) SBLGreekMap(138) = ChrW(969) SBLGreekMap(139) = ChrW(958) SBLGreekMap(140) = ChrW(968) SBLGreekMap(141) = ChrW(950) SBLGreekMap(142) = ChrW(7944) SBLGreekMap(143) = ChrW(7945) SBLGreekMap(144) = ChrW(7946) SBLGreekMap(145) = ChrW(7947) SBLGreekMap(146) = ChrW(7948) SBLGreekMap(147) = ChrW(7949) SBLGreekMap(148) = ChrW(7950) SBLGreekMap(149) = ChrW(7951) SBLGreekMap(150) = ChrW(8072) SBLGreekMap(151) = ChrW(8073) SBLGreekMap(152) = ChrW(8074) SBLGreekMap(153) = ChrW(8075) SBLGreekMap(154) = ChrW(8076) SBLGreekMap(155) = ChrW(8077) SBLGreekMap(156) = ChrW(8078) SBLGreekMap(157) = ChrW(8079) SBLGreekMap(158) = ChrW(8122) SBLGreekMap(159) = ChrW(8123) SBLGreekMap(160) = ChrW(8124) SBLGreekMap(161) = ChrW(913) SBLGreekMap(162) = ChrW(914) SBLGreekMap(163) = ChrW(935) SBLGreekMap(164) = ChrW(916) SBLGreekMap(165) = ChrW(7960) SBLGreekMap(166) = ChrW(7960) SBLGreekMap(167) = ChrW(7961) SBLGreekMap(168) = ChrW(7962) SBLGreekMap(169) = ChrW(7963) SBLGreekMap(170) = ChrW(7964) SBLGreekMap(171) = ChrW(7965) SBLGreekMap(172) = ChrW(8136) SBLGreekMap(173) = ChrW(8137) SBLGreekMap(174) = ChrW(917) SBLGreekMap(175) = ChrW(934) SBLGreekMap(176) = ChrW(915) SBLGreekMap(177) = ChrW(7976) SBLGreekMap(178) = ChrW(7977) SBLGreekMap(179) = ChrW(7978) SBLGreekMap(180) = ChrW(7979) SBLGreekMap(181) = ChrW(7980) SBLGreekMap(182) = ChrW(7981) SBLGreekMap(183) = ChrW(7982) SBLGreekMap(184) = ChrW(7983) SBLGreekMap(185) = ChrW(8088) SBLGreekMap(186) = ChrW(8089) SBLGreekMap(187) = ChrW(8090) SBLGreekMap(188) = ChrW(8091) SBLGreekMap(189) = ChrW(8092) SBLGreekMap(190) = ChrW(8093) SBLGreekMap(191) = ChrW(8094) SBLGreekMap(192) = ChrW(8095) SBLGreekMap(193) = ChrW(8138) SBLGreekMap(194) = ChrW(8139) SBLGreekMap(195) = ChrW(8140) SBLGreekMap(196) = ChrW(919) SBLGreekMap(197) = ChrW(7992) SBLGreekMap(198) = ChrW(7992) SBLGreekMap(199) = ChrW(7993) SBLGreekMap(200) = ChrW(7994) SBLGreekMap(201) = ChrW(7995) SBLGreekMap(202) = ChrW(7996) SBLGreekMap(203) = ChrW(7997) SBLGreekMap(204) = ChrW(7998) SBLGreekMap(205) = ChrW(7999) SBLGreekMap(206) = ChrW(8154) SBLGreekMap(207) = ChrW(8155) SBLGreekMap(208) = ChrW(921) SBLGreekMap(209) = ChrW(922) SBLGreekMap(210) = ChrW(923) SBLGreekMap(211) = ChrW(924) SBLGreekMap(212) = ChrW(925) SBLGreekMap(213) = ChrW(8008) SBLGreekMap(214) = ChrW(8008) SBLGreekMap(215) = ChrW(8009) SBLGreekMap(216) = ChrW(8010) SBLGreekMap(217) = ChrW(8011) SBLGreekMap(218) = ChrW(8012) SBLGreekMap(219) = ChrW(8013) ' for some reason this does not work, 1 Tim. 6:1 SBLGreekMap(220) = ChrW(8184) SBLGreekMap(221) = ChrW(8185) SBLGreekMap(222) = ChrW(927) SBLGreekMap(223) = ChrW(928) SBLGreekMap(224) = ChrW(920) SBLGreekMap(225) = ChrW(8172) SBLGreekMap(226) = ChrW(929) SBLGreekMap(227) = ChrW(931) SBLGreekMap(228) = ChrW(932) SBLGreekMap(229) = ChrW(8170) SBLGreekMap(230) = ChrW(8171) SBLGreekMap(231) = ChrW(933) SBLGreekMap(232) = ChrW(8189) SBLGreekMap(233) = ChrW(8040) SBLGreekMap(234) = ChrW(8041) SBLGreekMap(235) = ChrW(8042) SBLGreekMap(236) = ChrW(8043) SBLGreekMap(237) = ChrW(8044) SBLGreekMap(238) = ChrW(8045) SBLGreekMap(239) = ChrW(8046) SBLGreekMap(240) = ChrW(8047) SBLGreekMap(241) = ChrW(8104) SBLGreekMap(242) = ChrW(8105) SBLGreekMap(243) = ChrW(8106) SBLGreekMap(244) = ChrW(8107) SBLGreekMap(245) = ChrW(8108) SBLGreekMap(246) = ChrW(8109) SBLGreekMap(247) = ChrW(8110) SBLGreekMap(248) = ChrW(8111) SBLGreekMap(249) = ChrW(8186) SBLGreekMap(250) = ChrW(8187) SBLGreekMap(251) = ChrW(8188) SBLGreekMap(252) = ChrW(937) SBLGreekMap(253) = ChrW(926) SBLGreekMap(254) = ChrW(8127) ' smooth, used as word ending, on like kat' SBLGreekMap(255) = ChrW(8025) SBLGreekMap(256) = ChrW(8027) SBLGreekMap(257) = ChrW(8029) SBLGreekMap(258) = ChrW(8031) SBLGreekMap(259) = ChrW(8027) SBLGreekMap(260) = ChrW(936) SBLGreekMap(261) = ChrW(918) SBLGreekMap(262) = ChrW(8125) SBLGreekMap(263) = ChrW(8189) SBLGreekMap(264) = ChrW(8190) SBLGreekMap(265) = ChrW(8128) ' first overstriking circumflex SBLGreekMap(266) = ChrW(8128) ' second overstriking circumflex SBLGreekMap(267) = ChrW(46) ' full stop, period. SBLGreekMap(268) = ChrW(962) ' also final sigma SBLGreekMap(269) = ChrW(376) ' all following are placeholders to help find errors SBLGreekMap(270) = ChrW(376) SBLGreekMap(271) = ChrW(376) SBLGreekMap(272) = ChrW(376) SBLGreekMap(273) = ChrW(376) SBLGreekMap(274) = ChrW(376) SBLGreekMap(275) = ChrW(376) SBLGreekMap(276) = ChrW(376) SBLGreekMap(277) = ChrW(376) SBLGreekMap(278) = ChrW(376) SBLGreekMap(279) = ChrW(376) SBLGreekMap(280) = ChrW(376) SBLGreekMap(281) = ChrW(376) SBLGreekMap(282) = ChrW(376) SBLGreekMap(283) = ChrW(376) SBLGreekMap(284) = ChrW(376) SBLGreekMap(285) = ChrW(376) SBLGreekMap(286) = ChrW(376) SBLGreekMap(287) = ChrW(32) ' punctuation space Options.AutoFormatAsYouTypeReplaceQuotes = False Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting Selection.Find.MatchCase = True Dim i As Long ' Walk through the array of characters/multi-chars, replacing each with the new one For i = LBound(GraecaIIMap) To UBound(GraecaIIMap) With Selection.Find .Text = GraecaIIMap(i) .Font.Name = "GraecaII" .Replacement.Font.Name = "SBL Greek" .Replacement.Text = SBLGreekMap(i) End With Selection.Find.Execute Replace:=wdReplaceAll Next i Options.AutoFormatAsYouTypeReplaceQuotes = True End Sub Sub SymbolGreekIIToSBLGreekUnicode() ' ' SymbolGreekIIToSBLGreekUnicode Macro ' Converts GraecaII "ASCII" font to SBLGreek Unicode font ' (C) Matt Postiff, 2018, postiffm@umich.edu ' Revised 5/4/2018 ' Released to the public domain ' Developed in Word 2010 ' ' Helpful resources: ' https://unicode-table.com/en/sets/greek-symbols/ ' http://www.unicode.org/charts/ ' https://jktauber.com/2016/01/28/polytonic-greek-unicode-is-still-not-perfect/ ' https://www.compart.com/en/unicode/diacritic/U+0301 ' https://help.keyman.com/keyboard/grkpoly2/1.1/grkpoly2.php Dim SymbolGreekIIMap(295) As String Dim SBLGreekMap(295) As String ' We have to construct these two arrays so that the indexes correspond ' The order of search/replace is important...larger groups need to be ' replaced before smaller groups to properly catch all combinations. SymbolGreekIIMap(0) = "u>" ' upsilon + umlaut SymbolGreekIIMap(1) = "U>" ' Upsilon + umlaut SymbolGreekIIMap(2) = "i>" ' iota + umlaut SymbolGreekIIMap(3) = "I>" ' Iota + umlaut SymbolGreekIIMap(4) = "ÔU" ' strange 0xd4=212 character that is NOT preceded by space but is rough+grave SymbolGreekIIMap(5) = "ÔW" SymbolGreekIIMap(6) = "ÔH" SymbolGreekIIMap(7) = "a;" ' alpha + grave SymbolGreekIIMap(8) = "av" ' alpha + acute SymbolGreekIIMap(9) = "aj" ' alpha + smooth SymbolGreekIIMap(10) = "aJ" ' alpha + rough SymbolGreekIIMap(11) = "a]" ' + smooth, grave SymbolGreekIIMap(12) = "a}" ' + rough, grave SymbolGreekIIMap(13) = "a[" ' + smooth, acute SymbolGreekIIMap(14) = "a{" ' + rough, acute SymbolGreekIIMap(15) = "a\" ' + smooth, circumflex SymbolGreekIIMap(16) = "a|" ' + rough, circumflex SymbolGreekIIMap(17) = "aj/" ' + smooth + iota sub SymbolGreekIIMap(18) = "aJ/" ' + rough + iota sub SymbolGreekIIMap(19) = "a]/" ' + smooth, grave, iota sub SymbolGreekIIMap(20) = "a}/" ' + rough, grave, iota sub SymbolGreekIIMap(21) = "a[/" ' + smooth, acute, iota sub SymbolGreekIIMap(22) = "a{/" ' + rough, acute, iota sub SymbolGreekIIMap(23) = "a\/" ' + smooth, circum, iota sub SymbolGreekIIMap(24) = "a|/" ' + rough, circum, iota sub SymbolGreekIIMap(25) = "a;/" ' + grave, iota sub SymbolGreekIIMap(26) = "a'/" ' + iota sub, circumflex SymbolGreekIIMap(27) = "a/" ' + iota sub SymbolGreekIIMap(28) = "av/" ' + acute, iota sub SymbolGreekIIMap(29) = "a'" ' + circumflex SymbolGreekIIMap(30) = "a" SymbolGreekIIMap(31) = "b" SymbolGreekIIMap(32) = "c" SymbolGreekIIMap(33) = "d" SymbolGreekIIMap(34) = "e[" ' epsilon + smooth + acute SymbolGreekIIMap(35) = "e;" ' epsilon + grave SymbolGreekIIMap(36) = "ev" ' epsilon + acute SymbolGreekIIMap(37) = "ej" ' epsilon + smooth breathing SymbolGreekIIMap(38) = "eJ" ' + rough SymbolGreekIIMap(39) = "e]" ' + smooth, grave SymbolGreekIIMap(40) = "e}" ' + rough, grave SymbolGreekIIMap(41) = "e[" ' + smooth, acute SymbolGreekIIMap(42) = "e{" ' + rough, acute SymbolGreekIIMap(43) = "e" SymbolGreekIIMap(44) = "f" SymbolGreekIIMap(45) = "g" SymbolGreekIIMap(46) = "hj/" ' + smooth + iota sub SymbolGreekIIMap(47) = "hJ/" ' + rough + iota sub SymbolGreekIIMap(48) = "h]/" ' + smooth, grave, iota sub SymbolGreekIIMap(49) = "h}/" ' + rough, grave, iota sub SymbolGreekIIMap(50) = "h[/" ' + smooth, acute, iota sub SymbolGreekIIMap(51) = "h{/" ' + rough, acute, iota sub SymbolGreekIIMap(52) = "h\/" ' + smooth, circum, iota sub SymbolGreekIIMap(53) = "h|/" ' + rough, circum, iota sub SymbolGreekIIMap(54) = "h;/" ' + grave, iota sub SymbolGreekIIMap(55) = "h'/" ' + iota sub, circumflex SymbolGreekIIMap(56) = "h/" ' + iota sub SymbolGreekIIMap(57) = "hv/" ' + acute, iota sub SymbolGreekIIMap(58) = "h;" ' eta + grave SymbolGreekIIMap(59) = "hv" ' eta + acute SymbolGreekIIMap(60) = "hj" ' eta + smooth SymbolGreekIIMap(61) = "hJ" ' eta + rough SymbolGreekIIMap(62) = "h]" ' + smooth, grave SymbolGreekIIMap(63) = "h}" ' + rough, grave SymbolGreekIIMap(64) = "h[" ' + smooth, acute SymbolGreekIIMap(65) = "h{" ' + rough, acute SymbolGreekIIMap(66) = "h\" ' + smooth, circumflex SymbolGreekIIMap(67) = "h|" ' + rough, circumflex SymbolGreekIIMap(68) = "h'" ' + circumflex SymbolGreekIIMap(69) = "h" SymbolGreekIIMap(70) = "iv" ' iota + acute SymbolGreekIIMap(71) = "i;" ' iota + grave SymbolGreekIIMap(72) = "ij" ' iota + smooth SymbolGreekIIMap(73) = "iJ" ' iota + rough SymbolGreekIIMap(74) = "i]" ' + smooth, grave SymbolGreekIIMap(75) = "i}" ' + rough, grave SymbolGreekIIMap(76) = "i[" ' + smooth, acute SymbolGreekIIMap(77) = "i{" ' + rough, acute SymbolGreekIIMap(78) = "i\" ' + smooth, circumflex SymbolGreekIIMap(79) = "i|" ' + rough, circumflex SymbolGreekIIMap(80) = "i'" ' + circumflex SymbolGreekIIMap(81) = "i" SymbolGreekIIMap(82) = "k" SymbolGreekIIMap(83) = "l" SymbolGreekIIMap(84) = "m" SymbolGreekIIMap(85) = "n" SymbolGreekIIMap(86) = "o;" ' omicron + grave accent SymbolGreekIIMap(87) = "ov" ' omicron + acute accent SymbolGreekIIMap(88) = "oj" ' + smooth SymbolGreekIIMap(89) = "oJ" ' + rough SymbolGreekIIMap(90) = "o]" ' + smooth, grave SymbolGreekIIMap(91) = "o}" ' + rough, grave SymbolGreekIIMap(92) = "o[" ' + smooth, acute SymbolGreekIIMap(93) = "o{" ' + rough, acute SymbolGreekIIMap(94) = "o" SymbolGreekIIMap(95) = "p" SymbolGreekIIMap(96) = "q" SymbolGreekIIMap(97) = "rj" ' + smooth SymbolGreekIIMap(98) = "rJ" ' + rough SymbolGreekIIMap(99) = "r" SymbolGreekIIMap(100) = "s" SymbolGreekIIMap(101) = """" ' This is one double-quotation mark, for final sigma SymbolGreekIIMap(102) = "t" SymbolGreekIIMap(103) = "u'" ' upsilon with circumflex SymbolGreekIIMap(104) = "u;" ' + grave SymbolGreekIIMap(105) = "uv" ' + acute SymbolGreekIIMap(106) = "uj" ' + smooth SymbolGreekIIMap(107) = "uJ" ' + rough SymbolGreekIIMap(108) = "u]" ' + smooth, grave SymbolGreekIIMap(109) = "u}" ' + rough, grave SymbolGreekIIMap(110) = "u[" ' + smooth, acute SymbolGreekIIMap(111) = "u{" ' + rough, acute SymbolGreekIIMap(112) = "u\" ' + smooth, circumflex SymbolGreekIIMap(113) = "u|" ' + rough, circumflex SymbolGreekIIMap(114) = "u" SymbolGreekIIMap(115) = "wj/" ' + smooth + iota sub SymbolGreekIIMap(116) = "wJ/" ' + rough + iota sub SymbolGreekIIMap(117) = "w]/" ' + smooth, grave, iota sub SymbolGreekIIMap(118) = "w}/" ' + rough, grave, iota sub SymbolGreekIIMap(119) = "w[/" ' + smooth, acute, iota sub SymbolGreekIIMap(120) = "w{/" ' + rough, acute, iota sub SymbolGreekIIMap(121) = "w\/" ' + smooth, circum, iota sub SymbolGreekIIMap(122) = "w|/" ' + rough, circum, iota sub SymbolGreekIIMap(123) = "w;/" ' + grave, iota sub SymbolGreekIIMap(124) = "w'/" ' + iota sub, circumflex SymbolGreekIIMap(125) = "w/" ' + iota sub SymbolGreekIIMap(126) = "wv/" ' + acute, iota sub SymbolGreekIIMap(127) = "w'" ' + circumflex SymbolGreekIIMap(128) = "w;" ' + grave SymbolGreekIIMap(129) = "wv" ' + acute SymbolGreekIIMap(130) = "wj" ' + smooth SymbolGreekIIMap(131) = "wJ" ' + rough SymbolGreekIIMap(132) = "w]" ' + smooth, grave SymbolGreekIIMap(133) = "w}" ' + rough, grave SymbolGreekIIMap(134) = "w[" ' + smooth, acute SymbolGreekIIMap(135) = "w{" ' + rough, acute SymbolGreekIIMap(136) = "w\" ' + smooth, circumflex SymbolGreekIIMap(137) = "w|" ' + rough, circumflex SymbolGreekIIMap(138) = "w" SymbolGreekIIMap(139) = "x" SymbolGreekIIMap(140) = "y" SymbolGreekIIMap(141) = "z" SymbolGreekIIMap(142) = " jA" ' + smooth SymbolGreekIIMap(143) = " JA" ' + rough SymbolGreekIIMap(144) = " ]A" ' + smooth, grave SymbolGreekIIMap(145) = " }A" ' + rough, grave SymbolGreekIIMap(146) = " [A" ' + smooth, acute SymbolGreekIIMap(147) = " {A" ' + rough, acute SymbolGreekIIMap(148) = " \A" ' + smooth, circumflex SymbolGreekIIMap(149) = " |A" ' + rough, circumflex SymbolGreekIIMap(150) = " jA/" ' + smooth + iota sub SymbolGreekIIMap(151) = " JA/" ' + rough + iota sub SymbolGreekIIMap(152) = " ]A/" ' + smooth, grave, iota sub SymbolGreekIIMap(153) = " }A/" ' + rough, grave, iota sub SymbolGreekIIMap(154) = " [A/" ' + smooth, acute, iota sub SymbolGreekIIMap(155) = " {A/" ' + rough, acute, iota sub SymbolGreekIIMap(156) = " \A/" ' + smooth, circum, iota sub SymbolGreekIIMap(157) = " |A/" ' + rough, circum, iota sub SymbolGreekIIMap(158) = ";A" ' + grave SymbolGreekIIMap(159) = "vA" ' + acute SymbolGreekIIMap(160) = "/A" ' + iota sub SymbolGreekIIMap(161) = "ÒA" ' + smooth+acute+capital A SymbolGreekIIMap(162) = "A" SymbolGreekIIMap(163) = "B" SymbolGreekIIMap(164) = "C" SymbolGreekIIMap(165) = "D" SymbolGreekIIMap(166) = " jE" ' + smooth SymbolGreekIIMap(167) = " JE" ' + rough SymbolGreekIIMap(168) = " ]E" ' + smooth, grave SymbolGreekIIMap(169) = " }E" ' + rough, grave SymbolGreekIIMap(170) = " [E" ' + smooth, acute SymbolGreekIIMap(171) = " {E" ' + rough, acute SymbolGreekIIMap(172) = ";E" ' + grave SymbolGreekIIMap(173) = "vE" ' + acute SymbolGreekIIMap(174) = "E" SymbolGreekIIMap(175) = "F" SymbolGreekIIMap(176) = "G" SymbolGreekIIMap(177) = " jH" ' + smooth SymbolGreekIIMap(178) = "ïH" ' + rough SymbolGreekIIMap(179) = " ]H" ' + smooth, grave SymbolGreekIIMap(180) = " }H" ' + rough, grave SymbolGreekIIMap(181) = " [H" ' + smooth, acute SymbolGreekIIMap(182) = " {H" ' + rough, acute SymbolGreekIIMap(183) = " \H" ' + smooth, circumflex SymbolGreekIIMap(184) = " |H" ' + rough, circumflex SymbolGreekIIMap(185) = " jH/" ' + smooth + iota sub SymbolGreekIIMap(186) = " JH/" ' + rough + iota sub SymbolGreekIIMap(187) = " ]H/" ' + smooth, grave, iota sub SymbolGreekIIMap(188) = " }H/" ' + rough, grave, iota sub SymbolGreekIIMap(189) = " [H/" ' + smooth, acute, iota sub SymbolGreekIIMap(190) = " {H/" ' + rough, acute, iota sub SymbolGreekIIMap(191) = " \H/" ' + smooth, circum, iota sub SymbolGreekIIMap(192) = " |H/" ' + rough, circum, iota sub SymbolGreekIIMap(193) = ";H" ' + grave SymbolGreekIIMap(194) = "vH" ' + acute SymbolGreekIIMap(195) = "H/" ' + iota sub SymbolGreekIIMap(196) = "H" SymbolGreekIIMap(197) = " jI" ' capital iota with soft breathing mark (starts with space at least on name of Jesus) SymbolGreekIIMap(198) = "ÆI" ' AE combination before I in Jesus name is soft breathing SymbolGreekIIMap(199) = " JI" ' + rough SymbolGreekIIMap(200) = " ]I" ' + smooth, grave SymbolGreekIIMap(201) = " }I" ' + rough, grave SymbolGreekIIMap(202) = " [I" ' + smooth, acute SymbolGreekIIMap(203) = " {I" ' + rough, acute SymbolGreekIIMap(204) = " \I" ' + smooth, circumflex SymbolGreekIIMap(205) = " |I" ' + rough, circumflex SymbolGreekIIMap(206) = ";I" ' + grave SymbolGreekIIMap(207) = "vI" ' + acute SymbolGreekIIMap(208) = "I" SymbolGreekIIMap(209) = "K" SymbolGreekIIMap(210) = "L" SymbolGreekIIMap(211) = "M" SymbolGreekIIMap(212) = "N" SymbolGreekIIMap(213) = " jO" ' + smooth SymbolGreekIIMap(214) = " JO" ' + rough SymbolGreekIIMap(215) = " ]O" ' + smooth, grave SymbolGreekIIMap(216) = " }O" ' + rough, grave SymbolGreekIIMap(217) = " [O" ' + smooth, acute SymbolGreekIIMap(218) = "ÓO" ' + rough, acute SymbolGreekIIMap(219) = ";O" ' + grave SymbolGreekIIMap(220) = "vO" ' + acute SymbolGreekIIMap(221) = "O" SymbolGreekIIMap(222) = "P" SymbolGreekIIMap(223) = "Q" SymbolGreekIIMap(224) = "JR" ' + rough SymbolGreekIIMap(225) = "R" SymbolGreekIIMap(226) = "S" SymbolGreekIIMap(227) = "T" SymbolGreekIIMap(228) = " JU" ' + rough SymbolGreekIIMap(229) = " }U" ' + rough, grave SymbolGreekIIMap(230) = " {U" ' + rough, acute SymbolGreekIIMap(231) = " |U" ' + rough, circumflex SymbolGreekIIMap(232) = " ]U" ' + smooth, grave; doesn't exist in Unicode because this is an error from Accordance; will convert to U+1F5B, which is rough, grave SymbolGreekIIMap(233) = "ïU" ' + rough breathing, capital Y upsilon (1 Tim 1:20, Hymenaeus) SymbolGreekIIMap(234) = ";U" ' + grave SymbolGreekIIMap(235) = "vU" ' + acute SymbolGreekIIMap(236) = "U" SymbolGreekIIMap(237) = "V" SymbolGreekIIMap(238) = " jW" ' + smooth SymbolGreekIIMap(239) = " JW" ' + rough SymbolGreekIIMap(240) = " ]W" ' + smooth, grave SymbolGreekIIMap(241) = " }W" ' + rough, grave SymbolGreekIIMap(242) = " [W" ' + smooth, acute SymbolGreekIIMap(243) = " {W" ' + rough, acute SymbolGreekIIMap(244) = "ÇW" ' + smooth, circumflex SymbolGreekIIMap(245) = " |W" ' + rough, circumflex SymbolGreekIIMap(246) = " jW/" ' + smooth + iota sub SymbolGreekIIMap(247) = " JW/" ' + rough + iota sub SymbolGreekIIMap(248) = " ]W/" ' + smooth, grave, iota sub SymbolGreekIIMap(249) = " }W/" ' + rough, grave, iota sub SymbolGreekIIMap(250) = " [W/" ' + smooth, acute, iota sub SymbolGreekIIMap(251) = " {W/" ' + rough, acute, iota sub SymbolGreekIIMap(252) = " \W/" ' + smooth, circum, iota sub SymbolGreekIIMap(253) = " |W/" ' + rough, circum, iota sub SymbolGreekIIMap(254) = ";W" ' + grave SymbolGreekIIMap(255) = "vW" ' + acute SymbolGreekIIMap(256) = "W/" ' + iota sub SymbolGreekIIMap(257) = "W" SymbolGreekIIMap(258) = "X" SymbolGreekIIMap(259) = " j" ' + smooth, used at end of kat', for example SymbolGreekIIMap(260) = "Y" SymbolGreekIIMap(261) = "Z" SymbolGreekIIMap(262) = "j" ' this is overstrike soft breathing SymbolGreekIIMap(263) = "v" ' this is overstrike acute SymbolGreekIIMap(264) = "J" ' this is overstrike rough breathing SymbolGreekIIMap(265) = "`" ' this is overstrike circumflex SymbolGreekIIMap(266) = "'" ' this is overstrike circumflex SymbolGreekIIMap(267) = "." ' full stop, period SymbolGreekIIMap(268) = "~" ' final sigma SymbolGreekIIMap(269) = "!" SymbolGreekIIMap(270) = "@" SymbolGreekIIMap(271) = "#" SymbolGreekIIMap(272) = "$" SymbolGreekIIMap(273) = "%" SymbolGreekIIMap(274) = "^" SymbolGreekIIMap(275) = "&" SymbolGreekIIMap(276) = "*" SymbolGreekIIMap(277) = "(" SymbolGreekIIMap(278) = ")" SymbolGreekIIMap(279) = "_" SymbolGreekIIMap(280) = "+" SymbolGreekIIMap(281) = "{" SymbolGreekIIMap(282) = "}" SymbolGreekIIMap(283) = ":" ' interpunct, mid-dot (raised period) SymbolGreekIIMap(284) = "<" SymbolGreekIIMap(285) = ">" SymbolGreekIIMap(286) = "?" SymbolGreekIIMap(287) = " " SymbolGreekIIMap(288) = "ò" SymbolGreekIIMap(289) = "Ì" SymbolGreekIIMap(290) = "‹" SymbolGreekIIMap(291) = "Æ" ' apostrophe, at end of ejpÆ, abbreviation for epi, looks just like soft breathing mark SymbolGreekIIMap(292) = Chr(187) ' 0xbb, looks like >> but in Greek it should translate to [ SymbolGreekIIMap(293) = Chr(188) ' 0xbc, looks like 1/4 but in Greek it should translate to ] SymbolGreekIIMap(294) = Chr(201) ' 0xc9, looks like E with acute, but translates to Greek question mark = ; SBLGreekMap(0) = ChrW(971) SBLGreekMap(1) = ChrW(980) SBLGreekMap(2) = ChrW(970) SBLGreekMap(3) = ChrW(938) SBLGreekMap(4) = ChrW(8025) ' Upsilon + rough SBLGreekMap(5) = ChrW(8041) ' Omega + rough SBLGreekMap(6) = ChrW(7977) ' Eta + rough SBLGreekMap(7) = ChrW(8048) SBLGreekMap(8) = ChrW(8049) SBLGreekMap(9) = ChrW(7936) SBLGreekMap(10) = ChrW(7937) SBLGreekMap(11) = ChrW(7938) SBLGreekMap(12) = ChrW(7939) SBLGreekMap(13) = ChrW(7940) SBLGreekMap(14) = ChrW(7941) SBLGreekMap(15) = ChrW(7942) SBLGreekMap(16) = ChrW(7943) SBLGreekMap(17) = ChrW(8064) SBLGreekMap(18) = ChrW(8065) SBLGreekMap(19) = ChrW(8066) SBLGreekMap(20) = ChrW(8067) SBLGreekMap(21) = ChrW(8068) SBLGreekMap(22) = ChrW(8069) SBLGreekMap(23) = ChrW(8070) SBLGreekMap(24) = ChrW(8071) SBLGreekMap(25) = ChrW(8114) SBLGreekMap(26) = ChrW(8119) SBLGreekMap(27) = ChrW(8115) SBLGreekMap(28) = ChrW(8116) SBLGreekMap(29) = ChrW(8118) SBLGreekMap(30) = ChrW(945) SBLGreekMap(31) = ChrW(946) SBLGreekMap(32) = ChrW(967) SBLGreekMap(33) = ChrW(948) SBLGreekMap(34) = ChrW(7956) SBLGreekMap(35) = ChrW(8050) SBLGreekMap(36) = ChrW(8051) SBLGreekMap(37) = ChrW(7952) SBLGreekMap(38) = ChrW(7953) SBLGreekMap(39) = ChrW(7954) SBLGreekMap(40) = ChrW(7955) SBLGreekMap(41) = ChrW(7956) SBLGreekMap(42) = ChrW(7957) SBLGreekMap(43) = ChrW(949) SBLGreekMap(44) = ChrW(966) SBLGreekMap(45) = ChrW(947) SBLGreekMap(46) = ChrW(8080) SBLGreekMap(47) = ChrW(8081) SBLGreekMap(48) = ChrW(8082) SBLGreekMap(49) = ChrW(8083) SBLGreekMap(50) = ChrW(8084) SBLGreekMap(51) = ChrW(8085) SBLGreekMap(52) = ChrW(8086) SBLGreekMap(53) = ChrW(8087) SBLGreekMap(54) = ChrW(8130) SBLGreekMap(55) = ChrW(8135) SBLGreekMap(56) = ChrW(8131) SBLGreekMap(57) = ChrW(8132) SBLGreekMap(58) = ChrW(8052) SBLGreekMap(59) = ChrW(8053) SBLGreekMap(60) = ChrW(7968) SBLGreekMap(61) = ChrW(7969) SBLGreekMap(62) = ChrW(7970) SBLGreekMap(63) = ChrW(7971) SBLGreekMap(64) = ChrW(7972) SBLGreekMap(65) = ChrW(7973) SBLGreekMap(66) = ChrW(7974) SBLGreekMap(67) = ChrW(7975) SBLGreekMap(68) = ChrW(8134) SBLGreekMap(69) = ChrW(951) SBLGreekMap(70) = ChrW(8055) SBLGreekMap(71) = ChrW(8054) SBLGreekMap(72) = ChrW(7984) SBLGreekMap(73) = ChrW(7985) SBLGreekMap(74) = ChrW(7986) SBLGreekMap(75) = ChrW(7987) SBLGreekMap(76) = ChrW(7988) SBLGreekMap(77) = ChrW(7989) SBLGreekMap(78) = ChrW(7990) SBLGreekMap(79) = ChrW(7991) SBLGreekMap(80) = ChrW(8150) SBLGreekMap(81) = ChrW(953) SBLGreekMap(82) = ChrW(954) SBLGreekMap(83) = ChrW(955) SBLGreekMap(84) = ChrW(956) SBLGreekMap(85) = ChrW(957) SBLGreekMap(86) = ChrW(8056) SBLGreekMap(87) = ChrW(8057) SBLGreekMap(88) = ChrW(8000) SBLGreekMap(89) = ChrW(8001) SBLGreekMap(90) = ChrW(8002) SBLGreekMap(91) = ChrW(8003) SBLGreekMap(92) = ChrW(8004) SBLGreekMap(93) = ChrW(8005) SBLGreekMap(94) = ChrW(959) SBLGreekMap(95) = ChrW(960) SBLGreekMap(96) = ChrW(952) SBLGreekMap(97) = ChrW(8164) SBLGreekMap(98) = ChrW(8165) SBLGreekMap(99) = ChrW(961) SBLGreekMap(100) = ChrW(963) SBLGreekMap(101) = ChrW(962) SBLGreekMap(102) = ChrW(964) SBLGreekMap(103) = ChrW(8166) '1fe6 SBLGreekMap(104) = ChrW(8058) SBLGreekMap(105) = ChrW(8059) SBLGreekMap(106) = ChrW(8016) SBLGreekMap(107) = ChrW(8017) SBLGreekMap(108) = ChrW(8018) SBLGreekMap(109) = ChrW(8019) SBLGreekMap(110) = ChrW(8020) SBLGreekMap(111) = ChrW(8021) SBLGreekMap(112) = ChrW(8022) SBLGreekMap(113) = ChrW(8023) SBLGreekMap(114) = ChrW(965) SBLGreekMap(115) = ChrW(8096) SBLGreekMap(116) = ChrW(8097) SBLGreekMap(117) = ChrW(8098) SBLGreekMap(118) = ChrW(8099) SBLGreekMap(119) = ChrW(8100) SBLGreekMap(120) = ChrW(8101) SBLGreekMap(121) = ChrW(8102) SBLGreekMap(122) = ChrW(8103) SBLGreekMap(123) = ChrW(8178) SBLGreekMap(124) = ChrW(8183) SBLGreekMap(125) = ChrW(8179) SBLGreekMap(126) = ChrW(8180) SBLGreekMap(127) = ChrW(8182) SBLGreekMap(128) = ChrW(8060) SBLGreekMap(129) = ChrW(8061) SBLGreekMap(130) = ChrW(8032) SBLGreekMap(131) = ChrW(8033) SBLGreekMap(132) = ChrW(8034) SBLGreekMap(133) = ChrW(8035) SBLGreekMap(134) = ChrW(8036) SBLGreekMap(135) = ChrW(8037) SBLGreekMap(136) = ChrW(8038) SBLGreekMap(137) = ChrW(8039) SBLGreekMap(138) = ChrW(969) SBLGreekMap(139) = ChrW(958) SBLGreekMap(140) = ChrW(968) SBLGreekMap(141) = ChrW(950) SBLGreekMap(142) = ChrW(7944) SBLGreekMap(143) = ChrW(7945) SBLGreekMap(144) = ChrW(7946) SBLGreekMap(145) = ChrW(7947) SBLGreekMap(146) = ChrW(7948) SBLGreekMap(147) = ChrW(7949) SBLGreekMap(148) = ChrW(7950) SBLGreekMap(149) = ChrW(7951) SBLGreekMap(150) = ChrW(8072) SBLGreekMap(151) = ChrW(8073) SBLGreekMap(152) = ChrW(8074) SBLGreekMap(153) = ChrW(8075) SBLGreekMap(154) = ChrW(8076) SBLGreekMap(155) = ChrW(8077) SBLGreekMap(156) = ChrW(8078) SBLGreekMap(157) = ChrW(8079) SBLGreekMap(158) = ChrW(8122) SBLGreekMap(159) = ChrW(8123) SBLGreekMap(160) = ChrW(8124) SBLGreekMap(161) = ChrW(7948) SBLGreekMap(162) = ChrW(913) SBLGreekMap(163) = ChrW(914) SBLGreekMap(164) = ChrW(935) SBLGreekMap(165) = ChrW(916) SBLGreekMap(166) = ChrW(7960) SBLGreekMap(167) = ChrW(7961) SBLGreekMap(168) = ChrW(7962) SBLGreekMap(169) = ChrW(7963) SBLGreekMap(170) = ChrW(7964) SBLGreekMap(171) = ChrW(7965) SBLGreekMap(172) = ChrW(8136) SBLGreekMap(173) = ChrW(8137) SBLGreekMap(174) = ChrW(917) SBLGreekMap(175) = ChrW(934) SBLGreekMap(176) = ChrW(915) SBLGreekMap(177) = ChrW(7976) SBLGreekMap(178) = ChrW(7977) SBLGreekMap(179) = ChrW(7978) SBLGreekMap(180) = ChrW(7979) SBLGreekMap(181) = ChrW(7980) SBLGreekMap(182) = ChrW(7981) SBLGreekMap(183) = ChrW(7982) SBLGreekMap(184) = ChrW(7983) SBLGreekMap(185) = ChrW(8088) SBLGreekMap(186) = ChrW(8089) SBLGreekMap(187) = ChrW(8090) SBLGreekMap(188) = ChrW(8091) SBLGreekMap(189) = ChrW(8092) SBLGreekMap(190) = ChrW(8093) SBLGreekMap(191) = ChrW(8094) SBLGreekMap(192) = ChrW(8095) SBLGreekMap(193) = ChrW(8138) SBLGreekMap(194) = ChrW(8139) SBLGreekMap(195) = ChrW(8140) SBLGreekMap(196) = ChrW(919) SBLGreekMap(197) = ChrW(7992) SBLGreekMap(198) = ChrW(7992) ' AE combination before I in Jesus name is soft breathing SBLGreekMap(199) = ChrW(7993) SBLGreekMap(200) = ChrW(7994) SBLGreekMap(201) = ChrW(7995) SBLGreekMap(202) = ChrW(7996) SBLGreekMap(203) = ChrW(7997) SBLGreekMap(204) = ChrW(7998) SBLGreekMap(205) = ChrW(7999) SBLGreekMap(206) = ChrW(8154) SBLGreekMap(207) = ChrW(8155) SBLGreekMap(208) = ChrW(921) SBLGreekMap(209) = ChrW(922) SBLGreekMap(210) = ChrW(923) SBLGreekMap(211) = ChrW(924) SBLGreekMap(212) = ChrW(925) SBLGreekMap(213) = ChrW(8008) SBLGreekMap(214) = ChrW(8009) SBLGreekMap(215) = ChrW(8010) SBLGreekMap(216) = ChrW(8011) SBLGreekMap(217) = ChrW(8012) SBLGreekMap(218) = ChrW(8013) ' this didn't work on 1 Tim. 6:1 because I thought space preceded accent char SBLGreekMap(219) = ChrW(8184) SBLGreekMap(220) = ChrW(8185) SBLGreekMap(221) = ChrW(927) SBLGreekMap(222) = ChrW(928) SBLGreekMap(223) = ChrW(920) SBLGreekMap(224) = ChrW(8172) SBLGreekMap(225) = ChrW(929) SBLGreekMap(226) = ChrW(931) SBLGreekMap(227) = ChrW(932) SBLGreekMap(228) = ChrW(8025) SBLGreekMap(229) = ChrW(8027) SBLGreekMap(230) = ChrW(8029) SBLGreekMap(231) = ChrW(8031) SBLGreekMap(232) = ChrW(8027) SBLGreekMap(233) = ChrW(8025) SBLGreekMap(234) = ChrW(8170) SBLGreekMap(235) = ChrW(8171) SBLGreekMap(236) = ChrW(933) SBLGreekMap(237) = ChrW(8189) SBLGreekMap(238) = ChrW(8040) SBLGreekMap(239) = ChrW(8041) SBLGreekMap(240) = ChrW(8042) SBLGreekMap(241) = ChrW(8043) SBLGreekMap(242) = ChrW(8044) SBLGreekMap(243) = ChrW(8045) SBLGreekMap(244) = ChrW(8046) SBLGreekMap(245) = ChrW(8047) SBLGreekMap(246) = ChrW(8104) SBLGreekMap(247) = ChrW(8105) SBLGreekMap(248) = ChrW(8106) SBLGreekMap(249) = ChrW(8107) SBLGreekMap(250) = ChrW(8108) SBLGreekMap(251) = ChrW(8109) SBLGreekMap(252) = ChrW(8110) SBLGreekMap(253) = ChrW(8111) SBLGreekMap(254) = ChrW(8186) SBLGreekMap(255) = ChrW(8187) SBLGreekMap(256) = ChrW(8188) SBLGreekMap(257) = ChrW(937) SBLGreekMap(258) = ChrW(926) SBLGreekMap(259) = ChrW(8127) ' smooth, used as word ending, on like kat' SBLGreekMap(260) = ChrW(936) SBLGreekMap(261) = ChrW(918) SBLGreekMap(262) = ChrW(8125) SBLGreekMap(263) = ChrW(8189) SBLGreekMap(264) = ChrW(8190) SBLGreekMap(265) = ChrW(8128) ' first overstriking circumflex SBLGreekMap(266) = ChrW(8128) ' second overstriking circumflex SBLGreekMap(267) = ChrW(46) ' full stop, period. SBLGreekMap(268) = ChrW(962) ' also final sigma SBLGreekMap(269) = ChrW(376) ' all following are placeholders to help find errors SBLGreekMap(270) = ChrW(376) SBLGreekMap(271) = ChrW(376) SBLGreekMap(272) = ChrW(376) SBLGreekMap(273) = ChrW(376) SBLGreekMap(274) = ChrW(376) SBLGreekMap(275) = ChrW(376) SBLGreekMap(276) = ChrW(376) SBLGreekMap(277) = ChrW(40) SBLGreekMap(278) = ChrW(41) SBLGreekMap(279) = ChrW(376) SBLGreekMap(280) = ChrW(376) SBLGreekMap(281) = ChrW(376) SBLGreekMap(282) = ChrW(376) SBLGreekMap(283) = ChrW(903) ' interpunct or mid-dot (raised period) SBLGreekMap(284) = ChrW(376) SBLGreekMap(285) = ChrW(376) SBLGreekMap(286) = ChrW(376) SBLGreekMap(287) = ChrW(32) ' punctuation space SBLGreekMap(288) = ChrW(58) ' colon : SBLGreekMap(289) = ChrW(8250) ' very close to a single right-pointing angle quotation mark SBLGreekMap(290) = ChrW(8249) ' very close to a single left-pointing angle quotation mark SBLGreekMap(291) = ChrW(8125) ' apostrophe, looks like smooth breathing mark SBLGreekMap(292) = ChrW(91) SBLGreekMap(293) = ChrW(93) SBLGreekMap(294) = ChrW(894) ' Greek question mark Options.AutoFormatAsYouTypeReplaceQuotes = False Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting Selection.Find.MatchCase = True Dim i As Long ' Walk through the array of characters/multi-chars, replacing each with the new one For i = LBound(SymbolGreekIIMap) To UBound(SymbolGreekIIMap) With Selection.Find .Text = SymbolGreekIIMap(i) .Font.Name = "SymbolGreekII" .Replacement.Font.Name = "SBL Greek" .Replacement.Text = SBLGreekMap(i) End With Selection.Find.Execute Replace:=wdReplaceAll Next i Options.AutoFormatAsYouTypeReplaceQuotes = True End Sub