中級の資格の中に、xPagesとか盛り込まないで欲しい!と思っているのは筆者だけではないはずです。
上級がLotusScriptっておかしいよなぁ。まぁ、筆者はLotusScriptの試験は合格済みなので、アップデートすれば良いだけなのですが。
ということで、恒例のクリックの時間です。昨日、クリックした方もそうでない方もクリックしてくださいね。
さて、今日もどこぞの懇談室の話題について書いてみます。
既存の文書のリッチテキストの内容を変更してみるというものです。
NotesRichText関連のクラスは、たくさんあり、それぞれの役目がどういったものなのか難しいので、使いこなすのが大変かと思いますが、今回は以下のように考えます。
- リッチテキストの中を検索する(NotesRichTextNavigatorクラス)。
- 変更後のスタイルを決定する(NotesRichTextStyleクラス)。
- 変更したい範囲を決定する(NotesRichTextRangeクラス)。
- 範囲に対して、スタイルをセットする(NotesRichTextRangeクラス)。
では、サンプルです。
以下のサンプルは、エージェントとして作成してあります。
ビューで選択した文書の、"Body"というリッチテキストフィールド中のフォントスタイルを変更するというものです。
変更する文字列は、「あいうえお」で始まり、「さしすせそ」の前にある文字までです。
「さしすせそ」の文字は変更対象にならないことに注意してください。
また、サンプルはエラー処理とかは施していませんので、実際に利用する際は、注意してください。
Sub Initialize Dim session As New NotesSession Dim curdb As NotesDatabase Dim docs As NotesDocumentCollection Dim doc As NotesDocument Dim ritem As NotesRichTextItem Dim rnavi As NotesRichTextNavigator Dim rrange As NotesRichTextRange Dim rstyle As NotesRichTextStyle '現在の文書及びリッチテキスト取得 Set curdb = session.CurrentDatabase Set docs = curdb.UnprocessedDocuments Set doc = docs.GetFirstDocument 'リッチテキストスタイルの作成 Set ritem = doc.GetFirstItem( "Body" ) ' リッチテキストナビゲータの作成 Set rnavi = ritem.Createnavigator() '文字列検索用 Set rrange = ritem.Createrange() '文字範囲指定用 Set rstyle = session.CreateRichTextStyle() '文字スタイル用 'リッチテキストのスタイルを変更する rstyle.Notescolor = COLOR_RED rstyle.Italic = True ' リッチテキスト内の文字列の検索 If rnavi.FindFirstString( "あいうえお" ) = True Then '検索した最初の文字を、範囲の最初に位置づける Call rrange.Setbegin( rnavi ) '範囲の最後の文字列の検索 If rnavi.FindFirstString( "さしすせそ" ) = True Then '検索した文字の前の文字を、範囲の最後に位置づける Call rrange.Setend( rnavi ) End If '設定したスタイルを範囲にセットする Call rrange.Setstyle( rstyle ) End If '文書を上書き保存する Call doc.Save( True, True ) End Sub
【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします
