プロが教えるわが家の防犯対策術!

Excel2000で、
特定のボタンを押した場合以外の閉じる処理を
キャンセルさせたいのですがうまくいきません

sub ボタン押()
flg = true
end sub

sub auto_close()
if flg <> true then
msgbox "AAA"
exit sub
end if
end sub

これでは、どーやってもそのまま終了してしまいます。
なにか良い方法はないでしょうか・・・

よろしくおねがいします。

A 回答 (2件)

こんにちは。

maruru01です。

閉じる処理をキャンセルするなら、WorkbookオブジェクトのBeforeCloseイベントに記述してはどうですか。
引数のCancelにTrueを代入することで、閉じる操作をキャンセル出来ます。
記述する場所は、VBE画面のプロジェクトエクスプローラ(ツリー上のもの)の「ThisWorkbook」モジュールをダブルクリックして開きます。
そこに以下のように記述します。


Private Sub Workbook_BeforeClose(Cancel As Boolean)

  If Not flg Then
    MsgBox "AAA"
    Cancel = True
  End If

End Sub

この回答への補足

回答ありがとうございます。

実は他にもモジュールを記述していて
それらを全部、標準モジュールにまとめています。
なので出来れば、標準モジュールに書ける方法が
いいなぁと思っているのですが、可能でしょうか・・・

補足日時:2003/02/24 16:29
    • good
    • 1

auto_closeが動いている段階では、既に閉じる処理はキャンセルできないようです。



#1の方法しかないと思います。
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています