Я сконструировал маленький макрос, который транслитерирует латиницу в кириллицу.Код:Sub Translit() Dim oDoc As Object Dim oSearch As Object, nTimes As Long Latin = Array("a","b", "v", "g", "d", "e", "yo", "zh", "z", "i", "j", "k", "l", "m",_ "n", "p", "r", "s", "t", "u", "f", "h", "c", "ch", "sh", "sj", "y", "'", "eh", "yu", "ya") Cyrillic = Array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м",_ "н", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ы", "ь", "э", "ю", "я") oDoc = ThisComponent oSearch = oDoc.createReplaceDescriptor For I = lBound(Latin()) to uBound(Latin()) with oSearch .SearchString = Latin(I) .ReplaceString = Cyrillic(I) .SearchWords = false end with nTimes = oDoc.replaceAll(oSearch) Next I MsgBox ("All done!") End SubКак вы наверное догадались, макрос работает только наполовину. Проблема с "двухбуквенными" комбинациями, например, "sh" -> "ш". Вместо "ш" макрос пишет "сх". Как решить проблему? Наверное можно использовать regular expressions, да я в них не силен.Спасибо!С уважением,Дмитрий
|