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

関連記事

  1. Office関連

    [VBA]ファイルタブ(Backstage ビュー)の表示を禁止する。

    数年前ホームページで「ファイルタブボタンのクリックを禁止する(Offi…

  2. Office関連

    PowerShellからNetOfficeを使ってExcelを操作する方法

    先日、Excel MVPの伊藤さんがPowerShellからExcel…

  3. Office関連

    選択中の図形の文字列を蛍光ペンでハイライトするPowerPointマクロ

    MSDNフォーラムに「PowerPoint 2016で、マクロで選択中…

  4. Office関連

    PHPPresentationを使ってPHPからPowerPointファイルを出力してみる。

    久しぶりにPHPOfficeを覗いてみたら「PHPPresentati…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP