次のエージェントは、現在 (または最初に) 選択されている文書の Body アイテムにユーザーが入力した文字列と一致するすべての文字列を置き換えます。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)
Set rtrange = body.CreateRange
count& = rtrange.FindAndReplace _
(searchString$, replaceString$, _
RT_REPL_ALL + RT_FIND_CASEINSENSITIVE)
If count& > 0 Then
Call body.Compact
Call doc.Save(True, True)
End If
Messagebox count& & " replacements made",, count&
End Sub
また、次のエージェントは、現在 (または最初に) 選択されている文書の Body アイテムにユーザーが入力した文字列と一致するすべての文字列を置き換えます。RT_REPL_ALL よりも効率の低いループが使用されますが、繰り返し単位で追加のコーディングが可能です。
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