2023/06/18

リッチテキスト:#5)文字のスタイル設定

今回は、リッチテキストに表示する文字のスタイルをセットする方法についてです。

LotusScript では、文字のスタイルをセットするクラス NotesRichTextStyle が定義されています。今回は、このクラスの使い方を整理することになります。

NotesRichTextStyle (LotusScript®)


サンプルプログラム

今回は先に NotesRichTextStyle を使用したサンプルプログラムを先に紹介します。

Sub Initialize
   Dim ns As New NotesSession
   Dim ndb As NotesDatabase
   Dim nd As NotesDocument
   Dim nrti As NotesRichTextItem
   Dim nrts As NotesRichTextStyle

   Set ndb = ns.CurrentDatabase
   Set nd = ndb.CreateDocument()

   nd.Form = "RichText"
   nd.Title = "リッチテキスト:#5)文字のスタイル設定"

   Set nrti = nd.CreateRichTextItem("Body")
   Set nrts = ns.CreateRichTextStyle()

   '1行目
   Call nrti.AppendText("デフォルトの文字のスタイル設定")

   '2行目
   Call nrti.AddNewLine(1)
   nrts.Bold = True
   Call nrti.AppendStyle(nrts)
   Call nrti.AppendText("太字の文字です。")

   Call nd.Save(True, False)
End Sub

このプログラムを実行すると以下のような結果になります。


NotesRichTextStyle の使い方と特徴

このクラスも NotesRichTextParagraphStyle と同じく、事前に NotesSession クラスの CreateRichTextStyle メソッドで事前にオブジェクトを作成します。

作成したオブジェクトに必要なスタイルをセット(サンプルでは太字の設定)、それを AppendStyle でリッチテキストに反映すると、以降リッチテキストに追加する文字がそのスタイルとなります。

NotesRichTextStyle の特徴は、1行の中でいくつもスタイルがセットできるところにあります。

Set nrti = nd.CreateRichTextItem("Body")
Set nrts = ns.CreateRichTextStyle()

Call nrti.AppendText("デフォルトでスタート。")

nrts.Underline = True
Call nrti.AppendStyle(nrts)
Call nrti.AppendText("下線の設定をして、")

nrts.Bold = True
Call nrti.AppendStyle(nrts)
Call nrti.AppendText("ここだけ太字!")

nrts.Underline = False
nrts.Bold = False
Call nrti.AppendStyle(nrts)
Call nrti.AppendText("そして元に戻します。")

Call nd.Save(True, False)

例えば、上記のように記述すると、結果は以下のようになります。


NotesRichTextParagraphStyle との違い

リッチテキストにスタイルをセットするクラスは、NotesRichTextParagraphStyle と NotesRichTextStyle がありました。どちらも似たような名前で、使い方 もNotesSession クラスから作成して、NotesRichTextItem に食べさせるので同じです。

この二つのクラスはスタイルの設定を、リッチテキストの1行全体に適用されるか、文字ごとに適用されるか、が違いとなります。

この1行をノーツ用語で段落(Paragraph)というようです。

ざっくりいうと、文字のプロパティの [フォント] タブを担当するのが NotesRichTextStyle となり、文字ごとに設定できます。

[段落] タブを担当するのが、NotesRichTextParagraphStyle で、段落単位の設定をするということになります。


前回 リッチテキストの基本操作 次回

0 件のコメント:

コメントを投稿