| 
    
     |  | こんにちは。 初めてですが、質問させて下さい。
 
 マクロを含むファイルを更新した場合に別名で保存を促し、
 保存しないことを確認後、上書き保存せず終了という処理を組んでみました。
 大まかな動きは想定どおりなのですが、別名保存をキャンセルし、
 次表示のメッセージで「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
 
 |  |