プロが教えるわが家の防犯対策術!

シートが5枚あります
1のシートのヘッダー部分に入力枠を設け、山田と入力してボタンを押したら一度にすべてのシートのA列を山田でフィルタが掛けられるマクロを設定したいです
フィルタクリアする時はクリアボタンを押すか入力枠を空欄にしてボタンを押すイメージです

宜しくお願いします

A 回答 (2件)

「フィルターオプション(詳細設定)」って、ご存知ですが?


VBAだと「Range.AdvancedFilter」メソッドになるのですが・・・。

これは、VBAだけではなく、マニュアル操作でも出来るので、是非やってみて下さい。
マニュアルで出来るようになったら、それをマクロ記録してみて下さい。
記録されたマクロを見れば、大体の仕組みは分かると思います。
「リスト範囲」や「選択条件範囲」の指定を可変対応すれば、
非常に強力な武器になります(個人的には、Excelで一番便利な機能だと思っている)。
とりあえず、挑戦してみる価値はあると思います。
もし、分からないことが出てきたら、また質問するっていう手もあるし・・・。
    • good
    • 0
この回答へのお礼

長らく教えてgooにアクセスできず放置してすみません!
すごく難しいのと、別の作業が入っていまだ試せていないのですが、トライしてみたいと思います。
ありがとうございました!

お礼日時:2020/05/16 11:47

こんにちは、


少々情報が足りなく、、ですが
>1のシートのヘッダー部分に入力枠を設け  は、 シート名 1のシート と仮定 >入力枠 は、 A1セルと仮定
また、
各シート1行目及びA列のデータ間に空白がないと言う条件で

Option Explicit
Sub sampleFilter()
Dim sh As Worksheet
  For Each sh In Worksheets
    If Not sh.Name = "1のシート" Then
      If Not Sheets("1のシート").Range("A1") = "" Then
        sh.UsedRange.AutoFilter Field:=1, Criteria1:=Sheets("1のシート").Range("A1").Text
      Else
        sh.UsedRange.AutoFilter
      End If
    End If
  Next sh
End Sub

1のシートも対象に含める場合は、If Not sh.Name = "1のシート" Then を削除し、対応の End If の削除してください。

入力枠に空白の入力、実行すると解除します。

解除だけしたいのなら
Sub sampleFilterOFF()
Dim sh As Worksheet
  For Each sh In Worksheets
    sh.UsedRange.AutoFilter
  Next sh
End Sub
    • good
    • 0
この回答へのお礼

長らく教えてgooにアクセスできず放置してすみません!
わーコピペだけで実現出来たらすっごく嬉しいです。
すごく難しいのと、別の作業が入っていまだ試せていないのですが、トライしてみたいと思います。
ありがとうございました!

お礼日時:2020/05/16 11:48

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

このQ&Aを見た人はこんなQ&Aも見ています