LotusScriptでノーツ文書に自動的に画像を挿入する

Notes/DominoのLotusScriptで、文書中のリッチテキストに画像を次々と自動的に貼り付けていく処理をどう記述すればいいのか。最後にコーディングしたのは5年以上前なので思い出すのに苦労したが、ようやく思い出したのでGoogleで検索されるようにここに記しておく。
Lotus ScriptのNotesRichTextItemクラスのEmbedObjectメソッドを使うと、どうやっても添付ファイルか埋め込みオブジェクトにしかならず、画像がレンダリングされた状態、つまり画像が画像として表示されている状態で、リッチテキストに挿入することは不可能である。
いま自動化したい処理をNotesクライアントで手動でおこなうと次のようになる。新規文書を作成し、カーソルをリッチテキスト・フィールドに移動する。そしてメニューの「作成」→「画像」をクリックし、ファイル選択の画面から挿入したい画像ファイルを選んで「呼び出し」ボタンをクリックする。
この処理をLotusScriptで自動化するには、NotesUIWorkspaceクラスやNotesUIDocumentクラスを使えば良さそうだということが予測できる。そこでDomino Designerのヘルプをあれこれ調べてみると、やはりNotessUIDocumentクラスのImportメソッドを使えばよいことが分かった。実際のコードを例示すると下記のようになる。
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = ws.ComposeDocument(“”, “”, “(フォーム名称)”)
Call uidoc.FieldClear(“(リッチテキスト・フィールドの名称)”)
Call uidoc.GotoField(“(リッチテキスト・フィールドの名称)”)
Call uidoc.Import(“JPEG Image”, “(貼り付ける画像のファイル名)”)
Call uidoc.Save()
Call uidoc.Close(True)
NotesUIWorkspaceクラスのComposeDocumentメソッドで新規文書を作成し、まずリッチテキスト・フィールドの中身をClearメソッドでクリアする。それからそのリッチテキスト・フィールドにフォーカスを移動して、Importメソッドで画像形式と画像のファイル名のフルパスを指定して画像を挿入する。最後にSaveメソッドで保存し、Closeメソッドで文書を閉じるという処理だ。(最後にCloseメソッドで文書を閉じるのを忘れると、Notesクライアント上で大量のウィンドウが開いたままになり、そのうちエラーで処理が中断される)
NotesUIDocumentクラスのImportメソッドを使うというのが最大のポイントだ。
既存文書に対して同様の処理を実行したいなら、ComposeDocumentメソッドの部分を下記のように書き換えればいい。
Dim cdoc As NotesDocument
Set uidoc = ws.EditDocument(True, cdoc, False)
cdocというNotesDocumentオブジェクトに、データベース内から様々な方法で検索した文書を代入しておいてから、NotesUIWorkspaceオブジェクトのEditDocumentメソッドを呼び出すという手順だ。
以上、将来また同じコードを書く必要が出てきたときのために(そんなことは二度となさそうだが)ここに記しておく。