| 
    
     |  | ▼mao さん: こんにちは^^
 
 
 >Sub 検索()
 >
 >Dim Mynumber As String
 >Dim FoundCell As Range
 >Dim fs, msg
 まず、「fs」はアドレスが格納されるので、String型
 「msg」は、メッセージボックスの返り値なので、Long型で宣言されたらいいかと思います。
 
 
 >Range("F1").Select
 > Mynumber = UserForm1.TextBox1.Text
 >
 > Set FoundCell = Cells.Find(What:=Mynumber, After:=ActiveCell, _
 >              LookIn:=xlFormulas, LookAt:=xlPart, _
 >              SearchOrder:=xlByRows, _
 >              SearchDirection:=xlNext, MatchCase:=False, _
 >              MatchByte:=False)
 「LookIn」は、今回は文字列を検索するで、「xlValues」じゃないかなあ・・・
 
 
 > With Worksheets("検索").UsedRange.Columns(6)
 >
 > If Not FoundCell Is Nothing Then
 >    fs = FoundCell.Address
 「コード」は繰り返して検索しないので、
 ここで、アドレスを取得しちゃだめです。
 >
 > msg = MsgBox("会社コードは「" & FoundCell.Offset(, -2) & "」" & Chr(13) & _
 >    "会社名は「" & FoundCell.Offset(, -1) & " 」でした。", vbOKCancel)
 >
 >If msg = vbCancel Then
 >  Exit Sub
 >
 >?※ここにF列検索後E列会社名=FoundCell.Offset(, -1)代入の式??
 
 
 ここで、再び、先ほどヒットしたコードの会社名で新たに検索かけます。
 で、ヒットしたら、ここでアドレスを「fs」に入れて、
 >Do
 ヒットしたセルに色づけ
 FindNextで続いて検索
 Loop While Not FoundCell Is Nothing And FoundCell.Address <> fs
 >
 >End If
 >End With
 >End Sub
 >
 >
 >※↑?の部分が行き詰っている箇所です。
 
 こんな感じかなあ・・・・
 「コード」を検索してから、次に「会社名」を検索する前に、「FoundCell」を初期化せんとあかんと思います。
 
 途中で検索する列も変わるので、
 
 > With Worksheets("検索").UsedRange.Columns(6)
 
 これも検討し直した方がいいと思います。
 
 雑な回答ですんませんが・・・・
 
 
 |  |