ВГОРУ

Title Case Функція для LibreOffice Calc

TITLECASE() Опис

Функція TITLECASE() призначена для перетворення існуючого тексту у формат заголовків та повертає набір слів у вигляді: "Function for Title Case".

Код функції Title Case замінює такі розділювачі, як дефіс та нижнє підкреслення на пробіли, перетворює всі слова в написання з великої букви, та конвертує сполучники у нижній регістр.

Title Case може бути корисною для виправлення регістру літер у заголовках новин, назвах статтей сайтів або назвах відео для YouTube.

TITLECASE() подібна до стандартної функції PROPER(), проте відрізняється тим, що сполучники не пишуться з великої літери.


StarBASIC Код для TITLECASE()

Ось код макросу для створення користувацької функції, яка може відображати текст як заголовки (Title Case) в програмі LibreOffice Calc.

Відкрийте меню Tools - Macros - Edit Macros..., виберіть Module1 і скопіюйте наведений нижче текст до модуля:

Function TitleCase(ByVal str As String) As String
  'moonexcel.com.ua
  Dim words As Variant
  Dim FCalc As Object
    
  FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")  
    
  oddWordsLat = "A|An|And|As|At|But|By|En|For|If|In|Is|Of|On|Or|The|To|Vs|Via"
  oddWordsCyr = "І|Як|На|Але|Для|Якщо|В|Чи|До|Через|Та|Від|Під|Над|И|Как|Но|То|Или|От|Под|К"  
  words = Split(oddWordsLat + "|" + oddWordsCyr,"|") 
  
  str = FCalc.callFunction("PROPER", Array(str))  
  
  For i = LBound(words) To UBound(words)  
    pattern = "(?!^)\b" + words(i) + "\b"
    replacement = LCase(words(i))
    
    str = FCalc.callFunction("REGEX", Array(str,pattern,replacement,"g"))
  Next i
    
  TitleCase = str
End Function

Потім закрийте Macro Editor, поверніться до LibreOffice Calc і використовуйте нашу нову функцію в будь-якій клітинці.

Використання розширення

Ви також можете скористатись функцією TITLECASE() встановивши безкоштовне розширення YouLibreCalc.oxt або його повнофункціональну версію YLC_Utilities.oxt.

Після цього, дана функція буде доступна у всіх файлах, які будуть відкриті в LibreOffice Calc.