【VBA】エクセルファイルの保存し忘れを防ぐためにイベントプロシージャで自動で保存する

Excel VBA すべて

職場の同僚に「このエクセルの表に入力しておいてください。」と頼んで数日後に確認したらファイルが保存されてなかったという経験はないでしょうか。

また1時間かけて作成したエクセルの資料を保存せずに閉じてしまい、もう一度資料を作り直した経験のある方もいるかと思います。

このようなことが起こらないようにあらかじめエクセルシートにファイルを保存するプログラムを組み込んでおき、セルの入力時に自動でファイルを保存するようにしておけばミスを防げるようになります。

VBE(Visual Basic Editor)を起動して作成しているシート名をダブルクリックし、次のコードをコピーして貼り付けます。

Private Sub Worksheet_Change(ByVal Target As Range) 'セルの値が変更されたときに実行するイベント

If Not Intersect(Target, Range("A8:A17")) Is Nothing Then

MsgBox "ファイルを保存します。"
ThisWorkbook.Save

End If

End Sub

上のコードはセルの範囲「A8:A17」にデータ入力してEnterキーを押したときにファイルを保存するようにしています、入力時には必ずEnterキーを押すのでファイルの保存し忘れを防ぐことができます。Range(“A8:A17”) をRange(“B8:B17”) や Range(“D10”) のようにデータ入力するセルの範囲に合わせて自由に書き換えて使ってみてください。

そして「MsgBox “ファイルを保存します。”」のコードを削除しておけば作業者が気づかないうちにファイルが保存されるので資料作成を頼んだ人も安心して仕事を任せられると思います。(˶ᴗᵔ˵♪

コメント