- ベストアンサー
マクロで文書比較
Wordで以下のような文書比較をしたいと思っていますが,可能でしょうか? (Word2003の文書比較機能は対象外です) 例) Aという文書とBという文書があり, BはAを少し変更したものである. A文書とB文書の比較を行い,Cという新しいファイルに保存する.
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
マクロを使うと、No.2さんの言うように、いい感じで判断してくれませんね。 A: こんにちわ 良いお天気ですね。 B: どうも。 こんにちは。 とても良いお天気です。 だと、 C: 「こんにちわ」が「どうも。」になった。 「良いお天気ですね。」が「こんにちは。」になった。 「」が「とても良いお天気です。」になった。 みたいな感じになると思います。 また、書式の変更があっても同じと見なされますが、こちらは変更として扱う必要がありますか? -- No.3さん指摘のFCを使用するマクロであれば、 Windows("文書 1").Activate ActiveDocument.SaveAs FileName:="A.txt", FileFormat:=wdFormatText Windows("文書 2").Activate ActiveDocument.SaveAs FileName:="B.txt", FileFormat:=wdFormatText Shell("FC D:\A.txt D:\B.txt > C.txt") Documents.Open FileName:="D:\C.txt" とか。 -- > 会社ではWord2000 2000には比較機能って無いんでしたっけ? 2000と2003を一緒に使うと、ファイルが開けない事が多々あったように記憶していますが…。 後は、オンラインソフトなら比較ソフトがあるようですが、シェアウェアにしては価格がネック。 Diff Doc http://www.vector.co.jp/soft/win95/util/se292483.html
その他の回答 (3)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 VBAの範囲内でしたら、MS-Wordのテキストは取り出せますので、それをTemporary テキストに出力して、FC で比較して、その戻り値を表示させるぐらいしか思いつきませんね。
- imogasi
- ベストアンサー率27% (4737/17069)
>マクロで文 マクロで組むプログラムのロジックは、組む人に任されています。 質問者が考える文章比較というウィザードはないでしょう。 人間は総合的判断ができて、「少し変更」したかどうか分かります。 しかしコンピュタープログラムは、ロジックやアルゴリズムはそうは行きません。厳密に規定しなくてはなりません。それをプログラマが考えられないならプログラムは組めません。 どういう風になったら少しの変更なんでしょうか。1字入れるだけでも、機械的に比較すると不等となって、等しいか、等しくないかに分類されます。 ですから、この問題はワードやマクロの問題でなく、文章比較に関するアルゴリズム(XX法など。ないしそれをプログラムに組んだソフトがあるか)の問題です。 これは数学的な理論に基づいたものであるべきで、ここのカテでなく数学寄りの適当なカテを選ぶべきです。 話題はそれますが、手書き文字レベルのなどの、文字の同定などはXX法など、各社独自の方法を工夫し、詳細は門外不出であるようです。 ワードのVBAは資料も出回っていないので、一般には勉強に苦労しますので、そういうソフトがないか探すのが一番でしょう。
- neKo_deux
- ベストアンサー率44% (5541/12319)
A: こんにちわ 良いお天気ですね。 B: こんにちは。 とても良いお天気です。 の場合、Cというファイルに保存する内容は? -- > (Word2003の文書比較機能は対象外です) こちらを利用するのが合理的ですが、使えないとする具体的な根拠は? そちらの問題点を解消する方が簡単かも知れません。
補足
Cのファイルには、Aの「良いお天気ですね。」と、「とても良いお天気です。」という変更された部分をピックアップしたいのです。 Word2003を対象外としているのは、 この機能業務上必要としている点、また、 会社ではWord2000を私用しているため、 2003の環境が整っていないため。という理由があります。
お礼
回答ありがとうございます. 確かに,シェアウェア価格には少々驚きましたが・・・ 地道に文書を見て比較していくしかなさそうですね. Word2000にも比較機能はあるのですが, 2003に比べると,機能面でかなり劣るので, 現在業務で扱っている点から考えると, あまり使えない,というのが現状です.