[[20060827092716]] 『表示について』(まつ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『表示について』(まつ)
 同じフォーマットの 「元データ」 「変更のあるデータ」 が入ったブックが2つあります。この2つのブックを照合して合致していない箇所にはどちらにも赤字で表示させたいのですが良い方法を教えください。ブックにはシートが60枚あります。良い方法を教えください。宜しくお願いします。

 手作業でファイルが重くなる取って置きの方法ですがw
 叩き台程度に・・・
 
1)「元データ」 「変更のあるデータ」の両方のブックを立ち上げる
2)片方のブックの、シートタブを右クリック → 全てのシートを選択
3)全部のセルを指定
       ↓ココをクリック
    [     ][   A   ][   B   ]
    [  1  ]
    [  2  ]
4)A1 がアクティブになっていることを確認し
  書式 → 条件付書式
  「数式が」に変更 
   =A1<>INDIRECT("[元データ]"&REPLACE(CELL("FILENAME",A1),1,FIND("]",CELL("FILENAME",A1)),)&"!"&ADDRESS(ROW(A1),COLUMN(A1)))
                     ~~~~~~※
  ※ブック名は、相方のブック名を入力してください。
  【書式】をクリックし、お好きなパターンを選択(赤字が好みなら、フォント色です)
  OK。OK。
5)もう片方のブックで同じ処理。(2〜4番)
 
 #DIV/0!・#N/A・#REF!等のエラーは、無視されちゃうみたいです。

 (キリキ)(〃⌒o⌒)b ちょっと修正

 VBAを考えました。単純にセル同士を比較していく、という、何の工夫もないものですが。
 エラー対策は考えてませんので、実行されるなら、コピーしたファイルで試してみてください。

 一方のブックの標準モジュールに次のコードをはりつけます。他方のファイルを仮に Book2.xls として
 いますので、実際のファイル名に書き換えてください。(2カ所)

 Sub test()
    Dim i As Integer
    Dim R As Long
    Dim C As Integer
    Dim RMax As Long
    Dim CMax As Integer

    For i = 1 To Worksheets.Count
        Worksheets(i).Select
        ActiveCell.SpecialCells(xlLastCell).Select
        RMax = ActiveCell.Row
        CMax = ActiveCell.Column
        For R = 1 To RMax
            For C = 1 To CMax
                If Cells(R, C).Value <> Workbooks("Book2.xls").Worksheets(i).Cells(R, C) Then
                    Cells(R, C).Font.Color = vbRed
                    Workbooks("Book2.xls").Worksheets(i).Cells(R, C).Font.Color = vbRed
                End If
            Next C
        Next R
    Next i

 End Sub

 (ホグペン)

 (キリキ)さん
 (ホグペン)さん
 本当にありがとうございます。嬉しいです。
 もう1つ教えていただきたいのですが、同じブック内でのシートとシートを照合したい場合ですと どこを変更すれば良いでしょうか?お願いします。(マツ)


 そのまんまシートの比較にしてみました。
 シートモジュールに貼り付けます。
 他のシートのシート名を Sheet2 としています。

 Sub test()
    Dim R As Long
    Dim C As Integer
    Dim RMax As Long
    Dim CMax As Integer

    ActiveCell.SpecialCells(xlLastCell).Select
    RMax = ActiveCell.Row
    CMax = ActiveCell.Column
    For R = 1 To RMax
        For C = 1 To CMax
            If Cells(R, C).Value <> Worksheets("Sheet2").Cells(R, C) Then
                Cells(R, C).Font.Color = vbRed
                Worksheets("Sheet2").Cells(R, C).Font.Color = vbRed
            End If
        Next C
    Next R

 End Sub

 (ホグペン)


 Sheet1 と Sheet2 を比べるとして、、、
 
1)Sheet1 の全部のセルを指定
2)A1 がアクティブになっていることを確認し
  書式 → 条件付書式
  「数式が」に変更 
  =A1<>INDIRECT("Sheet2!"&ADDRESS(ROW(A1),COLUMN(A1)))
                  ~~~~~~~※
  ※シート名は、相方のシート名を入力してください。
  【書式】をクリックし、お好きなパターンを選択(赤字が好みなら、フォント色です)
  OK。OK。
3)もう片方のシートで同じ処理。
  
 で、いかがです?
 
 (キリキ)(〃⌒o⌒)b

 (キリキ)さん
 (ホグペン)さん
 ありがとうございます。説明もつけていただきご丁寧にありがとうございます。嬉しいです。(マツ)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.