- 締切済み
Excel セルが完全に一致することを調べるには
Excel2010 VBAで、2つのExcelファイルが、セルに設定されている属性(*1)も含めて、完全に一致していることを確認したいのですが、属性(*1)を1つずつ比較して確認していたのでは膨大な時間がかかります。2つのセルが完全に一致することを簡単に調べる方法はないでしょうか。 完全に一致するとは、セルの値だけでなく、セルに設定されている属性(*1)のすべて(*2)が一致しているという意味です。これらのどれが異なっているかは分からなくても、属性(*1)のすべて(*2)が一致していることが分かればいいです。 (*1) 属性とは、書式設定、文字飾り、塗り潰し、罫線などセルに付加するもので、具体的には、フォント、サイズ、太字、文字色、背景色、配置、上罫線、外枠などのことです。 (*2) すべてといっても、あるセルをコピーして複製したセルのように、両者のセルが一致しているのであればその範囲の属性でいいです。 よろしくお願いします。(Windows7,Excel2010)
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kicmru
- ベストアンサー率66% (2/3)
回答No.1
セルの属性とかはおいておくとして、 単純に「二つの(Excel)ファイルが完全に一致している」ことを確認するのでしたら、 MD5ハッシュ値を比較するのはいかがでしょうか。 MD5(Wikipedia) https://ja.wikipedia.org/wiki/MD5 VBAでMD5ハッシュ値を求める場合は、BASP21を導入するのが簡単なように思います。 BASP21 http://www.hi-ho.ne.jp/babaq/basp21.html あるいは、以下のような方法もあるようです。 https://blog.nktools.jp/2014/06/md5-vba/
補足
回答ありがとうございます。 ハッシュ値で比較する方法ですが、 普通のファイルであれば、 ファイルの中身が同じであれば、 更新者や更新年月日が違っていても ハッシュ値に反映されませんが、 Excelファイルの場合には、 これらの情報がファイルの中身に取り込まれていて、 ハッシュ値に反映されてしまって、 ファイルの中身(セルの中身)が全く同じであっても、 異なったハッシュ値になってしまいます。 また、 バイナリ比較で一致していないファイルもあります。 ハッシュ値もfcivで比較しましたが一致していません。 しかし、Excelファイルを開いて、 中身をどんなに詳しく調べても 違う部分が見当たらないのです。 どのシートなのか、どの列なのか、どの行なのか というように範囲を絞って順番に追っていきたいです。 よろしくお願いします。