うっかり保存を防止するには?

Question 60.2   Previous Next
マクロを組んであるエクセル文書を、つい変更して保存してしまうのですが、どのように修正するのでしょうか?

エクセル文書を毎日チェックしています。その際、見やすいようにデータの並べ替え等をしていますので終了する時に、「文書の変更を保存しますか?」というメッセージが出ます。
その時につい習性で 「はい」をクリックしてしまうことがあるんです。無意識に変更された文書を保存してしまうんですね。
その文書を元に戻す方法を教えていただきたいのです。VBAマクロを修正しなければならないと思うんですけど・・・。それが良く分からなくて・・・困っています。
そもそも「マクロ」自体、良く把握していないんです。お手数ですが、お時間がありましたらよろしくお願い致します。
Answer   Copyright (C) 2003.5.21 永井善王
ワークシートのデータを並べ替えて保存しただけで、組み込んであるマクロの内容が変わってしまうということはありません。元に戻したい理由は、データを並べ替えされるとマクロにとって具合が悪いからでしょうか。

元に戻すことは簡単ではありませんし、苦労して元に戻すためのマクロを作成しておいたとしても、そこでも「つい、うっかり」があるでしょうから、所詮、無駄なことかもしれません。
ですが、閉じるときに防御することを考えれば、ある程度救えるかと思います。また、ついうっかり、上書き保存の操作をしてしまうという心配がありますが、ここでは置いておきます。

解決策A. 並べ替えされてもいいようにマクロを修正する
並べ替えされるとマクロにとって具合が悪いのであれば、そのマクロの冒頭で都合の良い順番に並べ替えするように、機能を追加しておきます。

解決策B. 専用ボタンでないと閉じられなくする
Windows版Excelの場合、ブックを閉じる方法は少なくとも 5通りあります。どの方法で閉じようとしても、ブックの内容が変更されている場合は 「保存するか?」尋ねられます。 そのため、「つい、うっかり」に対抗しようとすると、それらの方法を全部、無効にしなければなりません。
しかし、そうすると全く閉じれなくなってしまうので、専用の[閉じる]ボタンを作成して、それがクリックされた場合だけは閉じるようにします。 そして、その時に一工夫して「うっかり」に対抗することになりますが、完璧にはいきません。

この方法は、それほど難しいことではありませんが、ここで簡単に説明できることでもありません。拙著「Excel VBA マクロ 組み方講座」では、これについて、初歩からやさしく解説したために多くのページを費やしています。
もし、この方法を採用したいようでしたら、そちらをお読みください。ほかにも、わかりやすく解説したつもりのマクロが沢山、掲載されています。2003年6月下旬に全国書店で発売される予定です。

 

Excel VBA Macro