![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
いつもお世話になっております。
Excel VBAでフォームをつくりました。
下記のように記述し、マクロ起動と同時にフォームだけ見えるようにしました。
Private Sub Workbook_Open()
Application.Visible = False
メニューフォーム.Show
End Sub
しかし、フォームの右上にある×ボタンで終了すると
フォームは閉じますが、Excel自体は起動したままになってしまっています。
フォーム終了と同時にアプリも終了させたい時はどうすればよいか教えてください。
よろしくお願いします。
No.7ベストアンサー
- 回答日時:
こんにちは。
まあ、環境それぞれ、いろいろありますから、タスクマネージャで確認していただくしかありませんが、正直なところ、Userformにいきなり立ち上げるほうも、また、そのまま終了するほうも、ここのカテゴリで、トラブルの報告が出ている限りは、私としては、安易には正答としては出来ませんが、私としては、複数のブックに対しては、お勧めできません。
一応、訂正しておきます。
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If ThisWorkbook.Saved = False Then
ThisWorkbook.Save
End If
DoEvents
ThisWorkbook.Close False 'False に換えておきます。
Application.Quit
End Sub
なお、
[XL2002]保存確認メッセージを表示せずにExcelを終了する方法
の中の、以下の方法が、UserFormを使った、私の環境では、場合によって、ハングを起こします。そのために、もう一度、Close メソッドを使っています。
Sub SaveFileQuitExcel()
Dim wbook As Workbook
For Each wbook In Workbooks
wbook.Save
Next wbook
Application.Quit
End Sub
No.6
- 回答日時:
#1のmshr1962です。
マクロでいいなら下記サポートをご覧ください。保存確認メッセージを表示せずにExcelを終了する方法
http://support.microsoft.com/kb/408045/ja
No.5
- 回答日時:
>全て上書き保存で終了するという設定は可能でしょうか?
For Each w In Application.Workbooks
w.Save
Next w
というような感じで全てのブックを保存できると思います。
ちなみに、ウチで試してみたときには、修正が生じていない時には、残っている(常駐している)ということはありませんでした。
タスクマネージャーで確認。(冴子さんも去っていったし・)
No.4
- 回答日時:
>全て上書き保存で終了するという設定・・・
開いている全てのブックという意味ですか?
For Each w In Workbooks
If w.Name <> ThisWorkbook.Name Then
w.Close savechanges:=True
End If
Next w
ThisWorkbook.Save
Application.Quit
でどうでしょうか
No.3
- 回答日時:
こんには。
この前、終了時にトラブルが起こるということで、同様の質問が出ていました。
今、試してみました。環境によって違うかもしれませんが、そのまま、Application.Quit では、終われませんでしたね。(見た目は終わっていますが、最初に、Application.Visible =Fale にしたので、常駐していることに気が付かないのです。)
私のほうでは、以下のような方法で可能になりました。
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If ThisWorkbook.Saved = False Then
ThisWorkbook.Save
End If
DoEvents
ThisWorkbook.Close True
Application.Quit
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- Visual Basic(VBA) フレームワーク「4.8.1」で、[Sub Main]が動かない。助けて下さい 3 2022/11/14 15:40
- Excel(エクセル) vba フォーム軽量化 1 2022/09/07 18:59
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Visual Basic(VBA) vba メモリ節約 3 2022/09/16 21:45
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Exitイベントから自分自身のコ...
-
accessにexcelのセルの情報を自...
-
ExcelのComboboxでマウスのスク...
-
Access サブフォームでの選択行...
-
X-Ripperというフリーウェアに...
-
Accessのコンボボックスでリス...
-
ACCESSでVBAから選択クエリの抽...
-
エクセルで、抽出したデータだ...
-
PCゲーム 音声 画像 抽出方法
-
「パラメータが少なすぎます。3...
-
Access VBA acCmdSelectRec...
-
2ちゃんのレス抽出の方法
-
Access 複数フォームを...
-
AccessでIDを入力したら他の項...
-
脂質抽出におけるクロロホルム...
-
ACCESSで定型入力の〒が表示さ...
-
ACCESS2000;日付と曜日...
-
Access VBA サブフォームの更新
-
Accessフィルターをかけたサブ...
-
初心者です。accessで請求書を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelのComboboxでマウスのスク...
-
スクロールバーをVBAで操作したい
-
Access2000 フォーム表示位置が...
-
実行エラー'424' ????
-
access 最大化した時の画面の...
-
Accessで任意のフォーム以外直...
-
ACCESS フォームのサイズ調整
-
エクセル上に画像を貼り付けて...
-
マクロボタンが勝手に飛び回る
-
ACCESSアクションマクロでイン...
-
エクセルのVBAでマクロ実行...
-
VB(ビジュアルベーシック)...
-
ACCESS VBEが勝手に起動します
-
Exitイベントから自分自身のコ...
-
EXCEL VBA フォームクローズと...
-
ACCESS(アクセス) マクロを使...
-
accessにexcelのセルの情報を自...
-
Access起動時の設定について
-
accessのメニュー画面について...
-
ワークシート上に検索用のボッ...
おすすめ情報