| 
    
     |  | 今ごろすみません。 
 >Workbook_BeforeCloseイベント内で、Saveを書いてもダメで、
 >サブルーチンにして呼び出せばOKってことか・・・・
 
 いや、正確?にはそうではないです。
 こんな風に同じコードを2度書くのもなんだと思って、保存コードを外に出しただけです。
 
 ThisWorkbook.Close で、Workbook_BeforeCloseイベントに入った場合だけ保存が行われないので、
 単純にThisWorkbook.Closeの前に保存して置けばよいわけで...。
 
 文書作成能力が無いので、チマチマ書いて余計わかりにくくしてごめんなさい。
 おまけに途中で書き直したりしているくせに、文を見直さないんで意味不明なところが多々有りごめんなさい。
 ぶ、文才がほしい。
 
 Private Sub CommandButton1_Click()
 Dim i As Integer
 i = MsgBox("yesでファイル、noでエクセルを閉じます", vbYesNo)
 If i = vbYes Then
 Range("A1").Value = "何かの処理"
 ThisWorkbook.Save
 flg = True
 ThisWorkbook.Close
 Else
 Application.Quit
 End If
 End Sub
 
 Private Sub Workbook_BeforeClose(Cancel As Boolean)
 'ThisWorkbook.Closeで、ここに入ってきた場合Saveされないので、
 '2度保存されないようにと、フラグ判定で振分ける必要も無いのかも知れませんけど、
 'バグくさいんで安全のためにフラグ判定を入れました。
 If flg = False Then
 Range("A1").Value = "何かの処理"
 ThisWorkbook.Save
 End If
 ThisWorkbook.Saved = True
 End Sub
 
 >この間から、背中から腰にかけてむちゃ痛怠いつんです。
 >内臓疾患やったら、どーしよー(T_T)
 
 全然読んでませんでした。
 大変だったんですね!
 大事にしてください。
 
 >ファイルを閉じるでは、NGで、エクセルそのものを閉じる場合はOKでしたね?
 
 はい。
 
 |  |