【VBA】「保存しますか?」の確認をスキップして作業を効率化する方法

【業務効率化】VBA
スポンサーリンク

こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!

今日は、Excelを使っていて地味に、でも確実にストレスが溜まる「あの瞬間」についてお話しします。

ファイルを閉じようとするたびに現れる、「変更を保存しますか?」というポップアップ。これを毎回クリックするのは、意外と集中力を削ぐ作業ですよね。

特に、膨大なデータを扱っている時や疲労が溜まっている時、「あれ? どこか書き換えてしまったかな? 保存して大丈夫だろうか……」と迷い、手が止まってしまった経験はありませんか? その数秒の迷いも、一日に何度も重なれば大きなタイムロスになります。

今回は、そんな不安を解消し、「自動で、迷わず、スマートに閉じる」ためのVBAコードをご紹介します。

なぜ「確認画面」をスキップするべきなのか?

確認画面が出るのは親切なんじゃないの?」と思うかもしれません。もちろん、手動で作業している時はそうです。

しかし、「閲覧専用で開いたファイル」や「マクロによるデータ転記用の参照ブック」の場合はどうでしょうか。 もし誤って「保存する」を選択してしまったら、元のマスターデータが崩れてしまうリスクがあります。

実は、コードで「保存せずに閉じる」と明記して制御する方が、誤操作によるデータ破損のリスクをゼロにできるため、精神的にも非常に楽になれるのです。

【コピペOK】ブックを閉じるためのVBAコード

それでは、用途に合わせた3つのパターンを見ていきましょう。

1. 保存せずに閉じる(変更を破棄する)

「誤ってデータを書き換えたくない」という時は、このコード一択です。変更を一切無視して閉じます。

Sub CloseWithoutSaving()
    ' 解説:このブックを、変更を保存せずに(False)閉じます。
    ThisWorkbook.Close SaveChanges:=False
End Sub

2. 上書き保存して閉じる

逆に、「常に最新の状態で保存して終了したい」という場合はこちら。確認画面を出さずに、強制的に上書き保存して閉じます。

Sub CloseWithSaving()
    ' 解説:このブックを、変更を保存して(True)閉じます。
    ThisWorkbook.Close SaveChanges:=True
End Sub

3. 別のブックを開いて、用が済んだら保存せずに閉じる

実務で最も頻出するパターンです。外部の売上データ等を開いて情報を取得し、そのブックは変更を加えずに閉じる例です。

Sub GetDataAndClose()
    Dim targetBook As Workbook
   
    ' テスト用にCドライブ直下のデータを開く例
    ' ※実際のパスに合わせて書き換えてください
    Set targetBook = Workbooks.Open("C:\Data\SalesData.xlsx")
   
    ' ここにデータを転記する処理が入ります(今回は省略)
   
    ' 最後に、開いたブックを「保存せずに」閉じます
    targetBook.Close SaveChanges:=False
   
    MsgBox "データの転記が完了し、元ファイルを閉じました。"
End Sub

コードの解説(ここだけ覚えればOK!)

ポイントは SaveChanges(セーブ・チェンジズ)という引数(ひきすう)の設定です。

  • SaveChanges:=False
    「変更を保存しますか?」に対して「いいえ(False)」と答えるのと同じ動きをします。
    どんな操作をしていても開く前の状態が維持されるので、参照用ブックに最適です。
  • SaveChanges:=True
    「変更を保存しますか?」に対して「はい(True)」と答えるのと同じ動きをします。
    問答無用で上書きされるため、確実に保存したい時のみ使用しましょう。

ちなみにこの引数を省略すると、ブックに変更があった場合に例の「保存しますか?」というプロンプトが表示される仕様になっています。

この記事を書いた人
ぐー

手取り15万円の会社員でも、年間100万円以上の節約・資産管理・スキルアップで新NISAで年間360万円投資し、iDeCoもフル活用しています。日商簿記3級持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、稼ぐ力を高めるITスキルについて発信しています。

生活を豊かにしたくて、高配当株投資で年間配当金60万円をめざしています。現在は年間配当金25万円以上達成!

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました