2021年9月14日火曜日

If AutoFilterMode is NOT working in VBA, Use Both FilterMode and autoFilterMode

 EXCEL  のVBAでシートを操作(例えば、行コピー)する場合、フィルタがかかったままだと、誤動作する(列がズレてコピーされる)ことがあるので、フィルタを解除するコードを書いてみた。

If ActiveSheet.AutoFilterMode = True then  ' フィルタがかかっているかを判定する
    ActiveSheet.Range("A1").autofilter ' フィルタをクリア
    ActiveSheet.AutoFilterMode = False  ' ▽ボタンを消す
End If

でもこれ(AutoFilterMode)だとフィルターがかかっていても、then節を実行してくれない。AutoFilterModeがTrueにならないのだ。 色々試行錯誤し、わかったのだが、そんな時には、AutoFilterModeではなく、FilterModeを使うと、うまく行くかもしれない。逆もありうるので、両方のパターンを網羅する。なんだか、元々がバグのようでなので、わけわかりませんが・・・

If ActiveSheet.FilterMode = True or ActiveSheet.AutoFilterMode = True then  ' フィルタがかかっているかを判定する
    ActiveSheet.Range("A1").autofilter ' フィルタをクリア
    ActiveSheet.AutoFilterMode = False  ' ▽ボタンを消す
End If

試してみてね。マイクロソフトは気ままな会社なので、ユーザはとても大変ですね。

 ここで一息のコーナー。今回は、エノキの冷凍について。エノキが使い切れず、だめにしてしまうことが多いので、冷凍を試みた。4〜5センチに切り、一回分ずつをラップして、冷凍してみた。解凍はせず、そのまま、味噌汁の具鍋に投入。物凄く使い易い。これはもはや、茹で卵の作り方みたいに、どうでもいい情報だね。



0 件のコメント:

コメントを投稿