アプリ版:「スタンプのみでお礼する」機能のリリースについて

普段記録マクロくらいしか利用していない超初心者です。
(Windows7のExcel2010を利用してます。)

データを入力したExcelファイルで、Ctrl+Fで表示させた検索および結果の表示の流れをマクロを組んでUserForm上でやりたいと考えております。

過去のログを参考にさせていただき、ブック全体をキーワード検索し、その結果をリストボックスに表示させるところまではできたのですが、そのリストボックスの結果をクリックして、該当するセルを表示させることができません。
(データ上、検索結果は複数のシートに何十件とある場合があり、また、結果を1件1件クリックして、元データを確認する必要があります。)

初心者なのに無謀なことをしていることは重々承知しておりますが、業務上必要なため、良い方法があれば教えていただけませんでしょうか。

お手数をおかけいたしますが、よろしくお願いいたします。


検索+表示マクロ↓

Private Sub キーワード実行_Click()
Dim r As Range, ws As Worksheet
Me.一覧リスト.Clear
If Me.キーワード検索テキスト.Value = "" Then Exit Sub
For Each ws In ThisWorkbook.Worksheets
Set r = ws.Cells.Find(what:=Me.キーワード検索テキスト.Value, lookat:=xlPart, MatchCase:=False, MatchByte:=False)
If Not r Is Nothing Then
fAddr = r.Address
Do
With Me.一覧リスト
.AddItem r.Parent.Name & vbTab & r.Address & vbTab & vbTab & r.Value


End With
Set r = ws.Cells.FindNext(r)
Loop While Not r Is Nothing And r.Address <> fAddr
End If
Next ws

End Sub



Private Sub 一覧リスト_Click()
With Me.一覧リスト
If ListCount < 0 Then Exit Sub
Application.Goto Range(.List(.ListIndex, 0) & "!" & .List(.ListIndex, 1))
End With
End Sub

A 回答 (1件)

こんばんは。




以下のようにしてみました(全くの素人です)。

> .AddItem r.Parent.Name & vbTab & r.Address & vbTab & vbTab & r.Value

(変更後)
.AddItem r.Parent.Name & vbTab & r.Address(False, False)


> Private Sub 一覧リスト_Click()
> With Me.一覧リスト
> If ListCount < 0 Then Exit Sub
> Application.Goto Range(.List(.ListIndex, 0) & "!" & .List(.ListIndex, 1))
> End With
> End Sub

(変更後)
Private Sub 一覧リスト_Click()
Dim wsname As String
Dim raddress As String
With Me.一覧リスト
If .ListCount < 0 Then Exit Sub
wsname = Split(.Value, vbTab)(0)
raddress= Split(.Value, vbTab)(1)
Application.Goto Worksheets(wsname).Range(raddress)
End With
End Sub
    • good
    • 0
この回答へのお礼

>marinesfun様

ご回答ありがとうございます!

ご教示いただいた通りに変更しましたら、
無事に表示させることができましたm(__)m

とても勉強になりました。
MsgBoxすらうまく表示できずに苦戦しておりますが、
これを機に、もう少しマクロを頑張って勉強してみようと思います。

ちょっとまた色々ご質問することもあるかと思いますので、見かけたらご回答いただけると幸いです。

本当にありがとうございました。

お礼日時:2014/05/29 21:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!