|
▼daisuke さん:
Dictionaryを使ってみてはいかが?
まだ、色付けは考えてません。
Sub Try1()
Dim dic As Object
Dim v
Dim i&
Dim r As Range
'----シート1 A列をきーとして対応するB列を辞書に記憶
Set dic = CreateObject("Scripting.Dictionary")
v = Worksheets(1).Range("A1").CurrentRegion.Resize(, 2).Value
For i = 1 To UBound(v)
dic(v(i, 1)) = v(i, 2)
Next
'---- シート2
With Worksheets(2)
Set r = .Range("C1", .Cells(.Rows.Count, 3).End(xlUp))
End With
v = r.Value 'C列の値
For i = 1 To UBound(v)
If dic.Exists(v(i, 1)) Then '辞書にあったら値に置換
v(i, 1) = dic(v(i, 1))
End If
Next
r.Value = v '書き戻す
End Sub
文字色を変えるなら、
Sub Try2()
Dim dic As Object
Dim v
Dim i&
Dim r As Range, c As Range
'----シート1 A列をきーとして対応するB列を辞書に記憶
Set dic = CreateObject("Scripting.Dictionary")
v = Worksheets(1).Range("A1").CurrentRegion.Resize(, 2).Value
For i = 1 To UBound(v)
dic(v(i, 1)) = v(i, 2)
Next
'---- シート2
With Worksheets(2)
Set r = .Range("C1", .Cells(.Rows.Count, 3).End(xlUp))
End With
For Each c In r
If dic.Exists(c.Value) Then '辞書にあったら値に置換
c.Value = dic(c.Value)
c.Font.Color = vbRed
End If
Next
End Sub
といった感じですかね
|
|