• ベストアンサー

2つのエクセルの表の比較を行う方法?

あるエクセルのファイルがあります。誰かがこれをコピーして、そのコピーしたファイルの一部のセルに変更を加えました。元のファイルとコピーしたファイルを比較して、どこが変更されたかを調べる良い方法はないでしょうか?エクセル自体がこのような機能を持っていれば一番いいのですが、無い場合にはVBでマクロを書くようなことが必要になるのでしょうか?よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.3

Excel2002でしたら、ツール→「変更履歴の作成」の「変更箇所の表示」をクリックし、「編集中に変更箇所を記録する」のチェックボックスをオンにします。 これでデータを変更した所には、変更履歴を表示するコメント(左上に青い三角のマーク)が付きます。確か30日間分のデータを保持してくれるはずです。 その他のバージョンでは 「ファイルコンペア」「ファイル 比較」などで検索するとツールが見つかるかもしれません。

参考URL:
http://www.nifty.com/download/win/util/file/index3_09.htm
zuntac
質問者

お礼

回答ありがとうございます。私が使っている2000にも「変更履歴の作成」がありましたので、さっそく使ってみます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

#1です。 VLOOKUPの利用方法は下記を参考になると思います。 http://www.okweb.ne.jp/kotaeru.php3?qid=670697 #1で対応せるの値しか比較していませんが、式などの 変更もチェックする必要があるかも。朝時間が無いので略。

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.1

Sheet1とSheet2で対応セルを変えていないと仮定して、2つのシートの対応するセルを比較します。 VBEの標準モジュールに Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("sheet1") Set sh2 = Worksheets("sheet2") Dim cl As Range sh1.Activate For Each cl In Selection If cl = sh2.Cells(cl.Row, cl.Column) Then Else MsgBox cl ' cl.Interior.Color = vbYellow End If Next End Sub Sheet1のデータの入っている範囲を指定して 実行して見てください。 変ったセルの値を1つ1つメッセージボックスに表示します。変更が多いと使い物になりませんから、セルに色を付けるとか、なにか別の方法をお望みなら、MsgBox clのところを変更追加してください。 例 cl.Interior.Color = vbYellow 行の先頭’を削除。 ・別の方法として変更が少数列であればVLOOKUP関数で出来そうです。

zuntac
質問者

お礼

回答ありがとうございます。VBはいまいち苦手なのですが検討してみます。

関連するQ&A