|    | 
     ▼doka さん: 
 
>教えていただいたことを利用すれば、やりたいことが簡単に実現できました。 
ごめん。レスして、すぐ外出してネットにアクセスできない環境にいたもので、 
Yukiさんのコードが前に出ていて、自分のがYukiさんのコードのパクリみたい 
になってるの、気が付きませんでした m(_ _)m 
Yukiさんのコードがそのままでは変化がなかったのは、たぶん処理対象範囲の 
ちょっとしたちがいから? 
 
> 1〜50行までと51〜100行までの二つの領域を比較して、 
> 51〜100行までのデータと同じものが、1〜50行目までの中に 
> あった場合、1〜50行のほうに色をつけるとしたいのですが、 
 
doka さん の直されたコードを 
「てにおは」部分だけ、ちょっと編集してみました。(^^) 
Sub Try2() 
  Dim r As Range 
  Dim dic As Object 
  Dim ss As String '1行データパターン 
 
  Set dic = CreateObject("Scripting.Dictionary") 
   
  '比較する範囲 
  With Range("B10:E20") 
    For Each r In .Rows '行単位で 
      '一行をTab区切り文字列に変換 
      ss = Join(Application.Index(r.Value, 0#), vbTab) 
      dic(ss) = Empty '一行パターンを辞書に登録 
    Next 
  End With 
  
  '比較されて消される範囲 
  With Range("B1:E10") 
    .Interior.ColorIndex = xlNone 
    For Each r In .Rows '行単位で調査 
      '一行をTab区切り文字列に変換 
      ss = Join(Application.Index(r.Value, 0#), vbTab) 
      If dic.Exists(ss) Then 
        r.Interior.ColorIndex = 6 
      End If 
    Next 
  End With 
  
  Set dic = Nothing 
   
End Sub 
 
 | 
     
    
   |