• ベストアンサー

Excelファイルを比較し、差分箇所に色をつけるには?

imogasiの回答

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

これは相当VBAの熟練者で無いと無理だ。 丸投げ的回答期待に見えるが、それも無理だ。 >Excelファイルが200個近く入っているのですが これが時間がかかる基になりそう。 ーー 課題要素の分解 (1)>フォルダB(古いデータのExcelファイル)があります フォルダBのファイルを基にフォルダAを探す、という(存在しなければメッセージを出す)というコードからはじめる(内容コンペアは次の問題としておいておく、省略する)とにしたたら。それが出来ないようでは先に勧めない。 (2)新旧亜フィルを捕まえたら、私ならソート法でやる。 新旧ファイルをキー(たとえば職員に関数ファイルなら、職員番号に 当たるもの)でソートする。 そしてマッチングのロジックで両キーの等しいもの(行)を、内容(列)を比較して、色付けや書き出しをする。 マッチングのロジックが判るかどうか。 ーー 既製ソフトが無いかそういうのを探すことだ。 ーーー 同じというものを比較せねば意味ないのだが、質問に何も書いてなくて、そういうことの意識の弱いうち(レベルで)は、この種のプログラムは無理だ。 ーー アクセスを使って突合せを考えるほうが、まだ真ともかなと思う。こちらも未経験だと習得に道は遠いが。

animack
質問者

お礼

コメントありがとうございます。 複数のヒントを提示していただき、ありがたく思います。 imogasiさんの仰るとおりです。 普段はPHPなどを触っておりほとんどVBAの経験がなく、人員欠如により 急遽作成を依頼されたもので慌てておりました。 丸投げ的文章になってしまった事はお詫びいたします。

