次のエージェントは、現在の文書の最初の表にあるすべてのセル内のすべての段落を取得します。エージェントは、表と表内の各セルに対してナビゲータを設定することにより、要素内で動作します。
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim body As NotesRichTextItem
Dim rtnavBody As NotesRichTextNavigator
Dim rtnavTable As NotesRichTextNavigator
Dim rtnavCell As NotesRichTextNavigator
Dim rtrangeTable As NotesRichTextRange
Dim rtrangeCell As NotesRichTextRange
Dim rtrangePara As NotesRichTextRange
Dim counter As Integer
Dim msg As String
Dim rtnavFlag As Boolean
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
Set body = doc.GetFirstItem("Body")
REM Get first table in Body item
REM Set range and navigator for it
Set rtnavBody = body.CreateNavigator
If Not rtnavBody.FindFirstElement(RTELEM_TYPE_TABLE) Then
Messagebox "Body item does not contain a table,",, _
"Error"
Exit Sub
End If
Set rtrangeTable = body.CreateRange
Call rtrangeTable.SetBegin(rtnavBody)
Call rtrangeTable.SetEnd(rtnavBody)
Set rtnavTable = rtrangeTable.Navigator
REM Get each cell in table
REM Set range and navigator for it
Set rtrangeCell = body.CreateRange
Set rtrangePara = body.CreateRange
Call rtnavTable.FindFirstElement(RTELEM_TYPE_TABLECELL)
Do
Call rtrangeCell.SetBegin(rtnavTable)
Call rtrangeCell.SetEnd(rtnavTable)
Set rtnavCell = rtrangeCell.Navigator
msg = ""
counter = counter + 1
REM Get each paragraph in cell
REM Set range and its paragraph text
rtnavFlag = rtnavCell.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH)
If rtnavFlag Then
Do
Call rtrangePara.SetBegin(rtnavCell)
Call rtrangePara.SetEnd(rtnavCell)
msg = msg & rtrangePara.TextParagraph & Chr(13)
Loop While rtnavCell.FindNextElement(RTELEM_TYPE_TEXTPARAGRAPH)
Else
msg = "<No text paragraph in cell>"
End If
Messagebox msg,, "Cell " & counter
Loop While rtnavTable.FindNextElement(RTELEM_TYPE_TABLECELL)
End Sub