|
こんにちは。
初めてですが、質問させて下さい。
マクロを含むファイルを更新した場合に別名で保存を促し、
保存しないことを確認後、上書き保存せず終了という処理を組んでみました。
大まかな動きは想定どおりなのですが、別名保存をキャンセルし、
次表示のメッセージで「OK」とすると上書き保存の確認メッセージが出てきてしまいます。ここで「いいえ」を選択するとEXCELが異常終了してしまうのです。
閉じるときにはThisWorkbook.SavedをTrueにしているので上のメッセージは出ないはずなのですが・・・
皆様のお力を貸していただけないでしょうか。よろしくお願いします。
以下がコードです。ちなみにEXCELのバージョンは97です。
'EXCELシート上の終了ボタンを押すと起動
Sub 終了()
if quit() then
ThisWorkbook.close
end if
End Sub
'終了時の保存判定用関数
Function quit() As Boolean
Dim strFilename As String '保存ファイル名
quit = False
If ThisWorkbook.Saved Then
quit = True
Exit Function
End If
strFilename = ThisWorkbook.Path & "\" & _
"データ作成" & "_" & _
Format(Date, "yyyymmdd") & ".xls"
strFilename = Application.GetSaveAsFilename( _
FileFilter:="Excelファイル,*.xls", _
InitialFilename:=strFilename, _
Title:="Excelファイルの保存")
If strFilename = "False" Then
If MsgBox("保存せずに終了します。よろしいですか?", _
vbOKCancel + vbInformation, _
"終了確認") = vbOK Then
ThisWorkbook.Saved = True
quit = True
Exit Function
Else
quit = False
Exit Function
End If
End If
End Function
'終了(または、強制終了)時に保存しない。
Private Sub Workbook_BeforeClose(Cancel As Boolean)
If quit() = False Then
Cancel = True
Exit Sub
End If
Me.Saved = True
End Sub
|
|