次のエージェントは、リッチテキストアイテムに対して一連の検索と置換の操作を行うごとに処理を更新します。
Dim session As NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim body As NotesRichTextItem
Dim rtnav As NotesRichTextNavigator
Dim rtrange As NotesRichTextRange
Sub Initialize
Set session = New NotesSession
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
If dc.Count = 0 Then
Messagebox "No document selected",, "No doc"
Exit Sub
End If
Set doc = dc.GetFirstDocument
Set body = doc.GetFirstItem("Body")
Set rtnav = body.CreateNavigator
searchString$ = Inputbox$ _
("Enter the search string", "Search string")
If searchString$ = "" Then Exit Sub
replaceString$ = Inputbox _
("Enter the replacement string", "Replacement string")
If replaceString$ = "" Then Exit Sub
Call rtnav.FindFirstElement(RTELEM_TYPE_TEXTPARAGRAPH)
n% = 0
Set rtrange = body.CreateRange
While rtrange.FindAndReplace _
(searchString$, replaceString$, RT_FIND_CASEINSENSITIVE) > 0
n% = n% + 1
Messagebox "Replacement " & n%,, n%
Call body.Update ' Must update before looping
Wend
If n% > 0 Then
Call body.Compact
Call doc.Save(True, True)
End If End Sub