作成者カテゴリ 
公開
ゴン太
04/02/2010 10:47 AM
その他
ノーツサーバノーツクライアントサーバOSクライアントOSネットワークプロトコル
7.x7.xWindows Server 2003Windows VistaTCP/IP

リッチテキストフィールドの半角カナ濁音の置換

いつも大変参考にさせて頂いております。
貴サイトやヘルプを参考に半角カナを全角カナに置換するスクリプトを作成しました。
受信メールにおいて、Bodyフィールドに半角カナが入っていれば、全角カナに置換をしたいのですが、作成したスクリプトであると半濁音が濁音の置換がうまくいきません。
スクリプトは5分置きのエージェントで実行しています。(新規メール受信前後としたかったのですが、作成している途中で今の状態にしています)

1行の文字列であればうまくいくのですが、改行が入っていると1行目の文字列に別の文字列が付いてしまいます。

スクリプトの抜粋を貼付します。
半角カナ濁音を全角カナ濁音に置換できるかご教授いただけますようよろしくお願い致します。

Sub Initialize
Set session = New NotesSession
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments

Set doc = dc.GetFirstDocument
Set body = doc.GetFirstItem("Body")
Set rtnav = body.CreateNavigator

Set rtrange = body.CreateRange

count& = rtrange.FindAndReplace ("゙", "A", RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )
count& = count& + rtrange.FindAndReplace ("゚", "B", RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )

count& = count& + rtrange.FindAndReplace ("カA", "ガ",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )
count& = count& + rtrange.FindAndReplace ("キA", "ギ",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )
count& = count& + rtrange.FindAndReplace ("クA", "グ",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )
count& = count& + rtrange.FindAndReplace ("ケA", "ゲ",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )
count& = count& + rtrange.FindAndReplace ("コA", "ゴ",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )

count& = count& + rtrange.FindAndReplace ("ア", "ア",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )
count& = count& + rtrange.FindAndReplace ("イ", "イ",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )
count& = count& + rtrange.FindAndReplace ("ウ", "ウ",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )
count& = count& + rtrange.FindAndReplace ("エ", "エ",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )
count& = count& + rtrange.FindAndReplace ("オ", "オ",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )

count& = count& + rtrange.FindAndReplace ("カ", "カ",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE)
count& = count& + rtrange.FindAndReplace ("キ", "キ",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )
count& = count& + rtrange.FindAndReplace ("ク", "ク",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )
count& = count& + rtrange.FindAndReplace ("ケ", "ケ",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )
count& = count& + rtrange.FindAndReplace ("コ", "コ",RT_REPL_ALL + RT_FIND_PITCHINSENSITIVE + RT_FIND_CASEINSENSITIVE )

If count& > 0 Then
Call body.Compact
Call doc.Save(True, True)
End If
Messagebox count& & " replacements made",, count&

RTRAGE = ""
End Sub


[Previous Main Document]
リッチテキストフィールドの半角カナ濁音の置換 (ゴン太) * 現在地 *
. . Re: リッチテキストフィールドの半角カナ濁音の置換 (すーしーほー)
. . . . Re: リッチテキストフィールドの半角カナ濁音の置換 (ゴン太)
. . Re: リッチテキストフィールドの半角カナ濁音の置換 (寝雪)
. . . . Re: リッチテキストフィールドの半角カナ濁音の置換 (ゴン太)
. . . . . . Re: リッチテキストフィールドの半角カナ濁音の置換 (寝雪)
[Next Main Document]