|
こんばんは。
>"TEST"と"test"で同じ値。"test"と" test"でも(ブランクがあっても)同じ値。
>というふうに結果を返したいのですが、先日教えていただいたコードを
>少し変えるだけで対応可能なのでしょうか?
Sub sample()
Dim crng As Range
Dim kk As Variant
With Range("b1:b5,B10:B11")
With .Areas(1)
.Cells(1).Value = "TEST"
.Cells(2).Value = " TEST"
.Cells(3).Value = "test"
.Cells(4).Value = " test"
.Cells(5).Value = "aaaa"
End With
With .Areas(2)
.Cells(1).Value = "aaaa"
.Cells(2).Value = " TEST"
End With
End With
MsgBox "上記のデータでテストします"
With CreateObject("scripting.dictionary")
For Each crng In Range("b1:b5,B10:B11")
If Not .Exists(UCase(Trim(CStr(crng.Value)))) Then
Set .Item(UCase(Trim(CStr(crng.Value)))) = crng
Else
Set .Item(UCase(Trim(CStr(crng.Value)))) = Application.Union(.Item(UCase(Trim(CStr(crng.Value)))), crng)
End If
Next
For Each kk In .Keys
MsgBox kk & " という値で " & .Item(kk).Address & " が同じ"
Next
End With
End Sub
この程度で良ければ、ちょっとの変更で済みます
|
|