Перейти до основного вмісту

Функція транслітерації в Libre Office

Часом працюючи в LibreOffice не вистачає деяких функцій (та ж сама ситуація з Microsoft Office). Ну, не вкладають їх туди, бо розробникам та іншим це не потрібно. Але є частина людей, яким раптом та й знадобилася якась додаткова функція. От саме так наразі і в мене сталося - потрібна функція транслітарації з кирилиці на латиницю (може таки варто подумати про повний перехід на латиницю в офіційному українській письмі?). Але можливість писати власні функції та знання макромови дуже виручають в цій ситуації.

Користуючись принципом, що все що ми хочемо вже хотіли до нас, а значить намагалися це реалізувати, пошукав я в інтернеті готову функцію. Вдалося знайти кілька для Excel та одну для Calc. Всі для російського алфавіту. Не біда - кілька хвилин і маємо потрібну функцію. Кому ще буде потрібно - користуйтеся.




Для створення модуля з функцією потрібно зайти в Засоби->Макроси->Керування макросами->Libre Office Basic



Далі визначте, де буде зберігатися ваша функція.





 Якщо покласти в Мої макроси->Standard, то функція буде доступна в будь-якому документі, але тільки на цьому комп’ютері. Тож можете бути прикро враженими  відкривши ваш документ на іншій машині і не отримавши результату роботи функції.

Тож, якщо функція повинна бути прив’язана до документу, розміщуйте її в Документ->Standard.

Далі натискаєте кнопку Створити (або Редагувати, якщо це потрібно) і у вікно редактора макросів копіюйте вказаний нижче текст функції.

--------------------------------------------------------------------
Function Translate(Txt As String) As String

 Dim Ukr As Variant
 Ukr = Array("а", "б", "в", "г", "ґ", "д", "е", "є", "ж", "з", "и", "і", "ї", "й", "к", _
 "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", _
 "щ", "ю", "я", "ь", "А", "Б", "В", "Г", "Ґ", "Д", "Е", "Є", "Ж", "З", "І", "Ї", "Й", "К", _
 "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", _
 "Щ", "Ю", "Я")

 Dim Eng As Variant
 Eng = Array("a", "b", "v", "h", "g", "d", "e", "ie", "zh", "z", "y", "i", "i", "i", "k", _
 "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", "sh", _
 "sch", "iu", "ia", "", "A", "B", "V", "H", "G", "D", "E", "Ye", "Zh", "Z", "I", "Yi", "Y", "K", _
 "L", "M", "N", "O", "P", "R", "S", "T", "U", "F", "Kh", "Ts", "Ch", "Sh", _
 "Sch", "Yu", "Ya")


 For I = 1 To Len(Txt)
 C = Mid(Txt, I, 1)

 flag = 0
 For J = 0 To 63
 If Ukr(J) = C Then
 outchr = Eng(J)
 flag = 1
 Exit For
 End If
 Next J
 If flag Then outstr = outstr & outchr Else outstr = outstr & C
 Next I

 Translate = outstr

End Function
 ------------------------------------------------------------------

ПС. Для реалізації була вибрана офіційна паспортна транслітерація прийнята в 2010 році: http://www.slovnyk.ua/services/translit.php

Коментарі

Популярні дописи з цього блогу

Нюанси роботи в Google Docs

Багато хто створює документи в чудовій програмі Google Docs. Але крім стандартних функцій, які є в усіх текстових редакторах, в цю Google додає цікаві можливості. Я хочу зберегти та поділитися деякими цікавими можливостями

Додаткові типи питань у тестах Moodle. Частина 1.

Всім привіт Продовжуємо розгляд системи електронних навчальних курсів Moodle. Сьогодні хочу розповісти про додаткові типи питань для діяльності тест. Оскільки Moodle система модульна, є цікаві до неї доповнення, які розширюють її можливості в різних напрямках. І зокрема, нові і цікаві типи питань. Далі розповім про кілька типів питань, які я встановив у своєму університеті, і які мені особисто здалися доволі цікавими.