• ベストアンサー

Excell : 「データ→フィルタ→全て表示」をマクロにする。

Excellにて「データ→フィルタ→全て表示」をマクロにしました。既にフィルタがかかった状態でこのマクロを実行すると問題ありません。しかし、フィルタがかかっていない状態から実行すると「全て表示」が有効になっていないので、マクロ実行がエラーになってしまいます。 多分、以下のVBに「全て表示」が有効になっているかの判断を入れればいいかと思うのですが、その具体的なコードを教えてください。よろしくお願いします。 Sub 全て表示() ActiveSheet.ShowAllData End Sub

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

  • ベストアンサー
  • hanaoo
  • ベストアンサー率27% (6/22)
回答No.1

If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData End If これでどうでしょう?? Filtermodeで確かboolean型で値を返すと記憶してますが。。。違ってたらすいません。試してください。

zuntac
質問者

お礼

回答ありがとうございます。 この方法で解決することができました。すばらしい!

その他の回答 (1)

  • laputart
  • ベストアンサー率34% (288/843)
回答No.2

Sub 全て表示() On Error Resume Next ActiveSheet.ShowAllData End Sub とするとエラーが合った場合は無視して次の行へ 行く命令です。SubRoutineの最初の行で使うと便利です。但しこれではエラーがあったのかなかったのか わかりませんので、プログラム開発用でかつ 作業が停止しないようにする場合は以下のように すると便利です。 Sub 全て表示() On Error Goto Ert ActiveSheet.ShowAllData exit sub Ert: msgbox("フィルター解除でエラーが発生") End Sub

zuntac
質問者

補足

回答ありがとうございます。今回はNo.1の方の方法を使わせて頂きましたが、laputartさんの内容はVBの使い方としてはたいへん参考になりました。今後このテクニックを使いたいと思います。

関連するQ&A