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 より友人のためだけの限定公開といたしました。上記ユーザ認証コードでは動作しません。