• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2003オートフィルタの有無を確認マクロ)

Excel2003オートフィルタの有無を確認マクロ

このQ&Aのポイント
  • Excel2003のオートフィルタの有無を確認し、状態を切り替えるマクロについて説明します。
  • オートフィルタを設定する方法として、Selection.AutoFilterを使用することができますが、この方法ではオートフィルタの状態を判断することができません。
  • 代わりに、オートフィルタがオン・オフどちらの状態かを確認し、切り替えるための命令を一行で書くことができます。具体的な手順はURL(http://www.asahi-net.or.jp/~zn3y-ngi/YNxv208.html)を参考にしてください。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

> 一行で書く オンにする If Not Sheets("Sheet1").AutoFilterMode Then Selection.AutoFilter オフにする If Sheets("Sheet1").AutoFilterMode Then Selection.AutoFilter 場合によってSelectionの部分は実態に合わせ書き換えてください。

r2san
質問者

お礼

ご回答ありがとうございました。 シンプルでわかりやすいご回答で勉強になりました。

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

例えば次のようにしてはいかがでしょう Private Sub オートフィルタの状態を調べて切り替える() If Worksheets("SSS").AutoFilterMode = False Then ans=MsgBox("オートフィルタがオフの状態です。オンにしますか?", vbYesNo) If ans = vbYes Then オートフィルタを設定するマクロを記入する。 End If End If If Worksheets("SSS").AutoFilterMode = True Then ans=MsgBox("オートフィルタがオンの状態です。オフにしますか?", vbYesNo) If ans = vbYes Then Worksheets("SSS").AutoFilterMode = False End If End If End Sub 状態を調べて質問をすることなく反対のことをさせるのでしたらansのマクロをカットすればよいでしょう。いずれにしろオートフィルタの状態はFalseやTrueで調べることになりますね。

r2san
質問者

お礼

ご回答ありがとうございました。 わかりやすいご説明でよくわかりました。

専門家に質問してみよう