[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロのフィルタ解除について(テーブル、表)』(ぽぽ)
教えてください。
Tableシートと表シートに下記のような表があります。
どちらのシートも同じリストがあります。
Tableシートではバナナにフィルタが掛けられており、表シートではみかんでフィルタがかかった状態です。
Tableシートは、テーブルに変換されています。
下記のコードのマクロをかけると、表シートのみフィルタ解除されますが、Tableシートでは解除されません。
調べると、ActiveSheet.ListObjects("テーブル1").ShowAutoFilter = Falseのように、テーブルでは解除方法が違うことが分かりました。
下記コードでCallで呼んでいるのですが、表シートは通常のフィルタ解除、Tableシートはテーブル用の解除方法と分けたい場合はどのように書けばいいでしょうか。また、テーブル名は必ず書かないとだめなものですか?Tableシートにテーブルが存在していれば解除するみたいに出来ないでしょうか。
No. 果物 1 みかん 2 りんご 3 みかん 4 みかん 5 バナナ 6 みかん 7 りんご
Sub フィルタ解除()
Dim Table As Worksheet
Dim 表 As Worksheet
Set Table = ThisWorkbook.Worksheets("Table")
Set 表 = ThisWorkbook.Worksheets("表")
Call 解除(Table)
Call 解除(表)
End Sub
Sub 解除(ws As Worksheet)
If ws.FilterMode = True Then ws.ShowAllData End Sub
< 使用 Excel:Microsoft365、使用 OS:Windows10 >
>テーブル名は必ず書かないとだめなものですか? 同じシートにテーブルは複数作成可能なので どのテーブルを操作するのか特定する為に必要です 名前の代わりに、1番目のテーブルなら ActiveSheet.ListObjects(1) でも可能です >テーブルが存在していれば ListObjectsのCountプロパティで テーブル数をカウント出来ます (はてな) 2024/01/26(金) 05:29:50
こうでしょうか? Sub test() Dim ws As Worksheet Dim tbl As ListObject For Each ws In Worksheets If ws.FilterMode = True Then ws.ShowAllData For Each tbl In ws.ListObjects tbl.ShowAutoFilter = False Next Next End Sub (xyz) 2024/01/26(金) 07:55:39
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.