アプリ版:「スタンプのみでお礼する」機能のリリースについて

フィルタがかかっているかどうかを取得したいのですが

フィルタがかかっているシートにて
Sub test1()
If ActiveSheet.FilterMode Then
MsgBox "フィルタがかかってます"
End If
End Sub

Sub test1の1()
If ActiveSheet.FilterMode = True Then
MsgBox "フィルタがかかってます"
End If
End Sub

を実行しても"フィルタがかかってます"は表示されません。

Sub test2()
If Rows(1).FilterMode Then
MsgBox "フィルタがかかってます"
End If
End Sub

Sub test3()
If ActiveSheet.Rows(1).FilterMode Then
MsgBox "フィルタがかかってます"
End If
End Sub

こちらは
オブジェクトは、このプロパティまたはメソッドをサポートしていません。(Error 438)
になってしまいます。

フィルタがかかっているか調べる方法はありますか?
よろしくお願いします。

A 回答 (3件)

すでにWendy02さんから回答がでていますが、付け加えますと


シートにオートフィルタが設置されていれば、そのオートフィルタの状態の如何にかかわらずAutoFilterModeでTrueが返ります。

これに対し、設置されたオートフィルタが、何らかのフィルタ指示をされてフィルタがかかった状態であればFilterModeでTrueが返ります。(フィルタが設置されていても何もフィルタ指示をされていない状態は、通常フィルタがかかっているとは言いません。)
    • good
    • 0
この回答へのお礼

本当だ。
やってみたらおっしゃるとおりになりました。

お礼日時:2009/05/05 01:20

似た表現のものに、AutoFilterモードとFilterモードの2つが有るようです。


どちらもObjectはシートObjectに対してです。
その違いは、
Sub test01()
ActiveSheet.Range("A:A").AutoFilter
'これでA列に▼がつく
'下記で▼が消える
ActiveSheet.Range("A:A").AutoFilter 'X
ActiveSheet.AutoFilterMode = False 'range指定なし
MsgBox ActiveSheet.AutoFilterMode
ActiveSheet.Range("A:A").AutoFilter
MsgBox ActiveSheet.AutoFilterMode
End Sub
Xの行をコメントアウトをしたり生かしたりして、情況を理解してください。
▼を表示している(する)モードの設定と状態取得をします。
ーー
FilterModeは
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/v … の
>FilterModeプロパティではAutoFilterがONでもデータが抽出されていないどきはFalseのままですので、AutoFilterModeプロパティを利用します。 を参照のこと。
データが
商品▼
a
s
a
s
d
f
a
で書き事項すると、False
Sub test02()
MsgBox ActiveSheet.FilterMode
End Sub
フィルタして
商品▼
a
a
a

の状態にして、実行するとTrueです。
「すべて」を選ぶと上記実行はFalse
以上を参考に考えてみてください。
    • good
    • 1
この回答へのお礼

ありがとうございます。参考になりました。

お礼日時:2009/05/06 12:06

こんばんは。



回答自体は、たぶん、以下のようなことなんでしょう。
でも、ふと思ったけれども、これは、私たち、英語を母国語としない者にとって、損ですね。
"Filter" というのは、日本語でいうと、「ふるいにかけた」ということで、「すべて」出ているときは、"Filter" とは言わないからです。

Sub test1a()
If ActiveSheet.AutoFilterMode Then
MsgBox "フィルタがかかってます"
End If
End Sub
    • good
    • 0
この回答へのお礼

「Auto」が必要なのですね!
私の求めていた回答です!
ありがとうございます。

お礼日時:2009/05/05 00:18

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

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