やりたいこと
ファイルを閉じる前にフィルターを解除する
Excelファイルで以下のようなデータがあるとします。
このように結果列に「合格」でフィルターをかけている状態で保存してあると、
RPAで操作した場合などにデータが壊れてしまうことがありました。
そのためファイルを保存して閉じる前に必ずフィルターを解除するという処理をVBAを使ってやってみたいと思います。
(↓保存する直前に必ずフィルター全解除)
ポイント
ThisWorkbookにVBAを記述
通常VBAを記述する場合は、標準モジュールを追加して記述しますが、
今回はThisWorkbookを選択して処理を記述します。
ThisWorkbookを選択後、右上の赤枠内はWorkbookとBeforeSaveを選択します。
BeforeSaveは保存する直前に記述されているマクロを起動するという意味になります。
このような処理はイベント処理と呼ばれています。
イベント処理には他にも、
・ワークブックを閉じる前に処理を行うBeforeClose
・ワークブックを開いた時に処理を行うOpen
など様々なイベントがあります。
今回はBeforSaveを選択することで自動的に以下のコードが記述されるので、
保存する直前に行う処理を記述していきます。
記述するコードは以下の通りです。
【VBA コード】
記述するコードは1文で書くことができます!
今回はIf文を1行で書いたので、End Ifで閉める必要はありません。
上記のコードが書けたら、フィルターを設定した状態で保存を行ってみてください。
自動的にフィルターが解除されていると思います(^^)
ひとこと
RPAなどでExcelファイルを操作する時に、Excelのデータにフィルターがかかっているとデータが壊れてしまう場合が結構あります。
お客さんに「Excelを保存して閉じる前にフィルターを解除してくださいね!」と頼んでも忘れてしまうこともあります。
そんな時はマクロを使って、保存する前に自動的にフィルターを解除するという処理を組んでしまいましょう!
今回のようにRPAでの開発は、部分的にマクロと組み合わせたりすることで、より使いやすくなるのでオススメです!
他にもVBAについて紹介しているのでぜひ参考にしてみてください!
できるシリーズはフルカラーでかなり細かいところまで画像を使って解説してあるのでオススメです!