Excel VBAのSavedプロパティについて
Excel VBAでワークブックを操作する際、そのワークブックが変更されて保存されているかどうかを判断する必要がある場面が多々あります。そのような時に利用するのがSaved
プロパティです。
Savedプロパティの基本
ワークブックのSaved
プロパティは、ワークブックに変更が加えられてから保存されていない場合にFalse
、変更が加えられていない、または変更後に保存されている場合にTrue
を返します。このプロパティは読み取り専用ではなく、値を変更して手動で保存状態を制御することもできます。
基本的な使用方法
アクティブなワークブックが保存されているかどうかを判断する例は以下のとおりです:
If ThisWorkbook.Saved Then
MsgBox "このワークブックは保存されています。"
Else
MsgBox "このワークブックは保存されていません。"
End If
Savedプロパティの活用サンプルコード
サンプルコード1: 保存を促すメッセージの表示
Sub PromptToSave()
If Not ThisWorkbook.Saved Then
MsgBox "変更が保存されていません。保存してください。"
End If
End Sub
このサンプルコードは、ワークブックに変更が加えられて保存されていない場合に、保存を促すメッセージを表示します。
サンプルコード2: 保存状態のリセット
Sub ResetSaveState()
ThisWorkbook.Saved = True
MsgBox "保存状態をリセットしました。"
End Sub
このサンプルコードは、ワークブックの保存状態を強制的にTrue
に変更します。これにより、Excelは変更が加えられていないと認識し、保存のプロンプトを表示しません。
Saved
プロパティは、ワークブックの保存状態を確認したり、制御したりする際に非常に役立ちます。このプロパティを上手に利用して、VBAスクリプトのユーザーエクスペリエンスを向上させることができます。