• 締切済み

VBAを使って、2つのファイルを比較したい

OS Windows98 Excel2000 下記のとおり、2つのファイルがあるとします。 aaa.xls(比較元) bbb.xls(比較先) 内容はほとんど同じなのですが、 行や列が追加、或いは削除されている場合もあります。 1)追加されている場合 bbb.xlsよりaaa.xlsへコピペをする。 2)削除されている場合 aaa.xlsからセルの値を削除し、 それ以下の値を上へ詰める。 ここで問題なのは、 1)ページ毎に行数が決まっていない。 2)アイテム毎に1行ずつ空白の行がある。 3)追加或いは削除の場合のコピペを行う場合、   ページブレイクをどう扱うか。 4)連番等といったLOOP等を使ってできる基本になる   値が全くない。(わざわざ手動で追加してもよいが、   全部で20ファイル(比較元)、各ファイルには300以   上の行がある。) 5)セルによって、2つ以上のセル(上下どうし、或いは   隣どうし)が結合している場合もある。 以前、Excel98でVBAを使ってプログラムを書いたことはあ るのですが、Excel2000は初めての初心者同様のものです。 プログラムの内容を書いてもらえれば1番うれしいのです が、多分これだけの説明ではそういう訳にはいかないと思 います。 ですから、何らかのきっかけとなるアドバイスでも頂けれ ばと思ってここへ質問にきました。 よろしくお願いします。

みんなの回答

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

個人的な嗜好としては、要件に見合うツールでも作ってみたいと思いますが現実的ではないですね。 Vector で『excel 比較』で検索したらフリーソフトが2つありました。(goo) 結合セルまで対応しているか確認していませんが、試してみる価値はあると思います。 ダメなら、結合を解除して比較しても効果はあるでしょう。 一度試してみて下さい。

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

2つのファイルを比較するからには、同一とは、どのフィールド(通常はエクセルの列)について言うのか、質問に書かないと(考えがそこに及ばないと)駄目です。 この列でそれぞれ2つのファイルをソートし、その列のデータをマッチングキーとして、マッチングのロジックで突合せすれば良いのです。昔のバッチ作業のコンピュタ作業はこのロジックを使って、「ファイル更新」をやってました。ファイルの「キー」ということがいつも念頭にありました。一方がマスターファイル、他方がトランザクションファイルでした。情報処理受験教本にはこのロジックが載っています。 最近はこう言う道から、学習していかないので、有名で無くなっているのかも。しかし有用で、美しいロジックです から勉強してください。