| 
    
     |  | Jaka さん、こんにちは 
 
 >んなわけで、フラグ使ってこんな風に面倒くさい書き方をしないとダメみたいでした.
 >やっぱダメでしょうか?
 >
 >標準モジュール
 >
 >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
 >
 
 なるほど、これでOKなんですね。
 今日はちょっと試してみる時間がとれないのですが、
 また試させてもらいます。(すみません)
 
 >********************
 >保存できないようにするは、
 >Workbook_BeforeClose で、ThisWorkbook.Saved = True
 >Workbook_BeforeSave で、Cancel = True
 >と、するだけで十分でした。
 >
 >Private Sub Workbook_BeforeClose(Cancel As Boolean)
 >  ThisWorkbook.Saved = True
 >End Sub
 
 ええ、そのやり方は最初検討したんですけど、
 これじゃー自分も保存できへんやんけ!ということで、
 初期状態に戻して保存→終了を考えてたんです。
 それで、Workbook_BeforeCloseの不思議にぶつかってしまったの(T_T)
 
 でも、あとで
 
 Application.EnableEvents = False
 ActiveWorkbook.Save
 Application.EnableEvents = True
 
 のやりかたを知って、保存用のルーチンを作って対応させました。
 Jakaさん、ほんとに色々ありがとうございました。
 
 
 |  |