教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA ブック操作】ブックの内容が変更されたかどうかを判断(Saved)する方法を教えて!

f:id:m_kbou:20200418131106p:plain

ブックが最後に保存された後、「何か変更が有ったか?」「何も変更が無かったか?」を確認するにはSavedプロパティを使用します。Savedプロパティには戻り値があり、「True」の場合には保存された後に何も変更が無かった事になり、「False」の場合には保存された後に変更が有った事になります。このSavedプロパティの使い方について紹介します。

 

 

構文

記述方法は以下の通りとなります。

Workbooks(”[ブック名]”).Saved = True or False

[説明]:

ブックの内容が変更されたか否かを判断するにはSavedプロパティを記述します。[ブック名]には内容が変更されたか否かを判断するブック名を記述します。また、ブック名は「”」(ダブルクォーテーション)で囲みます。ブックが変更されている場合は戻り値として「False」が返り、変更されていない場合は「True」が返ります。内容を纏めると、「[ブック名]で記述したブックが変更されたか否かを判断して下さい。」との意味になります。

[記述例]:

Workbooks("演習.xlsm").Saved = True
Workbooks("演習.xlsm").Saved = False

 

使い方

使い方について具体的に説明します。

ブックの内容が変更されていない場合の判断方法

ブックの内容が変更されていない場合の判断方法について説明します。

[プログラミング例]:

Sub サンプル()
  If Workbooks("演習.xlsm").Saved = True Then
    MsgBox "変更されていません。"
  End If
End Sub

内容は、「演習.xlsmが変更されたかどうかを判断し、変更されていない場合はMsgBoxで”変更されていません。”のメッセージを表示して下さい。」との意味になります。

f:id:m_kbou:20210322111519p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①今回は例として演習.xlsmファイルを作成し、以下の様に<実行>ボタンを設置します。<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この演習.xlsmファイルに何も変更を加えず、<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。) 

f:id:m_kbou:20210322111538p:plain

②結果は以下の様になります。演習.xlsmファイルには何も変更を加えていないため、MsgBoxで「変更されていません。」が表示されます。f:id:m_kbou:20210322111554p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

ブックが変更されていない場合の判断方法についての説明は以上です。

 

ブックの内容が変更された場合の判断方法

ブックの内容が変更された場合の判断方法について説明します。

[プログラミング例]:

Sub サンプル()
  If Workbooks("演習.xlsm").Saved = False Then
    MsgBox "変更されました。"
  End If
End Sub

内容は、「演習.xlsmが変更されたかどうかを判断し、変更された場合はMsgBoxで”変更されました。”のメッセージを表示して下さい。」との意味になります。

f:id:m_kbou:20210322112438p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①今回は例として演習.xlsmファイルを作成し、以下の様に<実行>ボタンを設置します。<実行>ボタンには上記のプログラミング例のプログラムが登録されています。演習.xlsmファイルのA1セルに「テスト」の文字を入力し、<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。) 

f:id:m_kbou:20210322112456p:plain

②結果は以下の様になります。演習.xlsmファイルの内容が変更されたため、MsgBoxで「変更されました。」が表示されます。

f:id:m_kbou:20210322112512p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

ブックが変更された場合の判断方法についての説明は以上です。 

 

おわりに

今回はブックが変更されたかどうかを判断する方法について説明しました。Savedプロパティは、保存されたか否かを判断するプロパティです。よって、「保存されていない=ブックが変更された」「保存されている=ブックが変更されていない」との判断になります。TrueとFalseの指定方法に注意して下さい。