• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAでの値の比較)

Excel VBAでの値の比較方法とセルの色変更

このQ&Aのポイント
  • Excel VBAを使用して、セルの値を比較する方法について教えてください。特定のセル同士を比較し、値が異なる場合にはA列またはB列のセルの色を変更したいです。
  • 具体的な例として、セルA1とセルG1、セルA2とセルG2、セルB1とセルH1、セルB2とセルH2の値を比較し、異なる場合にはA列またはB列のセルの色を変更したいです。
  • この要件を満たすためには、Excel VBAを使用して各セルの値を取得し、比較して異なる場合には色を変更するコードを実装する必要があります。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.3

#1です。 > シート別の場合はどのようなVBAになりますでしょうか? ほとんど比較対象を変えるだけだと思います。 for each xx in zzz ~ next のループ文で xx に zzz の各要素が順次代入されます。 zzz は Range("A1:B2") を指定していますから、 xx は Range("A1") → Range("B1") → Range("A2") → Range("B2") のように処理されます。 前回はこれの Offsetしたセルと比較してますが、今回はこれを 別シートのアドレスが同じセルと比較すれば良い訳です。 下記は1番左のシートと左から2番目のシートを比較します。 Sub test2() Dim r As Range For Each r In Worksheets(1).Range("A1:B2")  If r.Value <> Worksheets(2).Range(r.Address) Then    r.Interior.ColorIndex = 20  Else    r.Interior.ColorIndex = xlNone  End If Next End Sub

noname#23188
質問者

お礼

理想通りの動きです。 ご説明も参考になりました。 大変助かりました。 誠にありがとうございました。

その他の回答 (2)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

No.1の方もかかれているように、VBAを使わずとも条件付き書式でできるので、一応その設定方法を書いておきます。 A列全体を選択して「書式」>「条件付き書式」で 「セルの値が」「次の値に等しい」「=$G1」とし、「書式」ボタンを押して、「パターン」タブを選択し、背景色を指定してOK。 B列の場合も上記と同じ手順で =$H1と比較するように設定。

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

条件付書式で簡単に実現出来る事をわざわざVBAでやる必要性を感じませんが、、、 比較結果で処理を分岐するだけです。 Sub test() Dim r As Range For Each r In ActiveSheet.Range("A1:B2")  If r.Value <> r.Offset(0, 6).Value Then    r.Interior.ColorIndex = 20  Else    r.Interior.ColorIndex = xlNone  End If Next End Sub

noname#23188
質問者

補足

お世話になります。  すいません。シート別の場合はどのようなVBAになりますでしょうか?    sheet1     sheet2    A列 B列    A列 B列 1行  1  1     1   2 2行  2  2     3   2 おっしゃるとおり、VBAでする必要性はないのかもしれませんが、 個人的興味から、このような質問をさせて頂いております。 何卒、宜しくお願い申し上げます。

関連するQ&A