2024/02/14

リッチテキスト:#16)テキストの抽出

ノーツの特徴的な機能であるリッチテキストを LotusScript で操作する方法を紹介している連載『リッチテキストの基本操作』の 16 回目です。

前回は、メールの本文からリッチテキストを抽出するサンプルプログラムを紹介しました。今回はテキスト成分を抽出する方法をまとめます。


サンプルの動作

リッチテキストに適当なコンテンツを入力した文書を用意し、サンプルのエージェントを実行するアクションボタンを配置します。

アクションをクリックすると次のように、リッチテキストからテキスト成分だけを抽出してメッセージボックスで表示します。


サンプルのエージェント

作成したコードは以下の通りです。

NotesRichTextItem オブジェクトの Text プロパティを取得しているだけです。たったこれだけのコードで、リッチテキストからテキスト成分を取得できています。改行や表も体裁よく再現されているのでなかなか高性能ですね。

Option Declare

Sub Initialize
   Dim nuiw As New NotesUIWorkspace
   Dim nuid As NotesUIDocument
   Dim nd As NotesDocument
   Dim ni As NotesItem
   Dim nrti As NotesRichTextItem

   Set nuid = nuiw.CurrentDocument
   Set nd = nuid.Document

   Set ni = nd.GetFirstItem("Body")
   If ni.Type = RICHTEXT Then
      Set nrti = ni
      MsgBox nrti.Text, 64, "RichText #16"
   End If
End Sub

前回、少し複雑なサンプルを紹介したので順序を間違えたかもしれませんね...


入力中は取得できない!?

ところで、この文書を編集し、文字を追加してから、このエージェントを実行すると『文書が保存されていません』とエラーが発生します。

テキストや数値フィールドは、入力したてのデータにも簡単にアクセスできます。しかし、リッチテキストフィールドには少し制限があるようですね。


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


0 件のコメント:

コメントを投稿