TOP

Title Case LibreOffice Calc の関数

TITLECASE()

関数 TITLECASE() は、既存のテキストをタイトル casetbl に変換するように設計されており、「Function for Title Case」という形式で単語​​のセットを返します。

Title Case 関数コードは、ハイフンやアンダースコアなどの区切り文字をスペースに置き換え、すべての単語を大文字に変換し、接続詞を小文字に変換します。

Title Case は、ニュースの見出し、サイト記事のタイトル、または YouTube ビデオのタイトルの大文字と小文字を修正するのに役立ちます。

TITLECASE() は標準の PROPER() 関数と似ていますが、接続詞が大文字にならない点が異なります。


BASIC TITLECASE() のコード

以下は、LibreOffice Calc でテキストをタイトルとして表示できるカスタム関数 (Title Case) を作成するマクロ コードです。

メニュー 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 に戻り、任意のセルで新しい関数を使用します。