|    | 
     ▼ぴん さん: 
>シート1のA列(A1〜A50)に入力されている文字が、他シート(シート2〜8)に 
>あるか?あったら、そのシート名をシート1のD列に書き出す。 
 
○○の一つ覚えですが、Dictionary(辞書オブジェクト)を 
使ったらどうでしょう 
 
Sub Try1() 
  Dim i As Long 
  Dim c As Range, r As Range 
  Dim ss As String, sName As String 
  Dim dic As Object 
    
  Set dic = CreateObject("Scripting.Dictionary") 
  'シート2枚目以降のA列の値を 
  ' そのシート名とともに辞書登録します 
  For i = 2 To Worksheets.Count 
    With Worksheets(i) 
      sName = .Name 
      Set r = .Range("A1", .Cells(.Rows.Count, 1).End(xlUp)) 
      For Each c In r 
        ss = c.Value 
        dic(ss) = dic(ss) & "," & sName 'A列値とシート名を登録 
      Next 
    End With 
  Next 
   
  '1枚目のシートのA列の値が辞書にあれば、 
  ' D列に 出現シート名をカンマ区切りで表示します 
  With Worksheets(1) 
    Set r = .Range("A1", .Cells(.Rows.Count, 1).End(xlUp)) 
    For Each c In r 
      ss = c.Value 
      If dic.Exists(ss) Then 
        c(1, 4).Value = Mid$(dic(ss), 2) 
      End If 
    Next 
  End With 
End Sub 
 | 
     
    
   |