TOP

Sentence Case LibreOffice Calc の関数

SENTENCECASE()

関数 SENTENCECASE() は、既存のテキストを文形式に変換するように設計されており、単語のセットを「Sentence case function」の形式で返します。

Sentence Case は、ピリオド、感嘆符、または疑問符で区切られた行を個別の文に分割します。次に、文の最初の文字を除くすべての単語を小文字に変換し、すべての要素を 1 つの連続したテキストに結合します。

SENTENCECASE() 関数は、テキスト全体にわたって文中の文字の大文字と小文字を修正するのに役立ちます。


BASIC SENTENCASE() のコード

以下は、LibreOffice Calc で文内の単語の大文字と小文字を区別できるカスタム関数 (Sentence Case) を作成するマクロ コードです。

メニュー Tools - Macros - Edit Macros... を開き、Module1 を選択して、次のテキストをモジュールにコピーします。

Function SentenceCase(ByVal str As String) As String
  'moonexcel.com.ua
  Dim sentences As Variant
  Dim i         As Integer
  Dim FCalc     As Object
    
  FCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")    
  
  str = Replace(str,"-"," ")
  str = Replace(str,"_"," ")
  str = FCalc.callFunction("TRIM", Array(str))
  str = LCase(str)
  str = FCalc.callFunction("REGEX", Array(str,"([.!?])(\s)(\w)","$1#$3","g"))
  
  sentences = Split(str, "#")
    
  For i = LBound(sentences) To UBound(sentences)       
    sentences(i) = UCase(Left(sentences(i), 1)) & Mid(sentences(i), 2)       
  Next i
    
  SentenceCase = Join(sentences," ")
End Function

次に、Macro Editor を閉じ、LibreOffice Calc に戻り、任意のセルで新しい関数を使用します。