時間を奪ってくる「親切なお節介」
こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!
Excelでシートを削除するときに出る「このシートは完全に削除されます。続けますか?」という確認メッセージが邪魔なときありませんか?
たとえば、VBA(マクロ)を使って「不要なシートを削除する」という処理を作成したとします。
しかし、実行するたびにポップアップが表示され、その都度「削除」ボタンを押さなければなりません。
「わかってるよ!消したいからプログラム動かしてるんでしょ!」って、イラッとしませんか?
たった「1クリック」の手間ですが、もし100枚のシートを処理するとしたら100秒(約1分半)はロスです。しかも、その間ずっとパソコンの前に張り付いていないといけません。これでは自動化の意味が半減してしまいますよね。
今回はあれを消す方法を紹介します。
解決策:Excelに警告を出させない
このメッセージを出さないようにするには、Application.DisplayAlerts(アプリケーション・ディスプレイアラーツ)という設定を使用します。
イメージとしては、Excelに一時的な「耳栓」をさせて、警告を無視させるような感覚です。
コピペで使えるコード
では、実際のコードを見てみましょう。
コードをコピーして、シート名をご自身の環境に合わせて書き換えるだけで使えます。
※実際にシートが削除されるため、必ずテスト用のファイルで動作を確認してください。
Sub シートを削除する()
' 1. Excelの警告メッセージをオフにする
Application.DisplayAlerts = False
' 2. シートを削除する
' ※削除したいシート名に合わせて書き換えてください
Sheets("削除したいシート").Delete
' 3. Excelの警告メッセージをオンに戻す
Application.DisplayAlerts = True
End Sub
ポイント:「サンドイッチ」にすること
削除の命令(Delete)を、警告オフ(False)と警告オン(True)で必ず挟んでください。
- False で警告を無視させる。
- その間にシートを削除する。
- True で元の状態(安全装置)に戻す。
もし、最後の True を書き忘れるとどうなると思いますか?
Excelはずっと「耳栓」をしたままになります。そうすると、保存時の確認など、本来表示されるべき重要な警告まで出なくなってしまう恐れがあります。
これは運用上、非常に危険です。
「外出時に鍵をかける」のと同じように、「Falseにしたら必ずTrueに戻す」というセット操作を徹底しましょう。
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

コメント