• 締切済み

エクセルで作った表の比較

エクセルで作ったいくつかの表があります。 すべて同じ表で、全く同じ計算式が入っているはずなんですが、確認をしたいんです。 IF関数で比較してみたんですが、どうも計算式ではなく 表示される結果を比べているようで思ったようになりません。 同じ計算式が入っているか確認するには どうしたらいいのでしょうか? 表はそれぞれ別の名前をつけて保存していて、同じフォルダーにはいっています。 よろしくお願いします。

みんなの回答

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

VBAでやらざるを得ないでしょう。 Sub test05() Set sh = Workbooks("book1").Worksheets("sheet1") For Each cl In Selection If cl.HasFormula Then ' MsgBox cl.Formula If cl.Formula <> sh.Cells(cl.Row, cl.Column).Formula Then Debug.Print cl.Row, cl.Column End If Next End Sub 1つのシートで式の入っているセルを範囲指定します。 もうひとつのシートについては、上記コードの中で、Book名のBook1とSheet名Sheet1を自分の例で変えてください。 すみませんよい例が手元になくて、実際テストしてませんがよろしく。

hatsuyuki
質問者

お礼

みなさま、回答をありがとうございましたm(__)m。 いろいろな方法を教えていただいたので、やってみたいと思っています。助かりました。ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

#1さんと、かぶるところがありますが、 私は、数式を俯瞰的?にみるときに、 Ctrl+Shift+@ を押して調べています。(もどす時は、また、同じショートカットです) だから、メニューのウィンドウで、新しいウィンドウを開いて、シートを並べて、それで比較してみたらいかがでしょうか?

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

>表はそれぞれ別の名前をつけて保存していて、同じフォルダーにはいっています。 ここを見落としてました。 私が提示したマクロは同じブックの別シートの 表をチェックするものです。 失礼しました。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

この例は、シート1のA1~D10に式が入っていて、 シート2の同じ範囲に式が入っていると仮定したもの です。 セル範囲が違う場合は s = "a1:d10" この部分を書き換えればOKです。 シートが違う場合も書き換える必要があります。 シート間で比較するセル範囲が違う場合はもう一工夫 必要です。 Sub hikaku() Dim c As Range Dim s As String Dim t As String s = "a1:d10" MsgBox s For Each c In Worksheets(1).Range(s) t = c.Address(0, 0) If c.Formula <> Worksheets(2).Range(t).Formula _ Then Worksheets(3).Range("a65536").End(xlUp).Offset(1).Value = c.Address(0, 0) Next End Sub

  • saodake
  • ベストアンサー率21% (51/233)
回答No.1

ツールでオプションで表示タグのウィンドウオプションで数式にチェックすれば数式が表示させることが出来ます。二つのファイルを開いてウィンドウの整列を使って比較する。(そのほか同じファイルなら新しいウィンドウを開くで2画面表示できます。)

関連するQ&A