• 締切済み

フォームのボタンからのみ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ボタンは無効になりましたが、 フォームからの終了も出来なくなってしまいました。 フォームからのみ終了する方法を教えてください。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

UserFom側のコードを Private Sub CommandButton1_Click()   Application.DisplayAlerts=False   Application.Quit   ' この行を追加   ThisWorkbook.CanClose = True   ThisWorkbook.Close End Sub としないといけないようです m(__)m

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

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イベントでは直接使えません

関連するQ&A