• ベストアンサー

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/17068)
回答No.2

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

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • エクセル 表中のどこかにあるリンクを探す方法

    エクセルでシートのコピーなどをした場合に、セル内の数式がリンクされて元のファイルを参照している事がありますが、   (1)それがどのセルかを見つけ出す簡単な方法はあるのでしょうか?   (2)また、コピーしてもリンクがかからない場合もあるのですがそれは何が違っているのでしょうか? とてもめんどくさい思いをしてます。 対応は出来るものですか?

  • エクセルファイルの管理方法

    エクセルで作ったファイルを共有して使用しています。マクロや計算式を使用したファイルなのですが,勝手にマクロや計算式を変更されないようにする方法はないでしょうか。あるいは,マクロや計算式が変更された場合にその履歴をどこかに残す方法はあるのでしょうか。マクロを使用しないエクセルファイルの場合,エクセルには元々変更履歴という機能がありますが,マクロには対応していません。 いい方法をご存知でしたらご教示いただきたくよろしくお願いします。

  • VB6からEXCELマクロの終了を判断する方法を教えてください。

    VB6からEXCELマクロの終了を判断する方法を教えてください。 VB6とEXCEL(VBAも含む)を使って次のような流れの処理を行うソフトを作っています。 そこでどうしてもEXCELマクロの終了をVB6から判断する必要があり、方法を教えて頂けないでしょうか。 1)VB6でEXCELファイルを起動 2)VB6からセルA1に10,A2に20を代入 3)VB6からEXCELファイル内のマクロをコール 4)マクロはA1+A2の計算を行いA3に代入(30) 5)VB6からA3の値を読み込む (実際にはマクロは複雑な処理をします。) 1)~5)の処理を5000回程度行います。 VB6から送られるデータは毎回変わり、EXCELとマクロで計算させたデータを回収してテキストファイルに書き出します。 一通りのプログラムは完成したのですが、計算したデータを見ると10+20が1.99999とか15.51414とかおかしい結果になっています。 もしかしたらマクロの実行が終わっていない段階でVB6がデータを拾ってしまっている??と考え、マクロの終了をVB6で判断してからデータを回収するようにしたいと思っています。 何か方法はないでしょうか。(または他に間違っているところがあるのでしょうか。) 長文ですみません。よろしくご教示ねがいます。

  • Excel データ切り出しマクロについて

    Excelのマクロについてお聞きしたいと思います. たくさんあるテキストファイルの一部を切り取って貼り付けたい場合は どうしたらいいのでしょういか? マクロではない流れとしては テキストファイルを開く ↓ 全選択してコピー ↓ Excelに貼り付ける ↓ 必要な部分だけ切り取る ↓ 貼り付け データの例としては A 12.3 78.5 B 13.5 65.5 C 23.5 65.8 とあるとしたら一番右側の列のデータのみ(78.5,65.5,65.8) だけ必要とします(切り取りたい部分) どのようなマクロを組んだらいいのでしょうか? よろしくお願いいたします.. マクロ実行時にファイルを選択できる機能もつけていただけたら 嬉しいです. できましたら全コードを載せていただけたら幸いです.

  • エクセルの表をそのままコピーしたい場合

    エクセルで表をつくりました。 その表だけを他のファイルにコピーしたいのですが、セルの幅と行の幅はコピーできずに元のエクセルのセルの大きさのままコピーされてしまいます。 これを元のままの表そのままコピーすることはできるのでしょうか? 数値、計算式も全てコピーしたいのですが、その方法を教えて下さい。

  • Excelマクロでセルの比較

    Excelマクロでセルの比較 まだマクロ初心者なので、詳しいことがわからなくて困っております。 例)●前提として何行目まであるかは変化します     (A列)(B列) (1行目) 35  35 (2行目) 26  26 (3行目) 13  13 (n行目) 12  12 ※n=最終行 【やりたいこと】 このようにシートに入力されていたとして、 「A1=B1?」⇒「A2=B2?」⇒「A3=B3?」⇒「An=Bn?」と比較を進めていき不一致の有無を出す。 もし不一致がなければ、そのまま通過しその次のマクロを実行していく。 不一致があった場合には、不一致の行を別ファイルに出力してファイル保存し、ファイルを閉じる。 マクロを実行している元のファイルは、保存せずにファイルを閉じる) 行の長さが変化するため、その変化にも対応した処理を実行したいと思っております。 本やサイトで調べてみたのですが、基礎知識がないためうまく処理をさせるマクロを作ることが出来ませんでした。 このようなマクロが可能なのかもわかりませんが、出来ましたらこのマクロを教えていただけますでしょうか。 宜しくお願いいたします。

  • エクセルの表をワードにコピー

    エクセルの表をワードにコピーする場合、セル巾、高さを調整してコピーしても、ワードに表示されると、元の巾、高さに戻ってしまいます、そのままコピーする方法を教えてください。また、セルと関係なく数値だけをコピーする方法を教えてください。

  • Excel計算方法変更時の変更保存表示をなくす方法

    Excelのマクロで、処理を高速化するために、 マクロ実行中にApplication.Calculationを一度xlManual(手動)に変更し、 マクロの最後で計算方法を元に戻すようにしています。 この処理を行うと、マクロが記載されているファイル自体に変更を行なっていなくても マクロファイルを閉じる際に「<ファイル名>への変更を保存しますか」というダ イアログが出てしまうのですが、 この表示を出さないようにすることはできませんでしょうか?  <動作環境>  Windows XP  Excel 2003または2007

  • excelのマクロ

    現在、EXCELで届出書を作っています。 自動マクロでマクロも一部組んでいますが 「参照元のファイルのシートのセルが”男”だったら 別のシートの指定のセルに丸を打つ」という内容をマクロ化したいのですがわかりません。 ご教授いただきたくよろしくお願いいたします。

  • EXCEL マクロ

    EXCEL マクロで、「セルB4とC4の文字が、同じだったら、セル範囲B6~D10をコピーして、セル範囲E6~G10に貼り付ける」という処理を行わせたいと思います。 そこで、文字の比較で、”同じだったら”という記述方法がわかりません。#VALUEになってしまいます。 文字が同じ場合は、セル範囲をコピーして張り付けるという処理です。よろしくお願いします。

専門家に質問してみよう