misima RESTful Web Service サーバを書いた。端末から利用する Java / Perl クライアントも書いた。Web ブラウザ用 JavaScript も書いた。で,せっかくの Web Service なので,今日は Microsoft Word クライアントも書いてみた。旧字・旧仮名遣い変換なんて文章作成のための編集ツールなのだから,
Microsoft Word クライアント実現方式・設計
VBA (Visual Basic for Applications) 言語を用いて,
- Microsoft Word 編集の選択テキストを変換対象とする。
Selection. Text でこれを取得し,misima RESTful サーバ入力となる XML を組み立てる。misima オプション,ユーザ認証コードはハードコーディング。 - MSXML2.
XMLHTTP オブジェクトにサーバ URI,Content-Type をバインドし,misima RESTful Web Service サーバに POST する。 - サーバで旧字・旧仮名遣い変換された結果を responsText で受け取る。ステータスが 200(正常)でなければエラーを表示する。
- 変換後テキストで選択テキストを置換する。
Word VBA マクロモジュールの作成
Microsoft Word 2003 で Visual Basic Editor を起動して,
ツール(T) - マクロ(M) - Visual Basic Editor(V) を選択し,
プロジェクト・フレームの Normal を右クリックして 挿入(N) - 標準モジュール(M) を選択し,

図 1. Visual Basic Editor
misimaConvert の VBA コードは以下のとおり。MSXML2.
Sub misimaConvert()
' XMLHTTPオブジェクトを生成
Dim xmlHttp As Object
Set xmlHttp = CreateObject("MSXML2.XMLHTTP")
' 選択テキスト(Selection.Text)から送信XMLデータを組み立てる
' misima変換オプションは "-s c -kyti -q"
' = 旧字UCS(s)/旧かな(k)/用語用字(y)/単純補正(t)/繰返符号(i)の各変換
' ユーザ識別コードはnoxinsomniae201402(暫定)
Dim misimaXml As String
misimaXml = "<?xml version=""1.0"" encoding=""UTF-8""?>" & _
"<misimaRESTful>" & _
"<misimaParam>-s c -kyti -q</misimaParam>" & _
"<misimaTarget>" & Selection.Text & "</misimaTarget>" & _
"<misimaUsercode>noxinsomniae201402</misimaUsercode>" & _
"</misimaRESTful>"
' misima RESTful Web ServiceにXMLデータをPOST(同期POST)
Dim URI As String
URI = "http://yasuda.homeip.net:8080/misimaRest/misima/convert"
xmlHttp.Open "POST", URI, False
xmlHttp.setRequestHeader "Content-Type", "text/xml;charset=utf-8"
xmlHttp.send (misimaXml)
 
' 通信ステータスを判定し,200(正常)ならresponseTextで選択テキストを置換
Dim statusCode As String
statusCode = xmlHttp.Status
If statusCode <> 200 Then
MsgBox "misima RESTful Web Service エラー: " & statusCode
Else
Selection.Text = xmlHttp.responseText
End If
Set xmlHttp = Nothing
End Sub
misimaConvert マクロの実行
Microsoft Word の文書編集画面にて,編集中の文章の旧字・旧仮名遣い変換を施したい部分を選択する(マウスをドラッグしてテキストを反転させる)。(図 2.)

図 2. 変換前
ツール(T) - マクロ(M) - マクロ(M)... で表示されるマクロ画面(図 3.)のマクロ名にある misima

図 3. マクロ選択画面

図 4. 変換後
miscellaneous
使い勝手を考えると,マクロメニューから選択するよりも,ボタンやメニューに misima
私は Microsoft Word 2003 (Windows 7) で試したけれども(手元にはこれしかないの),おそらく 2007,
企業のプロキシ Web 環境でも,
参考文献
オライリージャパン (2005/07)
[ 2015/02/02 付記 ]
misima RESTful Web Service は 2014/12 より友人のためだけの限定公開といたしました。上記ユーザ認証コードでは動作しません。


