雑KiN3-改

ここは自分にとっての過去ログです。すなわち、他人にとっては単なるゴミ。

 Wordのファイルの差分をチェックするスクリプトがあったので勉強がてら改造してみた。見つけたものはコマンドラインでファイルを指定して起動すると違いを示した新しいWord画面を表示する。それを手動で名前をつけて保存するのだが、まず、コマンドラインでファイルを指定しなければならないのが面倒。おまけにフルパスでファイル名を記述しなければならないから打ち間違いがおきやすい。ファイルの指定はファイル選択ダイアログを表示してだよね、とばかりに改造を始めた。


 ところで、このスクリプトWSH だとばかり思っていたんだが JScript だったらしい。Microsoft 製の JavaScript って言うことで良いのかな。色々と改変されているようだけれど。まず、これが直ぐに判らなくて手間取る。走らせるとコンパイルエラーが出るんだが、JScript ってことが飲み込めるまで WSH としていじっていたのだから当然だ。


 次にファイル選択ダイアログの表示。WSH には標準のファイル選択ダイアログが無いらしい。調べてみると IEコンポーネントを用いる手があったので、それをパクる。このスクリプトのもともとの作りは、アプリ側でファイルを指定しておいてから、呼び出されるものだったようだ。それを今回は単独で使えるようにしてみたのだな。


 これで、どうなったかと言うと、確かに差分を表示してくれる。しかし、出力されたファイルはフォーマットが壊れている。標準の Word 書類に対してコピーして貼り付けているようで、余白やフォントサイズなど書式が異なっているから、崩れるわけだ。これなら差分をリスト形式で出してくれたほうが有難い。何ページの何処が違っていると言うような。


 そこで更にスクリプトを見て見ると、Word のオブジェクトの Compare というメソッドで処理をしていることが判った。MSDN で調べてみると、差分を返すような動作は出来ないようだ。返してくれれば、如何様にも手を加えて出力することは出来るのだが、変更履歴を表示した Word ファイルを出力するところまで出来ているらしい。ちょっと使いづらいな。


 流石に、差分検出するソースを作りこむ時間は無いので以上で終わりにしたが、惜しいな。差分を知りたいことは多いのだ。