非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

Excel/VBAでフィルター処理:フィルター解除(ShowAllData)の際の状況チェック

   

何かのマクロを実行する際に対象のシートにフィルターがかかっていると誤作動を起こすことがあります。なのでマクロ実行前にフィルターを解除するようなコードを入れると良いです。

[ad#top-1]

以下の一文でフィルター解除ができます。

ActiveSheet.ShowAllData
 

 

以下のようにフィルターが解除されました。

ところが、もしそのシートでフィルターがかかっていなくて全データが表示されていたり、そもそもフィルターを使っていない場合は以下のように実行エラーが発生してしまいます。

 

なので、以下のようにFilterModeをチェックし、Trueの時だけShowAllDataを実行すると良いでしょう。

If ActiveSheet.FilterMode Then
  ActiveSheet.ShowAllData
EndIf
 

 

[ad#ad-1]


スポンサーリンク

 - Excel, VBA