みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel VBA 終了時の処理

Excelを終了時にフルスクリーン(リボンなどが非表示の状態)から解除するコードを書きたいのです。


Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.DisplayFullScreen = False 'フルスクリーン化解除

End Sub

というコードを書きましたが、Excel自体を×ボタンでクローズした場合は正常に動きますが、
Excelを起動したままPCをシャットダウンすると解除されません。
次回Excelファイルを開くときにはフルスクリーンで出てきてしまいます。
シャットダウン時には、Excelも勝手にクローズされ、その際にマクロが動くものだと思っていましたが...

これを回避するコードなどありましたらご教授ください。

環境:windows7 Excel2010 (2013でも動くようにしたいです)

投稿日時 - 2013-05-06 10:03:58

QNo.8075079

困ってます

質問者が選んだベストアンサー

ANo.2です。
考えすぎました。
個人用マクロブック(Personal.xlsb)に以下のマクロを仕込んでおけば、たとえ最大化のまま終了されても起動時に標準状態になります。
これで十分ではないでしょうか。

Sub Auto_Open()
  Application.WindowState = xlNormal
End Sub

投稿日時 - 2013-05-08 11:49:30

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

PCシャットダウン時は終了イベントは発生しなかったように思えます。
グループ・ポリシーを使ってみては?

[スタート]-[ファイル名を指定して実行]で“gpedit.msc”と入力して起動するグループポリシーオブジェクトエディタで、
[コンピュータの構成]-[Windowsの設定]-[スクリプト(スタートアップ/シャットダウン)]-[シャットダウン]
と、展開した先でPCシャットダウン時に起動させたいバッチファイルやexeを登録できます。

ここで、フルスクリーン解除して終了するExcelマクロをシャットダウン時に起動するように登録しては如何でしょう。

投稿日時 - 2013-05-07 11:20:51

ANo.1

標準モジュールの Auto_Open か ワークブックモジュールの Workbook_Open に
Application.DisplayFullScreen = False
または
Application.WindowState = xlNormal
を記述されたらいかがでしょうか。

投稿日時 - 2013-05-06 13:10:57

補足

すいません、言葉が足りなかったです。

今回作成しているマクロ入りのExcelファイルは

(1)ファイルを開くと同時にフルスクリーンになる
(2)ファイルを閉じるとフルスクリーン解除して終了

というコードが書いてあります。

これは、別のファイルを開いたときにもExcelがフルスクリーンモードにならないようにしたいからですが、
通常通り閉じた場合は成功しますけども、マクロ入りファイルを開いたままPCをシャットダウンすると、
別のファイルでもフルスクリーンの状態で立ち上がります。

別のファイルを開いたときにも、Excelがフルスクリーンのモードで立ち上がってしまうことを防ぎたいのです。

投稿日時 - 2013-05-06 14:21:17

あなたにオススメの質問