こんばんは。
少し、様子をみさせていただきました。
以下のマクロは、「標準モジュール」に登録してください。
>(5)電話番号もしくは名前等文字での検索です。
>(6)比べる値はAもBも一つの列に収まっています
とは言うものの、それ以上の具体的な情報はありませんでしたので、シート全体を調べるマクロにしました。それを、双方向で同じデータが「ある・なし」を調べます。片方にない場合は、黄色で色が塗られます。
使い方は、
Alt + F8 で、CompareEachSheetsDateというマクロ名を探して、クリックします。
そうすると、ダイアログで、もう1つのシートを選ぶように出てきますから、シートを選び、そのシートの任意のシートを選択します。
後は、自動的に検索します。念のため、日付情報や時間情報は、このマクロでは検索できません。
'---------------------------------------------
Option Explicit
Dim Sh2 As Worksheet
Sub CompareEachSheetsData()
Dim c As Range
Dim Sh1 As Worksheet
Dim buf As Object
Dim tmp As Object
Dim i As Integer
Set Sh1 = ActiveSheet
On Error GoTo ErrHandler
Set tmp = Application.InputBox("検索するシートの任意のセルを選んでください", Default:="Sheet2!$A$1", Type:=8)
On Error GoTo 0
Set Sh2 = tmp.Worksheet
If Sh1.Name = Sh2.Name Then
MsgBox "同じシートを選ぶことは出来ません。", vbInformation
Exit Sub
End If
For i = 0 To 1
If i = 1 Then Set buf = Sh1: Set Sh1 = Sh2: Set Sh2 = buf
For Each c In Sh1.UsedRange.Cells
If Not IsEmpty(c) Then
s_SearchValue c
End If
Next c
Next i
Set buf = Nothing: Set Sh1 = Nothing: Set Sh2 = Nothing
Beep '終了の合図
Exit Sub
ErrHandler:
If tmp Is Nothing Then Exit Sub
MsgBox "正しい選択をしてください。", vbInformation
Resume
End Sub
Sub s_SearchValue(myRange As Range)
Dim r As Range
Dim myFirstAddress
With Sh2.UsedRange
Set r = .Find( _
What:=myRange.Text, _
LookIn:=xlValues, _
lookat:=xlWhole, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not r Is Nothing Then
myFirstAddress = r.Address
Do
Set r = .FindNext(r)
Loop Until r Is Nothing Or r.Address = myFirstAddress
Else
myRange.Interior.ColorIndex = 6 '黄色
End If
End With
End Sub
'---------------------------------------------
お礼
何度もすみません助かりますありがとうございました。