こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCEL VBAでのオートフィルター

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

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

投稿日時 - 2002-08-27 10:25:33

QNo.344550

困ってます

質問者が選んだベストアンサー

現在オートフィルタモードであるかどうかを判別して、処理を分けるといいでしょう。次の例は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

投稿日時 - 2002-08-27 10:50:38

お礼

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

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

投稿日時 - 2002-08-27 12:25:49

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問