電子書籍の厳選無料作品が豊富!

EXCELのVBAで日付のデータを
過去1日、過去1週間、過去1ヶ月などのボタンを作成し
クリックしたらオートフィルター機能で各条件に
合ったデータを表示するにようにしようと思っています。
しかし、フィルターがない状態でクリックすると
正常に機能するのですが連続してボタンを
クリックするとうまくいきません。(表示がかわらない)
良い対策方法、または正しいやり方を教えてください。
よろしくお願いします。
EXCEL2000

Sub ボタン_クリック()
Rows("3:3").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, _
Criteria1:=">=" & , 条件日,Operator:=xlAnd
End Sub

A 回答 (1件)

現在オートフィルタモードであるかどうかを判別して、処理を分けるといいでしょう。

次の例はAutoFilterModeを使って判別しています。

With Activesheet
  If .AutoFilterMode = False Then
    .Range("データ範囲").AutoFilter 'この後に条件
  Else
   If .FilterMode = True Then
     MsgBox "フィルタリングを解除してください"
     Exit Sub
   End If
     res = MsgBox("オートフィルタを解除しますか?", vbOKCancel)
     If res = vbOK Then .Range("データ範囲").AutoFilter
   End If
End With
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
おかげさまで解決いたしました。

AutoFilterModeというものがあるのですね。
実際の動作を記憶させ、それをマクロにしている
レベルですので知りませんでした。
勉強になりました。

お礼日時:2002/08/27 12:25

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