
フィルタがかかっているかどうかを取得したいのですが
フィルタがかかっているシートにて
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)
になってしまいます。
フィルタがかかっているか調べる方法はありますか?
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
すでにWendy02さんから回答がでていますが、付け加えますと
シートにオートフィルタが設置されていれば、そのオートフィルタの状態の如何にかかわらずAutoFilterModeでTrueが返ります。
これに対し、設置されたオートフィルタが、何らかのフィルタ指示をされてフィルタがかかった状態であればFilterModeでTrueが返ります。(フィルタが設置されていても何もフィルタ指示をされていない状態は、通常フィルタがかかっているとは言いません。)
No.3
- 回答日時:
似た表現のものに、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
以上を参考に考えてみてください。
No.1
- 回答日時:
こんばんは。
回答自体は、たぶん、以下のようなことなんでしょう。
でも、ふと思ったけれども、これは、私たち、英語を母国語としない者にとって、損ですね。
"Filter" というのは、日本語でいうと、「ふるいにかけた」ということで、「すべて」出ているときは、"Filter" とは言わないからです。
Sub test1a()
If ActiveSheet.AutoFilterMode Then
MsgBox "フィルタがかかってます"
End If
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) [Excel VBA] このコードでは行の挿入や行の消去をすると13のエラーが出てしまう。 3 2022/12/09 00:29
- Visual Basic(VBA) VBAユーザーフォームでテキストボックスについて。 1 2022/05/31 12:23
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Visual Basic(VBA) Excel VBA ユーザーフォーム 複数のユーザーフォームの閉じ方。 2 2022/04/27 11:29
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
このQ&Aを見た人はこんなQ&Aも見ています
-
access マクロでのフィルタの解除の方法
Access(アクセス)
-
ACCESS クエリ→フォーム フィルターをかけたデータのみエクスポートしたい
Excel(エクセル)
-
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
-
4
アクセスVBAで既に開いているエクセルを閉じたい
Yahoo!ショッピング
-
5
Access コンボボックスの値をクリアしたい。
PowerPoint(パワーポイント)
-
6
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
-
7
テーブル作成クエリで主キーを設定
その他(データベース)
-
8
Access VBA Me.Requery レコードは削除されています エラー
その他(データベース)
-
9
Access サブフォームでの選択行の取得
その他(データベース)
-
10
実行時エラー 3020の対策
Access(アクセス)
-
11
ACCESS でフォームフィルターをレポートに引き継ぐ方法
その他(データベース)
-
12
ACCESS VBA メインフォーム及びサブフォームのフィルタのクリア
Access(アクセス)
-
13
AccessのDMax関数の複数条件式に関して
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
エクセルのオートフィルタで最...
-
なぜShowAllDataだとうまく行か...
-
Excelのオートフィルタで非表示...
-
オートフィルタ抽出データのみ
-
エクセルで時刻(8:00~20:00)...
-
(VBA)フィルタがかかって...
-
エクセルのオートフィルタで抽...
-
エクセルで、条件に一致した行...
-
access マクロでのフィルタの...
-
エクセルのセル内にある文字列...
-
エクセル オートフィルタ中の...
-
オートフィルタで3つ以上の条...
-
エクセル・条件付で行を削除す...
-
Excelで、オートフィルタを解除...
-
エクセルで指定期間内に在職す...
-
上から順にすべてのデータを抽...
-
エクセル関数で、数字の入った...
-
Excelに書いた文字をor検...
-
Excelのウィンドウ表示?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
エクセルのオートフィルタで最...
-
エクセルで時刻(8:00~20:00)...
-
Excelのオートフィルタで非表示...
-
エクセルの偶数行(奇数行)の抽出
-
エクセル関数で、数字の入った...
-
エクセルにて、フィルタをかけ...
-
オートフィルタで3つ以上の条...
-
access マクロでのフィルタの...
-
オートフィルタは金額の桁カン...
-
エクセルで、条件に一致した行...
-
【EXCEL】条件に一致した最新デ...
-
【Excel/関数/条件付き書式】月...
-
オートフィルタで選択したデー...
-
Excelのフィルターで抽出した状...
-
Excel共有ブックのオートフィル...
-
データの抽出を教えてください
-
エクセルで隔週をもとめる
-
エクセル・条件付で行を削除す...
-
ACCESSでスペースの抽出
おすすめ情報