Office関連

2つの文書を比較するWordマクロ

先日テキスト比較ソフトの「ちゃうちゃう!」がバージョンアップされたことを紹介しました。

・テキスト比較ソフト「ちゃうちゃう!」がバージョンアップされました。
//www.ka-net.org/blog/?p=4724

ちゃうちゃう!の利用場面についてはWord MVPの新田さんも記事を書かれています。

・【ツール紹介】ちゃうちゃう2.0 文字列比較の定番ソフト
http://ameblo.jp/gidgeerock/entry-11908773608.html

コードの比較や類似文の比較、様々な場面でテキスト比較の出番はあるわけですが、実はWordにもちゃんとテキスト比較機能が備わっています。

WordCompareDocs_01

校閲タブの中にある「比較」がそれで、この機能を使うと2つの文書を比較して、どの部分が異なっているのかを分かりやすく表示してくれます。

WordCompareDocs_02

WordCompareDocs_03

この機能を使えば、ちゃうちゃう!要らずでテキスト比較ができるわけですが、ちゃうちゃう!に比べると使い勝手はあまりよくありません。

ちゃうちゃう!が、

起動

テキスト貼り付け

比較実行

という3つの手順で比較できるのに対し、Wordの場合は、

起動

新規文書を2つ作成

テキスト貼り付け

比較実行

比較する文書を選択

という手順が必要になります。

それならば、Wordの使い勝手をもっとよくしてみよう!ということで考えたのが下記のスクリプトです。

Option Explicit

Dim doc1, doc2

With CreateObject("Word.Application")
  .Visible = True
  Set doc1 = .Documents.Add
  Set doc2 = .Documents.Add
  With .Windows
    .CompareSideBySideWith doc1
    .SyncScrollingSideBySide = True '同時にスクロール
  End With
End With

上記コードをメモ帳等のテキストエディタに貼り付け、拡張子を「vbs」にして実行すると、下図のように新規文書が2つ並んだ状態でWordが起動します(上の図がWord、下の図がちゃうちゃう!)。

WordCompareDocs_04

WordCompareDocs_05

あとはテキストを貼り付けて比較を実行すれば良いだけですが、さらに下記のようなマクロをクイック アクセス ツール バーに登録しておくと、ボタン一つで文書の比較ダイアログを表示することができます。

Public Sub ShowCompareDocumentsDlg()
'文書の比較ダイアログ表示
  Dim tmp As Long
  
  With Application
    tmp = .RecentFiles.Maximum
    .RecentFiles.Maximum = 0 '文書を選択しやすくするため一時的に履歴クリア
    .Dialogs(wdDialogToolsCompareDocuments).Show
    .RecentFiles.Maximum = tmp
  End With
End Sub

ポイントはRecentFilesオブジェクトのMaximumプロパティを設定しているところで、一時的に最近使用したファイルをクリアすることで、下図のようにテキスト比較する対象文書を選択しやすくしています。

WordCompareDocs_06

Wordを起動するスクリプトとテキスト比較を実行するWordマクロ、どちらもやっていることは単純で、非常に短いコードですが、組み合わせることでWordでのテキスト比較がやりやすくなります。

興味がある方は是非お試しください。

■ 関連Webページ

・「ちゃうちゃう!」で2つの文書を比較するWordマクロ
//www.ka-net.org/blog/?p=1334
・テキスト比較ソフト「ちゃうちゃう!」がバージョンアップされました。
//www.ka-net.org/blog/?p=4724
・ちゃうちゃう! 2.0を操作するWordマクロ
//www.ka-net.org/blog/?p=4931

CDOを使ってGmail送信を行うVBAマクロ前のページ

ガイドを追加するPowerPointマクロ次のページ

関連記事

  1. Office関連

    ブラウザで簡単にOfficeドキュメントを確認できる「Office Web ビューアー」

    @seinoro さんのツイート(下記)で知ったサービス「View O…

  2. Excel

    OneNoteの指定したセクションをページごとに指定した形式で出力するマクロ

    今回はOneNoteの指定したセクションをページごとに指定した形式で出…

  3. Office関連

    アドインやテンプレートのバージョンチェックを行うVBAマクロ

    色々なアプリケーションに実装されている、「最新バージョンの確認」機能、…

  4. Office関連

    [VBA]ユーザーフォームでBootstrapを使う。

    MSDNフォーラムにあった質問「VBAでのフォーム オブジェクトを立体…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP