2023/10/09

リッチテキスト:#11)表のアクセス

前回は表の作成方法でしたが、今回は作成された表にアクセスする方法についてまとめます。


表のアクセス方法

リッチテキスト内の 表にアクセスする方法は少し特徴があります。

NotesRichTextNavigator クラスという、リッチテキスト内を走査できるオブジェクトがあります。これを使用して表を探し、NotesRichTextTable オブジェクトとして取得します。

NotesRichTextNavigator (LotusScript®)

先にサンプルコードを示します。前回のコードを再利用しながら以下のコードを追加しました。

   '表の作成
   Call nrti.AppendTable(5, 3)


   '表の操作
   Dim nrtnav As NotesRichTextNavigator
   Dim nrttbl As NotesRichTextTable

   Set nrtnav = nrti.CreateNavigator()
   If nrtnav.FindFirstElement(RTELEM_TYPE_TABLE) Then
      Set nrttbl = nrtnav.GetElement()
             (取得した表の処理を記述)
   End If

まず走査するリッチテキストに対して CreateNavigator メソッドを使用して NotesRichTextNavigator のオブジェクトを新規作成します。続いて FindFirstElement で探したいリッチテキスト内のエレメントを走査します。リッチテキスト内の表や文書リンクなどをエレメントと呼ぶようですね。

FindFirstElement (NotesRichTextNavigator - LotusScript®)

引数に RTELEM_TYPE_TABLE を指定すると表を検索します。エレメントが見つかるとこのメソッドは True を返します。そして、GetElement メソッドでそのエレメントが取得できます。


なんだか少し面倒ですね。

リッチテキスト内には様々なエレメントが混在できます。既存データ内のリッチテキスト内をプログラムでアクセスするためには、このような方法で走査するしかないのかもしれません。

ただ、今回のように新規で作成した表にアクセスするには回りくどいです。以下のような感じで、AppendTable の戻り値が NotesRichTextTable オブジェクトだったら便利なんですけどねぇ...

   Set nrttbl = nrti.AppendTable(5, 3)


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

0 件のコメント:

コメントを投稿