|
こんにちは。
以前ご意見を頂き有難うございます。
今、全シートの検索結果を別のシートに表示させたいのですが、できないので、教えて下さい。
シート毎の検索結果を表示させることはできたのですが、全シートに該当する検索結果を表示させるマクロを教えて下さい。
下記にのせてるのは、1シートの検索結果を「検索結果」シートに表示させるマクロです。
もっと簡単なマクロってありますか?
' 「シート内容」を検索する
'
Sub シート1を検索()
Sheets("検索結果").Select '検索結果シートを選択
Cells.Select '全てのセルを選択
Selection.Clear '選択範囲を全てクリア
'-----------------------------------
'インプットボックスの表示
a = Application.inputbox("検索する文書のキーワードを入力(全角、半角、大文字、小文字全て入力可)", "検索") 'インプットボックスに、入力した値をaに代入
'キャンセルが押されたときの処理
If a = False Then
Sheets("検索結果").Range("A1").Select
Exit Sub
End If
' [a]変数の中身を全て全角に変換する。(英数字の大文字・小文字は最初から区別していない)
' ただし,検索するセルの中身は,最初から全角に変換しておく必要有り。
a = StrConv(a, vbWide) '半角文字を全角に変換
aa = "*" + a + "*"
'-----------------------------------
'フィルタをかける
Sheets("No.1").Select
Range("A4").Select
Selection.AutoFilter
'選択した範囲にフィルタをかける
'-----------------------------------
'5列目(E列)にJIS関数(半角を全角に変換する関数)している
'5列目(E列)より[aa]変数を検索する
Selection.AutoFilter Field:=5, Criteria1:=aa
'-----------------------------------
'上記にて検索された値を全て選択し、[b]変数に代入する
Set b = Range("A4").CurrentRegion
b.Copy '[b]変数をコピーする
'[b]変数を貼り付ける
Sheets("検索結果").Select
Range("A2").Select
Activesheet.Paste
'フィルタを解除
Sheets("検索結果").Select Selection.AutoFilter '選択した範囲のフィルタを解除
'フィルタをかける(検索結果の解除)
Sheets("No.1").Select Selection.AutoFilter '選択した範囲でフィルタをかける
'フィルタを解除してデータをすべて表示
Sheets("No.1").Select Selection.AutoFilter '選択した範囲のフィルタを解除
Sheets("検索結果").Select
Range("A1").Select
End Sub
|
|