• ベストアンサー

sheetの比較処理

(条件)エクセルでsheet1、sheet2とsheet3があります。 なおsheet3はsheet1のコピーです。 (処理)  sheet1、sheet2を(100行×7列)の範囲で各セルを比較し、 もし内容が違うのであれば、対応するsheet3セルを黄色で色付けしたい。 処理どうすればいいか。以上宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

条件付き書式ではその条件式で他のシートを参照することができないので、実現手段はマクロになると思います。 以下のマクロをALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はシート画面に戻って、ALT+F8を押してマクロ一覧からマクロ名を選択して実行します。 実際のシート名が違う場合はマクロの3~5行目を修正して下さい シート名が合っていない場合はエラーとなりますが、そのエラー処理までは組み込んでいません Sub Macro1() Dim rng As Range Const sh1 As String = "Sheet1" '実際のシート1の名前 Const sh2 As String = "Sheet2" '実際のシート2の名前 Const sh3 As String = "Sheet3" '実際のシート3の名前  Sheets(sh3).Activate  For Each rng In ActiveSheet.UsedRange   If Sheets(sh1).Range(rng.Address).Value = _     Sheets(sh2).Range(rng.Address).Value Then    rng.Interior.ColorIndex = xlNone   Else    rng.Interior.ColorIndex = 6   End If  Next rng End Sub

taktta
質問者

お礼

目的にあった適切なご回答ありがとうございます。 おかげで解決いたしました。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

VBAで行なう方法です。 以下をお試しください。 1.Altキー+F11キーでVisualBasicEditorを呼び出します。 2.メニューから挿入、標準モジュールで出てきたコードウィンド(右側の白い広い部分)に以下のコードをコピペします。 Sub test01() For c = 1 To 7 'A列からG列まで For r = 1 To 100 '1行目から100行目まで If Sheets("Sheet1").Cells(r, c) <> Sheets("Sheet2").Cells(r, c) Then '各セル比較 Sheets("Sheet3").Cells(r, c).Interior.ColorIndex = 6 '違ったら黄色に End If Next r '行を進め繰り返す Next c '列を進め繰り返す End Sub 3.Altキー+F11キーでワークシートへもどります. 4.メニューから、ツール、マクロ、マクロで出てきたマクロ名(test01)を選択して実行します。

taktta
質問者

お礼

目的にあった適切なご回答ありがとうございます。 おかげで解決いたしました。

関連するQ&A