Excel VBA 質問スレッド No.821 (未解決)

検索してなかったら色付け

投稿者 : 山     投稿日時 : 2022/06/22(Wed) 14:50:37     OS : 未指定     EXCEL : 未指定
AシートのA列から氏名を検索してBシートのA列にAシート同じ氏名の人がいる←ここが条件1
AシートのA列の氏名とBシートのA列の氏名が同じ人のBシートのB列の数字がAシートのB列と異なっている条件2
→BシートのB列の数字に色付け。
こんな式を作ろうと思っているのですが、FINDだと条件を一つしか検索できず、Aシートと同じ氏名のB列とBシートと同じ氏名のB列を照合したいのですが、どうしたらよいでしょうか?
説明が下手ですいません。

[返信 1] Re : 検索してなかったら色付け
投稿者 : てらてら     投稿日時 : 2022/06/22(Wed) 15:23:06
こんにちは。

VBAでFINDを使うのは良くないみたいです。
以下を参考にしてください。

100は適当に大きな値で、、、
空行が来たら勝手に抜けます。

Sub setColor()

Dim i As Long, j As Long
Dim wsA As Worksheet
Dim wsB As Worksheet

Set wsA = Worksheets("A")
Set wsB = Worksheets("B")

For i = 1 To 100
If Cells(i, "A") = "" Then Exit For

For j = 1 To 100
If Cells(j, "A") = "" Then Exit For

If wsA.Cells(i, "A") = wsB.Cells(j, "A") Then '名前
If wsA.Cells(i, "B") <> wsB.Cells(j, "B") Then '数値

wsB.Cells(j, "B").Font.color = RGB(255, 0, 0) '文字色変更

End If
End If

Next j
Next i

End Sub

[返信 2] Re : 検索してなかったら色付け
投稿者 : さんこう     投稿日時 : 2022/06/22(Wed) 15:55:41
VBAの掲示板での回答としては不適当ですが、
条件付き書式を使うのが楽かと思います。
(そんなことは承知の上でVBAで書きたいということなら、スルーしてください)

[返信 3] Re : 検索してなかったら色付け
投稿者 : 山     投稿日時 : 2022/06/22(Wed) 21:48:24
説明が足らずすいません。Aシートの順番はバラバラでその中からBシートの氏名を探し、合っていたら、AシートのB列とBシートのB列を照合する、という式にしたいのです。
こちらですと、同じ列にいないとヒットしないので、何とかならないでしょうか?

[返信 4] Re : 検索してなかったら色付け
投稿者 : てらてら     投稿日時 : 2022/06/23(Thu) 03:27:57
順番はバラバラでも動くはずですが、、、(空行がなければ)

[返信 5] Re : 検索してなかったら色付け
投稿者 : さんこう     投稿日時 : 2022/06/23(Thu) 08:02:37
>Aシートの順番はバラバラで

条件付き書式でも、問題ありません。

[返信 6] Re : 検索してなかったら色付け
投稿者 : 山     投稿日時 : 2022/06/24(Fri) 10:47:14
■[返信 4] てらてらさん(2022-06-23 03:27:57)の記事
> 順番はバラバラでも動くはずですが、、、(空行がなければ)
> 申し訳ございません。正確に作動しました、、、、ありがとうございます。今度もお世話になるかと思いますが、ご教授いただけるとありがたいです!

当掲示板について
返信入力フォーム
お 名 前  :
内  容   :
ステータス  : この質問を解決済みにする

認証コード  :
        キャプチャ画像


( 処理日時 : 2022-07-07 13:45:22 )

Page
Top