エクセルのマクロについてです。
エクセルのマクロについてです。 検索ワードを入力して検索開始ボタンを押すと、その他の全てのシートから検索ワードを含む行を抽出してきて、検索ワードを入れたのと同じシート内に行ごと表示させる、ということができたらと思っています。(画像をご参照ください。) どのようなマクロで実行できるかご教示いただけると幸いです。
kky********さん、早速の回答ありがとうございます。 画像に載せていたものより、データのあるシートの列数やシート数が増えたため、ご教示いただいたコードの数字を触ってみたのですがうまくいきません。 具体的には、前の画像ではA~D列まででしたがA~M列とし、各シートで検索をかける列はI列としたいです。この場合、どのように変更すればよいでしょうか。 また、今後シートを増やしていきたいとおもっており、全シート検索にするため数字を変える必要がある部分もご教示いただけると幸いです。 何卒よろしくお願いします。
Excel・123閲覧
ベストアンサー
画像の例から、検索するのは各シートのC列としています。 違うのであれば補足して下さい。 Sub test() Dim sh1 As Worksheet, sh2 As Worksheet Dim kword As Variant Dim r As Long Dim frng As Range Dim fadd As String Application.ScreenUpdating = False Set sh1 = Worksheets("検索用") With sh1 kword = .Range("A2").Value If .Range("A6").Value <> "" Then .Range("A6:D" & .Cells(Rows.Count, 1).End(xlUp).Row).ClearContents End If End With r = 5 For Each sh2 In Worksheets With sh2 If .Name <> "検索用" Then With .Range("C1:C" & .Cells(Rows.Count, 3).End(xlUp).Row) Set frng = .Find(What:=kword, LookIn:=xlValues, LookAt:=xlPart) If Not frng Is Nothing Then fadd = frng.Address Do r = r + 1 sh1.Range("A" & r).Resize(, 4).Value = frng.Offset(, -2).Resize(, 4).Value Set frng = .FindNext(frng) If frng Is Nothing Then Exit Do Loop Until frng.Address = fadd End If End With End If End With Next sh2 Application.ScreenUpdating = True End Sub
kky********さん、早速の回答ありがとうございます。 画像に載せていたものより、データのあるシートの列数やシート数が増えたため、ご教示いただいたコードの数字を触ってみたのですがうまくいきません。 具体的には、前の画像ではA~D列まででしたがA~M列とし、各シートで検索をかける列はI列としたいです。この場合、どのように変更すればよいでしょうか。 また、今後シートを増やしていきたいとおもっており、全シート検索にするため数字を変える必要がある部分もご教示いただけると幸いです。 何卒よろしくお願いします。
質問者からのお礼コメント
変更コードを用いるとイメージしていたことができました!! 大変助かりました。 ありがとうございました。
お礼日時:7/2 14:47