|    | 
     ▼ののか さん: 
 
>複数シートのC列に検索値AAでフィルタをかけるってどうすればいいですか? 
>複数のシートを選択してオートフィルターかけれませんが・・・。 
 
言葉足らずでしたが、もちろん複数シートに<一括で>フィルタをかける 
ということではありません。 
対象シート(「2004」〜「2010」)をループして順にフィルタをかけ、 
抽出行を「AA」シートに転記していく、という意味です。 
 
'--------------------- 標準モジュール 
Option Explicit 
Sub AAの抽出転記_AutoFilter()  
 dim AAsheet as worksheet 
 dim ws as worksheet 
  
 set AAsheet = ActiveWorkbook.Worksheets("AA")'転記先シート 
 For Each ws in ActiveWorkbook.Worksheets 
  if isnumeric(ws.Name) then 
    with ws.cells(1).currentregion 
     .Autofilter 3, "AA" 
     if .Columns(1).SpecialCells(xlVisible).Count>1 then 
       .Copy AAsheet.cells(rows.count,1).end(xlUp).offset(1) 
     end if 
     .Autofilter 
    end with 
  end if 
 next 
End Sub 
 
 
>AdvancedFilterってなんですか? 
メニュー[データ]-[フィルタ]のサブメニューに 
 ・ オートフィルタ 
 ・ フィルタオプションの設定 
ってありますよね? 
後者が AdvancedFilter のことです。 
 
AutoFilter は 対象シート上で条件に合わない行を隠す(非表示にする) 
機能なので、別シートへ転記するには元表にフィルタをかけてから 
全範囲をCOPYして転記先シートへ送らないといけないですが、 
 
AdvancedFilter(フィルタオプションの設定)機能を使えば、 
抽出と転記を同時にやってくれますので、画面がチラついたりする 
ことなく処理が早く済みます。 
ただ、抽出条件をセルのどこかに書いておかないといけないので、 
とりあえずAutoFilterで処理してみて、AutoFilterでできないことはないが 
より速く処理したい、という要求が高まってから挑戦してもいいかな? 
と思ってました。 
 
#neptune さん、フォローありがとうございます。 
 
 | 
     
    
   |