savedプロパティ解説(Excel VBA)

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スクリプトのユーザーエクスペリエンスを向上させることができます。