• 締切済み

エクセルで2つのファイルを差分して、追加・削除されたそれぞれのファイルのデータセルを色で塗る。

エクセルで2つのファイルを差分して、追加・削除されたそれぞれのファイルのデータセルを色で塗る。変更のないものは元ファイルから新ファイルへセル内容をコピーするというVBAは可能でしょうか? 例)元ファイル、新ファイルにおいてA列を差分。 元ファイル 新ファイル   A   B    A   B 1 aa1  bb1   aa1 2 aa2  bb2   aa3 3 aa3  bb3   aaA 4 aa4  bb4   aa4 とあるとします。 追加>新ファイルのA3セルを塗る。 削除>元ファイルのA2セルを塗る。 変更なし>新ファイルのB1、B2、B4へ元ファイルのB1、B3、B4のデータをコピペ。 元ファイル 新ファイル   A   B    A   B 1 aa1  bb1   aa1  bb1 2 aa2  bb2   aa3  bb3 3 aa3  bb3   aaA 4 aa4  bb4   aa4  bb4 このような感じです。 どうぞよろしくお願いします。

みんなの回答

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

質問者はデータベースとかプログラムとかを考えたことが無いのであろう、こともなげに差分とか言うが、両者の行(レコード)および項目(列)を結びつけるれこーどのキーのようなものが、両方に存在しないとそもそもこの議論ができないのに気づいていない。私の言うことを良く考えてみてください。

errie217
質問者

補足

すいません。差分という言い方がまずかったでしょうか。 下記を元に作業用シートを作らず、更新前、更新後のシート上で処理が出来ればと悩んでいます。 Sub Sabun() Dim myRB As Long '更新前データを操作する行番号 Dim myRA As Long '更新後データを操作する行番号 Dim myDel As Boolean '削除を判断するフラグ変数 Dim myAdd As Boolean '追加を判断するフラグ変数 '作業用シートのデータを消去 Worksheets("作業用").Cells.Delete '作業用シートに更新前後の2つの表をコピー Worksheets("更新前").Range("A1").CurrentRegion.Copy Destination:= _ Worksheets("作業用").Range("A1") Worksheets("更新後").Range("A1").CurrentRegion.Copy Destination:= _ Worksheets("作業用").Range("F1") '作業用シートを選択 Worksheets("作業用").Select '表の列幅を自動調整 Columns("A:I").AutoFit '更新後削除されたデータをチェック myRB = 2 Do Until Cells(myRB, 2).Value = "" myDel = True myRA = 2 Do Until Cells(myRA, 7).Value = "" If Cells(myRB, 2).Value = Cells(myRA, 7).Value Then myDel = False Exit Do End If myRA = myRA + 1 Loop If myDel = True Then Cells(myRB, 2).Interior.ColorIndex = 37 End If myRB = myRB + 1 Loop '更新後追加されたデータをチェック myRA = 2 Do Until Cells(myRA, 7).Value = "" myAdd = True myRB = 2 Do Until Cells(myRB, 2).Value = "" If Cells(myRB, 2).Value = Cells(myRA, 7).Value Then myAdd = False Exit Do End If myRB = myRB + 1 Loop If myAdd = True Then Cells(myRA, 7).Interior.ColorIndex = 37 End If myRA = myRA + 1 Loop End Sub

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

たまたまですが、フリーソフトがありました。 http://www2.moug.net/cgi-bin/softwaredl.cgi?excel+SI2007070601​ 私は、使用した事ないので、ご自身でお試しください。

errie217
質問者

お礼

ありがとうございます。 少し思っているものと違うようなので...

関連するQ&A