dポイントプレゼントキャンペーン実施中!

エクセルで質問です。
現在マクロを使って簡単な計算表を作っているのですが、エクセルを終了する時にフォームコントロールボタンを使って終了というカタチにしています。(下記参照)

Sub 終了処理()
Application.DisplayFullScreen = False

With ActiveWindow
.DisplayHorizontalScrollBar = True
.DisplayVerticalScrollBar = True
.DisplayWorkbookTabs = True
.DisplayGridlines = True
.DisplayHeadings = True
End With

Toolbars(1).Visible = True
Toolbars(2).Visible = True
Toolbars(5).Visible = True
Toolbars(7).Visible = True
Toolbars(9).Visible = True

Application.DisplayFormulaBar = True
Application.DisplayStatusBar = True

Application.DisplayAlerts = False

Application.Quit

End Sub

ここまではうまく出来たのですが、終わるときに右上にある×ボタンを使って終わる事が出来ないようにしたい!っていうのが今回の質問です。
皆様のお力をお借りしたいと思いますので宜しくお願い致します。

ちなみに、エクセルを開いた時はフルスクリーンになるようにしています。
trueのところがfalseにしています。

A 回答 (2件)

こんにちは


ThisWorkbookに

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Cancel = True
End Sub

で、×ボタンを無効に出来ます。

ただし、
Application.Quit
も効かなくなるので、
Application.EnableEvents = False

を「Application.Quit」
の前に入れてください。



また、フォームのボタンには
Application.Quit
だけ設定しておいて、以下のように、あとの処理を
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 ~
End Sub
に記述する方がスリムになります。


Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Application.DisplayFullScreen = False

 With ActiveWindow
  .DisplayHorizontalScrollBar = True
  .DisplayVerticalScrollBar = True
  .DisplayWorkbookTabs = True
  .DisplayGridlines = True
  .DisplayHeadings = True
 End With

 Toolbars(1).Visible = True
 Toolbars(2).Visible = True
 Toolbars(5).Visible = True
 Toolbars(7).Visible = True
 Toolbars(9).Visible = True

 Application.DisplayFormulaBar = True
 Application.DisplayStatusBar = True

 Application.DisplayAlerts = False
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
親切に内容まで入れて頂き大変助かりました。

本当にありがとうございました。

お礼日時:2010/07/27 17:12

パブリック変数を一つ用意して、フォームの終了ボタンが押された時はその変数に1を入れます(1じゃなくても良いです)。


で、ThisWorkbookの Workbook_BeforeClose で、そのパブリック変数が1以外の場合、終了をキャンセルするようにしては如何ですか。
    • good
    • 0
この回答へのお礼

さっそく回答ありがとうございます。
ThisWorkbookに入れるわけですね。
やってみます。
ありがとうございます。

お礼日時:2010/07/27 17:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!