こんにちは。
検索した結果を出すのでしたら、ご希望とは違うかもしれませんが、以下のようなコードはいかがでしょうか?
シートに
コントロールツールから、
リストボックス(ListBox1)
コマンドボタン(CommandButton1)
で、以下のようなコードです。
以下を貼り付けた場合は、一度、VBEditor で、エディタ上部の二つの窓がありますが、
(General) となっている部分の▽ボタンを、CommandButton1 に切り替えて、再認識されてください。ListBox1 も同様です。
以下は、アドレスがListBoxに、表示され、そのアドレスをクリックすると、ジャンプするように出来ています。
'シートモジュール
'-----------------------------------------------------------------
Private Sub CommandButton1_Click()
Dim sWord As String
Dim c As Range
Dim ws As Variant
Dim FindWord As String
Dim addFirst As String
Const STARTCELL As String = "A1"
If Range(STARTCELL).Value <> "" Then
sWord = Range("A1").Value
Me.ListBox1.Clear
Else
Exit Sub
End If
For Each ws In Worksheets
With ws.UsedRange
Set c = .Find( _
What:=sWord, _
LookIn:=xlValues, _
LookAt:=xlWhole)
If Not c Is Nothing Then
addFirst = c.Address
If FindWord = "" Then
If Me.Name & "!" & c.Address <> c.Parent.Name & "!" & c.Address Then
FindWord = c.Parent.Name & "!" & c.Address(0, 0)
End If
Else
FindWord = FindWord & "," & c.Parent.Name & "!" & c.Address(0, 0)
End If
Do
Set c = .FindNext(c)
If c.Address = addFirst Then Exit Do
FindWord = FindWord & "," & c.Parent.Name & "!" & c.Address(0, 0)
Loop Until c Is Nothing
End If
addFirst = ""
End With
Next ws
Me.ListBox1.List = Split(FindWord, ",")
End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim ar As Variant
On Error Resume Next
ar = Split(ListBox1.Text, "!")
Application.Goto Worksheets(ar(0)).Range(ar(1))
End Sub
補足
説明がうまくできなくてすみません。 今、ユーザーフォームには、リストボックスが2つと、コマンドボタンが1つあります。1つめのリストボックスに検索の文字をいれます。それで、コマンドボタンを押すと検索結果を2つめのリストボックスに表示させたいと思っています。その検索結果は、アクティブシートだけでなく、9つシートがあるので、同じ文字だと、全てのシートから拾い出して、検索結果の2つ目のシートに入れたいと考えています。 全く初心者で、書き方が分からないので、教えてください。 宜しくお願いいたします。