[[20140911145308]] 『MsgBoxについて』(さくら) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『MsgBoxについて』(さくら)

ファイルの閉じるボタンを押したときに下記MsgBoxが出るように設定しました。

「Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Dim ans
 ans = MsgBox("閲覧者ですか?", vbYesNo + vbQuestion)
 If ans = vbNo Then Cancel = True
 End Sub」

このMsgBoxで「いいえ」を選択した場合に下記マクロが実行されるようにしたいのですが
どのように設定すればいいでしょうか?
また、ファイルを読み取り専用で開いた場合、MsgBox自体を表示させないようにすることは可能でしょうか?

「Sub 終了()
 '
 ' 終了 Macro
 '

 '

    ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
    ActiveSheet.Outline.ShowLevels RowLevels:=1
    Application.Dialogs(xlDialogProtectDocument).Show
    ActiveWorkbook.Save
    ActiveWorkbook.Close savechanges:=True
 End Sub」

よろしくお願いします。

< 使用 Excel:Excel2007、使用 OS:Windows8 >


 >ファイルの閉じるボタンを押したときに下記MsgBoxが出るように設定しました。
 が提示の処理によって実現されている内容は理解しているでしょうか。

  If ans = vbNo Then Cancel = True 
 がメッセージボックスの結果(No を選んだ)による処理なので
  If ans = vbNo Then
       終了
       Cancel = True '// まだ必要なら
   End If
 に変更したいということでしょうか。

 後者は
 Private Sub Workbook_BeforeClose(Cancel As Boolean)  
 の直後に
    If ActiveWorkbook.ReadOnly = True Then Exit Sub '// あるいは 「終了」?
 で。

(Mook) 2014/09/11(木) 16:21


Mookさん

ありがとうございます。
教えて頂いたコードでなんとかやりたいことが実現できました。

(さくら) 2014/09/12(金) 11:42


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.