admin menu ≫  image  writes  admin
スポンサーサイト 
--.--.--.-- 
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
「ブックを閉じる」または「エクセルを終了する」・・・続き  
2009.05.13.Wed 
「ブックを閉じる」×ボタンと「エクセルを終了する」×ボタンのうち
どちらのボタンが押されたのか、VBAで判断できれば簡単に解決できそうなんだけど・・・
VBAで判断できないみたいな・・・で、昨日の終了処理のマクロもおかしかったので
ちょっと弄ってみた。雛形だけだと、この方法しか思いつかないよ(^^;

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Wb As Workbook
Cancel = False
If Workbooks.Count = 1 Then
'このブックだけ開いている場合
'このブックの終了処理を行ってからエクセルを終了する。
End_Work "終了処理を行っています。"
Application.Quit
Else
'複数のブックを開いている場合の処理
'現在アクティブ表示されているブック名とこのブック名を比較する。
If ActiveWorkbook.Name <> ThisWorkbook.Name Then
'このブックが非アクティブな時にエクセルの終了ボタンが押された
'場合は、他のブックだけ処理を行い、このブックの処理は行わない。
For Each Wb In Workbooks
If Wb.Name <> ThisWorkbook.Name Then
Wb.Close
End If
Next Wb
Cancel = True
Vbs_Msg "このブックの終了処理をキャンセルしました。", 3, _
"終了処理"
Else
'このブックがアクティブな時にブックを閉じるボタン
'もしくはエクセルの終了ボタンが押された。
'このブックだけをクローズして、他のブックは処理しない。
End_Work "このブックのみ終了処理を行います。"
ThisWorkbook.Close SaveChanges:=False
End If
End If
End Sub

Sub End_Work(msg$)
ThisWorkbook.Activate
'・・・
'不要なデータを消去
'・・・
msg = msg & vbCrLf & vbCrLf & "しばらくお待ちください・・・  "
Vbs_Msg msg, 7, "終了処理中" '終了処理のメッセージを7秒間表示
'・・・
'このブックを上書き保存
'・・・
End Sub

関連記事
スポンサーサイト
* スポンサーサイト「ブックを閉じる」または「エクセルを終了する」・・・続き へのコメント *
   

台風画報


ナショジオニュース

降水短時間予報

RSSフィード

月別アーカイブ

ブログ内の検索

プロフィール


  • Designed by Il mio diario
  • Powered by FC2BLOG
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。