重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【6/2終了】教えて!gooアプリ版配信終了

エクセルのテーブルデータがあります。
マクロを作成しながらテーブルの値をフィルタリングしたりしています。
マクロの試行錯誤を繰り返しているうちに、フィルターが解除出来なくなります。
画像のようにグレーになっていて押せません。
画面更新等をtrueにしてもグレーのままです。
Application.ScreenUpdating = True
Application.EnableEvents = True

試しに
If ActiveSheet.AutoFilterMode = True Then
MsgBox "設定されています"
Else
MsgBox "設定されていません"
End If
これを実行してみると、フィルターの三角ボタンはあるのに、設定されていませんと出てきます。

おかげで、動いていたオートフィルターやスライサーのマクロが動きません。
フィルターがないとエラーでます。

直す方法は、別ブックに値のみ貼り付けそこでテーブルを作成し既存のブックに戻してあげる。
これにより、フィルターが復活します。


原因は何なのでしょうか?
直す方法があるのでしょうか?

「エクセルのテーブルのフィルターがおかしく」の質問画像

A 回答 (3件)

#1です。


原因は、分かりませんが、#1で示したように
If ActiveSheet.ListObjects(1).ShowAutoFilter = True Then
MsgBox "設定されています"
Else
MsgBox "設定されていません"
End If
こちらを試してみてください。
インデックス1どうかは、解りませんが
テーブルのフィルタがある場合、Trueが返されます。
解除の場合も、.ListObjects(1).ShowAutoFilter で
    • good
    • 0
この回答へのお礼

返信、ありがとうございます。
試したところ、フィルターの三角ボタンは存在しているのに
設定されていません、と出ます。
マクロで解除も出来ない、なので新規ブックにコピーしテーブルを作り直すことしか解決はないのでしょうか。
テーブルを参照している関数が沢山ある場合はとても大変です。
今までもマクロを一行ずつ動かしたり原因を探し続けてきたのですが解決には至らず・・・。あきらめます!
これからは常にテーブルを二つ作り対応していきます。

ご親切にありがとうございました。

お礼日時:2021/02/05 07:51

何も提示無く、単に「おかしくなりました」だけでは解りません。


多分、ロジックミス、としか言えません。
    • good
    • 0

こんにちは、


あてずぽな回答ではありますが、
フィルタは、テーブル外にかけていますか?テーブルにですか?
解除は同様にテーブルですか外ですか?
解除はマクロで行っているのかな?
.AutoFilterMode = False ?
.ListObjects(1).ShowAutoFilter = False ?
見当違い、頓珍漢だったら忘れてね
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。

データをテーブルに変換したときに自動で付くフィルターです。
テーブルの値を集計するために、マクロで何度も絞り込んだり解除したりしています。
そして気がつくといつの間にか図のようにグレーになっています。
もちろんテーブル外をセル選択しているとフィルター操作は出来ません。

通常だとツールバーのホームタブ→並び替えとフィルター→フィルターと押すとフィルターが付いたり消えたりします。
画像のように、それさえ出来なくなります。

最終的にマクロを使ってフィルターを取り除こうとしてもフィルターが無いと判断されます。絞り込んで結果を返そうと思ってもフィルターが無いと判断されます。マクロで無いと判断されても手動では絞り込んだり出来ます。

フィルターボタンを押せなくても、マクロで無いと判断されなければ、完璧に動いています。
No2の方が言うロジックミスも考えられますが、ツールバーから解除出来ない、マクロでもフィルターを取ることが出来ない、
しかし、マクロは機能していて絞り込み結果が返ってきています。
使用している打ちに突然、エラーが出てきてフィルターが無いと判断されます。

どのタイミングでそうなるのかは不明です。
さっきまで動いていたマクロが突然動かなくなりフィルターが無いとエラーが出ます。そうしてテーブルを見るとフィルターが解除出来なくなっています。

お礼日時:2021/02/04 09:40

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