次のエージェントは、検索と置換の後に、現在の文書または最初に選択された文書の Body アイテムを圧縮します。
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