Часом працюючи в LibreOffice не вистачає деяких функцій (та ж сама ситуація з Microsoft Office). Ну, не вкладають їх туди, бо розробникам та іншим це не потрібно. Але є частина людей, яким раптом та й знадобилася якась додаткова функція. От саме так наразі і в мене сталося - потрібна функція транслітарації з кирилиці на латиницю (може таки варто подумати про повний перехід на латиницю в офіційному українській письмі?). Але можливість писати власні функції та знання макромови дуже виручають в цій ситуації.
Користуючись принципом, що все що ми хочемо вже хотіли до нас, а значить намагалися це реалізувати, пошукав я в інтернеті готову функцію. Вдалося знайти кілька для Excel та одну для Calc. Всі для російського алфавіту. Не біда - кілька хвилин і маємо потрібну функцію. Кому ще буде потрібно - користуйтеся.
Для створення модуля з функцією потрібно зайти в Засоби->Макроси->Керування макросами->Libre Office Basic

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

Якщо покласти в Мої макроси->Standard, то функція буде доступна в будь-якому документі, але тільки на цьому комп’ютері. Тож можете бути прикро враженими відкривши ваш документ на іншій машині і не отримавши результату роботи функції.
Тож, якщо функція повинна бути прив’язана до документу, розміщуйте її в Документ->Standard.
Далі натискаєте кнопку Створити (або Редагувати, якщо це потрібно) і у вікно редактора макросів копіюйте вказаний нижче текст функції.
--------------------------------------------------------------------
ПС. Для реалізації була вибрана офіційна паспортна транслітерація прийнята в 2010 році: http://www.slovnyk.ua/services/translit.php
Користуючись принципом, що все що ми хочемо вже хотіли до нас, а значить намагалися це реалізувати, пошукав я в інтернеті готову функцію. Вдалося знайти кілька для 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
Коментарі
Дописати коментар