関連するQ&A

  • ファイルを比較して差分のみを出力するには…?

    とつぜんですみません。緊急なので投稿しました。 VBSを使って、2つのファイル(ファイルAとファイルB)の1行目からファイルの終わりまでを比較して差分を出力するプログラムを作成したいと考えています。 ファイルの1列目は主キーとなっております。 <ファイルA> 100,A 110,B 133,D 155,R … <ファイルB> 100,A 110,B 133,F 155,P … また差分の出力は上の例でいくと、 133,D → F 155,R → P というようなかたちでファイルに出力したいです。 どなたかアドバイス頂けないでしょうか? よろしくお願いします。

  • エクセルで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 このような感じです。 どうぞよろしくお願いします。

  • 差分のLZHファイルの作り方

    win2000のDOSコマンドから実行する方法を模索しています。 指定するディレクトリの中身全部を圧縮するとき、別の場所に作ってある「A.LZH」と比較して差分ファイルだけを「B.LZH」の名前で圧縮するという方法はありませんか? つまり、これから圧縮しようとするファイルに対し「A.LZH」の中に無い物だけを「B.LZH」として圧縮したいのです。 差分のバイナリファイルを作るフリーウェアが存在するようなのですが、どうしても差分のLZHを作りたいので。 通常はLHMeltを使っています。

  • エクセルのファイル内データ比較

    データがエクセルファイルなのでここで質問いたします. エクセルファイルが300個ぐらいあります. この中で基本になるファイルは50個ぐらいあります. その50個のファイルの1つと残り250個ぐらいのファイル内データを比較できる方法はないでしょうか? 当然一気に比較する方法ではなくてもかまいません. 現在1つ1つ開いて見て比較する途方もない作業で死にそうです. ファイル内データはマクロもなければ計算式すらありません. 数字データがA1~A90,B1~B90まで入っています. データ数は全ファイル共通となっています. どなたか良い知恵を授けてください.お願いします.

  • 全シート内の差分比較とそのセル色塗りつぶしマクロ

    Excelファイルデータの差分比較とそのセル塗りつぶしのマクロを作成したいのですが、今の自分には、下記のマクロでとどまっており、 マクロを実行するファイル内シートにデータをコピーしたり、 マクロ内でその都度、シート名の記載の変更、差分比較データ範囲の変更が必要になり、大変不便で困っております。 やりたい事は、マクロでユーザがExcelのファイルを選択出来て、 そのファイルの中の全シートのデータについて、差分比較とそのそのセルの塗りつぶしをして、塗りつぶしをファイルへ反映させて保存させることです。 どうか、お分かりの方がいらっしゃいましたら、ご教示をお願い出来ますと大変助かります。 各シート内のデータは、列、行共にほぼ同じフォーマットで値が入っています。 それらのシート内のデータで修正した箇所を見つける為、差分比較がしたいです。 例えば、シートが3つの場合は、 1つ目のシートは修正前のデータ、 2つ目のシート内は1つ目のシートの値を部分的に修正したものです。 3つ目のシート内のデータも、1つ目のデータの値を更に再修正したものです。 この3つのシート内のデータを差分比較したいです。 シートの数は、選択したファイルによって異なります。 Sub TEST1() Dim s1, s2 As Worksheet 'Worksheetsオブジェクト用 Set s1 = Worksheets("修正前S装置検索システム") '比較元シート名 Set s2 = Worksheets("修正後装置検索システム") '比較先シート名 Dim arr1 As Variant, arr2 As Variant arr1 = s1.Range("$A$2:$W$548").Value arr2 = s2.Range("$A$2:$W$548").Value For i = 1 To UBound(arr1, 1) For j = 1 To UBound(arr1, 2) If arr1(i, j) <> arr2(i, j) Then '塗りつぶし処理 s1.Cells(i + 1, j).Interior.Color = RGB(255, 0, 0) s2.Cells(i + 1, j).Interior.Color = RGB(102, 255, 51) End If Next Next End Sub

  • 2つのエクセルファイルの比較

    仕事で使用している顧客一覧(エクセルファイル)があります。 このファイルは会社のシステムで自動的に生成され、 毎日その日の最新版が日付ごとのフォルダ(今日だったら20080527) に上書きされます。ファイル名は同じです。 そこで昨日のファイルと本日のファイルに変更点が あればどのような形でも良いので分かるようにしたいと思っています。 変更点の色が変わって2つのファイルが比較できるフリーソフトを試してみましたが、 当然なのですが、新規の顧客が従来の顧客の間に入ってしまうと、 順番が変わりそれ以降の顧客のデータ全て変更点とみなされてしまいます。 できれば名前が入っている列、例えばB列をキーとし、 新規の顧客データや、従来の顧客のデータの順番が入れ替わっても 変更点のみ色が変わるようにするにはどのようにすればよいでしょうか。 また、そのような機能を満たしているソフトなどありましたら、 教えていただけると大変助かります。

  • ファイルの比較について

    できたらやってみたいのですが、フリーソフトなどで フォルダとフォルダのファイルを比較するソフトが あります。 それを使えば問題ないのですが、マクロでそういうことって できないのでしょうか。 差分があった場合、差分部分をファイルに差分ファイルを 出力する等 お願いします

  • 同名差分ファイルを他フォルダへ移動するには?

    フォルダAとフォルダBの差分ファイル(名前のみの判定)をフォルダCに移動できるようなPCアプリはありませんか? SABOON!というアプリがイメージと大分近かったのですが、フォルダAとBの同名ファイルはフォルダAから消えてしまうのと、ファイル名だけの突合せが出来ませんでした。 よろしくお願いします。

  • 差分ファイルだけ別フォルダに保存したい

    ファイルのバックアップをWindowsのコマンドを使って行いたいと思っています。元フォルダAとミラー先フォルダBの差分ファイルだけをディレクトリを作りながらフォルダCの下にコピーをしたいのですが、xcopyやrobocopyでこのような処理ができるようにコードを教えてください。 よろしくお願いします。

  • VBAでの差分比較のマクロの組み方について

    VBA初心者です。 シートCの開始ボタンを押下すると、シートAの表とシートBの表のセル内の数式を取得・比較して、シートCの表に差分箇所に色が付く。 ↑のような形で差分比較をするマクロを組みたいのですが、ネットで調べてもうまく作ることができませんでした。 組み方は色々あるかと思いますが、その一例をお教えいただけると幸いです。 よろしくお願いいたします。 (補足) シートAの表とシートBの表の形式は同一で、例えばそれぞれセルの(1,1)〜(150,50)まであるようなイメージです。