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

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

Sub 全て表示()
ActiveSheet.ShowAllData
End Sub

A 回答 (2件)

If ActiveSheet.FilterMode = True Then


ActiveSheet.ShowAllData
End If

これでどうでしょう??
Filtermodeで確かboolean型で値を返すと記憶してますが。。。違ってたらすいません。試してください。
    • good
    • 3
この回答へのお礼

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

お礼日時:2004/12/08 16:39

Sub 全て表示()


On Error Resume Next
ActiveSheet.ShowAllData
End Sub

とするとエラーが合った場合は無視して次の行へ
行く命令です。SubRoutineの最初の行で使うと便利です。但しこれではエラーがあったのかなかったのか
わかりませんので、プログラム開発用でかつ
作業が停止しないようにする場合は以下のように
すると便利です。

Sub 全て表示()
On Error Goto Ert
ActiveSheet.ShowAllData

exit sub

Ert:
msgbox("フィルター解除でエラーが発生")
End Sub

この回答への補足

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

補足日時:2004/12/08 16:39
    • good
    • 0

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