Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9570 / 13644 ツリー ←次へ | 前へ→

【26626】列の値が変化したら色を付ける ちょび 05/7/12(火) 11:22 質問[未読]
【26629】Re:列の値が変化したら色を付ける Kein 05/7/12(火) 12:10 回答[未読]
【26631】Re:列の値が変化したら色を付ける ちょび 05/7/12(火) 13:47 お礼[未読]

【26626】列の値が変化したら色を付ける
質問  ちょび  - 05/7/12(火) 11:22 -

引用なし
パスワード
   はじめまして、ちょびです。

質問があります。

列に、ID、名前、電話番号、更新日時、という項目があります。
このうち、同じIDで、列の値(この場合は名前と電話番号)が変化したら、
バックに色を付けるという事をしたいのですが、
やり方がわかりません。
教えていただけませんでしょうか。
ちなみに、この場合、列の値の変化に更新日時は含めませんので、
更新日時が変化しても、バックに色は付けません。

一部だけの情報でもかまいませんので、
よろしくお願いいたします。

【26629】Re:列の値が変化したら色を付ける
回答  Kein  - 05/7/12(火) 12:10 -

引用なし
パスワード
   Dim i As Long

Application.ScreenUpdating = False
Range("A1").CurrentRegion.Sort Key1:=Columns(1), _
Order1:=xlAscending, Key2:=Columns(2), Order2:=_
xlAscending, Header:=xlYes, Orientation:=xlSortColumns
For i = 2 To Range("A65536").End(xlUp).Row - 1
  If Cells(i, 1).Value = Cells(i + 1, 1).Value Then
   If Cells(i, 2).Value <> .Cells(i + 1, 2).Value Then
     Cells(i + 1, 1).Resize(, 4).Interior.ColorIndex = 6
   End If
  End If
Next i
Application.ScreenUpdating = True

テストはしてませんが、以上のようなコードになるかと思います。
なお、名前が変化すれば電話番号も変わる、という常識的判断をしています。

 

【26631】Re:列の値が変化したら色を付ける
お礼  ちょび  - 05/7/12(火) 13:47 -

引用なし
パスワード
   Kein さん

ご返答ありがとうございます。
ソートの部分をコメントアウトしたら、
思ったようになりました。

全ての行に色を付けるのではなく、
変更した箇所だけ、色を付けたかったのですが、
ちょっと自分でトライしてみます。

VBAどころか、プログラミング初心者なので、
大変かと思いますが、がんばってみます。
だめなら、また質問させてください。

ありがとうございました。

9570 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free