- Home ›
- Excel VBA入門 ›
- ブックの作成と保存 ›
- HERE
最後に保存されてから変更されているか確認する
ブックが最後に保存されてから何か変更が行われているかどうかを確認する方法を見ていきます。Workbookオブジェクトの「Saved」プロパティで確認することが出来ます。
If ActiveWorkbook.Saved = True Then MsgBox "変更されていません" Else MsgBox "変更された内容が保存されていません" End if
「Saved」プロパティが「True」の場合には、ブックが最後に保存されてから何も変更が行われていない事になります。逆に「False」の場合には保存されていない変更分が存在していることになります。
「Saved」プロパティは値を参照するだけではなく、値を設定することも可能です。
ActiveWorkbook.Saved = True ActiveWorkbook.Close
何か変更があったにも関わらず、単にブックを閉じようとすると「変更を保存しますか」という確認ダイアログが表示されますが、保存されていないにも関わらず「Saved」プロパティに「True」を設定すると最後に保存してから何も変更がなかったかのように扱われるため、確認ダイアログが表示されずにブックは閉じられるようになります。
注意する点は「Saved」プロパティを「True」に設定しても実際に保存がされるわけではありませんので注意して下さい。
サンプルプログラム
では簡単なサンプルで試してみましょう。
Sub テスト() Workbooks.Open filename:="C:¥excelsample¥2005年成績.xls" If ActiveWorkbook.Saved = True Then MsgBox "変更されていません" Else MsgBox "変更されています" End If ActiveSheet.Range("A1").Value = "保存" If ActiveWorkbook.Saved = True Then MsgBox "変更されていません" Else MsgBox "変更されています" End If End Sub
上記マクロを実行すると下記のようになります。
まずブックを開いた直後に変更がされたかどうかを確認しています。開いた直後ですので何も変更が行われていませんので上記のように表示されます。
次にセルA1に値を設定しています。これで最後に保存されてから変更が加えられた状態となります。「Saved」プロパティを確認してみると上記のように変更されていることを認識していることが確認できます。
( Written by Tatsuo Ikura )