- 締切済み
フォームのボタンからのみexcelを終了したい
おねがいします。 都合上、フォームのボタンからだけexcelを終了したのです。 Private Sub CommandButton1_Click() Application.DisplayAlerts=False Application.Quit End Sub それに伴い、 右上のexcelのxボタン、シートのxボタンを無効化または非表示にしたいです。 Private Sub Workbook_BeforeClose(Cancel As Boolean) If CloseMode = 0 Then Cancel = 1 End If End Sub これで、エクセルxボタンは無効になりましたが、 フォームからの終了も出来なくなってしまいました。 フォームからのみ終了する方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- redfox63
- ベストアンサー率71% (1325/1856)
UserFom側のコードを Private Sub CommandButton1_Click() Application.DisplayAlerts=False Application.Quit ' この行を追加 ThisWorkbook.CanClose = True ThisWorkbook.Close End Sub としないといけないようです m(__)m
- redfox63
- ベストアンサー率71% (1325/1856)
ThisWorkbookに閉じてもいいかのフラグをプロパティなどで実装して見てはいかがでしょう --- ThisWorkbook Private bCanClose as Boolean Public Property Get CanClose() as boolean CanClose = bCanClose End Property Public Property Let CanClose( value as boolean ) bCanClose = value End Property Private Workbook_BeforeClose(cancel as Boolean ) if Cancel = false and CanClose = false then Cancel = True end if End Sub --- UserFoem1 Private Sub CommandButton1_Click() Application.DisplayAlerts=False ' この行を追加 ThisWorkbook.CanClose = True Application.Quit End Sub # CancelModeはUserフォームを閉じる際のQueryCloseイベントで使われる引数のように思います # BookのBeforeCloseイベントでは直接使えません