| 
    
     |  | こんちは。 もうすんじゃったと思いますが。
 ThisWorkbook.Saved が有るのを今まで思い出せませんでした。
 これがあるのをすぐ思い出していれば、保存できないようにするで挫折することは無かったのに...。
 
 バグ?確認用(要するにこれじゃダメって事です。)
 
 Sheet1モジュール
 
 Private Sub CommandButton1_Click()
 Dim i As Integer
 i = MsgBox("yesでファイル、noでエクセルを閉じます", vbYesNo)
 If i = vbYes Then
 ThisWorkbook.Close
 Else
 Application.Quit
 End If
 End Sub
 
 ThisWorkBookモジュール
 
 Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Range("A1").Value = "何かの処理"
 DoEvents
 ThisWorkbook.Save
 DoEvents
 ThisWorkbook.Saved = True
 End Sub
 
 (注意)
 ThisWorkbook.Closeでブックを閉じると保存してくれない。
 一応ここは通っているのだけれど....。(バグくさいです。)
 因みに、閉じるボタンでは保存されます。
 Win98se & Exc2000SR1
 
 ****************************************
 んなわけで、フラグ使ってこんな風に面倒くさい書き方をしないとダメみたいでした.
 やっぱダメでしょうか?
 
 標準モジュール
 
 Public flg As Boolean
 
 Sub hozon()
 Range("A1").Value = "何かの処理"
 ThisWorkbook.Save
 End Sub
 
 
 Sheet1モジュール
 
 Private Sub CommandButton1_Click()
 Dim i As Integer
 i = MsgBox("yesでファイル、noでエクセルを閉じます", vbYesNo)
 If i = vbYes Then
 hozon
 flg = True
 ThisWorkbook.Close
 Else
 Application.Quit
 End If
 End Sub
 
 
 ThisWorkBookモジュール
 
 Private Sub Workbook_BeforeClose(Cancel As Boolean)
 If flg = False Then
 hozon
 End If
 ThisWorkbook.Saved = True
 End Sub
 
 ********************
 保存できないようにするは、
 Workbook_BeforeClose で、ThisWorkbook.Saved = True
 Workbook_BeforeSave で、Cancel = True
 と、するだけで十分でした。
 
 Private Sub Workbook_BeforeClose(Cancel As Boolean)
 ThisWorkbook.Saved = True
 End Sub
 
 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
 '全く保存できないとテスト時に不都合なんで
 'こんな風にしてあります。
 If Range("A1").Value = "" Then
 Cancel = True
 End If
 End Sub
 
 |  |