• ベストアンサー

EXCEL VBA で終了出来ますか?

いつもお世話になります。 OfficeXPを使用しています。 EXCELのVBAでファイルを開き、定型処理をさせているのですが、定型処理完了後にEXCELを終了させたいと思っています。しかしEXCELの終了マクロをうまく作ることが出来ません。(終了時のメッセージを出さないようにしたいです) ActiveWorkbook("test.xls").Closeで終了させようとしたのですが、「test.xlsを保存しますか」というメッセージが出てきてしまいます。メッセージを出さずになおかつ保存せずに終了させたいのですが、何方か良い方法を教えて頂けないでしょうか?

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.4

No.2ですが、ちょっと簡単過ぎましたので、補足です。 Application.DisplayAlerts = False Workbooks("test.xls").Close savechanges:=True Application.DisplayAlerts = True 一応、この後のコードが分かりませんので DisplayAlerts = True と戻しています。 なお、Excel自体を終了するのであれば、 Application.Quit 

huku-huku
質問者

お礼

ご回答ありがとうございます。 体調不良のため、早々に退社しましたので自宅のPCで間単にチェックしたところ上手くいきそうでした。 明日、実際のファイルで確認してみようと思います。 とても親切に説明して頂き感謝いたします。 どうもありがとうございました。

その他の回答 (4)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.5

あっ、ごめんなさい。「保存しないで」ですから savechanges:=False でした。

  • sacoman
  • ベストアンサー率56% (33/58)
回答No.3

close メソッドではEXCELを終了させることはできません。 ワークブックを閉じるだけです。ワークブックを閉じる だけなら、#1さんが回答されているように、FALSEオプションを 入れておけば、保存せずに閉じることができます。 EXCELを終了するには、quitメソッドを使います。 完全に開いているワークブックを保存せず、確認メッセージも表示 させずにEXCELを終了させるのであれば、以下のような感じになります。 Sub sample()   Application.DisplayAlerts = False   Application.Quit End Sub

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

その手前に Application.DisplayAlerts = False を記述してみたら如何でしょうか?

huku-huku
質問者

お礼

ご回答ありがとうございます。 体調不良のため、早々に退社しましたので自宅のPCで間単にチェックしたところ上手くいきそうでした。 明日、実際のファイルで確認してみようと思います。 どうもありがとうございました。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

Close メソッドに限りませんが、どのメソッドを使えばよいのか当たりがついているのなら、この手のところで質問するよりもヘルプを読んだ方がさっさと解決します。先にヘルプを読む癖をつけましょう。 以下ヘルプから抜粋です。 --- ・Workbook オブジェクトに指定した場合 expression.Close(SaveChanges, Filename, RouteWorkbook) SaveChanges 省略可能です。バリアント型 値:動作 True:ブックの変更を保存します。ブックにファイル名が付けられていない場合は、引数 FileName を使ってファイル名を指定します。引数 FileName を省略すると、ファイル名の入力を促すダイアログ ボックスが表示されます。 False:ファイルの変更を保存しません。 省略:変更したファイルを保存するかどうかを確認するダイアログ ボックスが表示されます。 --- ということでこれで解決です。 ActiveWorkbook.Close(False)

huku-huku
質問者

お礼

ご回答ありがとうございます。 おっしゃるように事前にヘルプは確認したのですが、ブックを閉じる場合のヘルプはあったのですが、エクセルを終了させるヘルプが探せませんでした。 こちらの意図した回答とは違いましたが、丁寧に回答いただき感謝いたします。

関連するQ&A

  • エクセルのマクロで保存して終了が出来ない

     あるエクセルファイルにて、VBAで Sub 保存して終了() ActiveWorkbook.Save ActiveWorkbook.close End Sub  というマクロを作成したのですが、1回目は正常に動いたのですが次からは、そのマクロを動かしても画面が一瞬点滅するだけで、上書き保存も終了もしません。  それで、ファイルを別の名前をつけて保存してその、別の名前で保存したファイルで、また上のマクロを動かすと1回目は正常に動くのですが、やはり次に開くと動かなくなります。  因みに他のマクロは正常に動作し、この保存して終了させるマクロだけが変なのです。  マクロの書き方を変えて以下のようにしてもだめでした。 Workbooks("ナントカ.xls").Close savechanges:=True  やはり、何回書き方を変えても保存して終了させることだけが出来ません。普通にマクロを使用せず手動ですることは出来るのですが…。  分かりにくい説明ですみませんが、よろしくお願いします。

  • EXCELを自動的に終了したい

    VBAマクロで処理をして、終了後に開いたブックを自動的に終了させるため、 Application.Quit を使用しましたが、 他に開いていたブックも終了してしまいます。 ActiveWorkbook.Close に変更すると、 他にブックを開いていない場合、自動的にブックは終了しますが、EXCELが終了しません。 該当のブックだけを終了することは、できないでしょうか?

  • VBAでExcelの保存終了を取得したい

    こんばんは。 Accessから、Excelへデータを渡し、保存をして終了というものを作っています。 *************Access側 Set Excel = New Excel.Application Set book = Excel.Workbooks.Open("c:\Sample.xls") '一時的にデータをためるExcelファイル Set Sheet = book.Worksheets(1) ・・・・・データを吐き出し、書式を変更する処理・・・・・ Excel.Run book.Name & "!Macro_Go" 'Sample.xlsからAドライブのExcelファイルへシートコピー book.Save Excel.Quit ************************* Access側でExcelファイルのマクロを操作し、Excelのファイルは、Aドライブ(フロッピー)へ保存することとなります。 保存の際に、非常に時間がかかり、完了時にメッセージを出したいのですが、 保存が完了する前に、完了メッセージが出てしまいます。 そこで、Excelで保存が完了したという状態を取得できないかと考えています。 どういう方法を使えば、Excelの保存完了状態を取得できますでしょうか?

  • エクセルのVBAについて

    エクセルのVBAについて教えて下さい。 エクセルのVBAでプログラムを組んでいるのですが、一つわからないことがあるのです。 マクロが実行(オープン)されるファイル名(ファイルパス)をVBAで取得するためにはどうすればいいでしょうか? たとえば、マクロが実行されるファイルがC:\テスト.xlsならば "C:\テスト.xls"を取得したいと考えています。 どなたかご教授お願い致します。 宜しくお願い致します。

  • エクセルの終了

    お世話になります。 VBAでエクセルを終了する時、下記の様な記述をして 終了するのですが、エクセルのブラウザは残ります。 エクセル毎終了する記述方法についてご教授頂きたく 何卒、宜しくお願い申し上げます。        記 Workbooks("---.xls").Close savechanges:=False

  • エクセルを終了

    お世話になります。 エクセルVBAでエクセルを終了する時、下記の様な 記述をしていますが、そのファイルしか終了出来ません。 エクセルのアプリケーション自体を終了したいのですが、 その記述方法をご教授頂けないでしょうか。 宜しくお願い致します。      記 Workbooks("---.xls").Close savechanges:=False

  • Excel VBA で困っています。

    Excel VBA で困っています。 下記のプログラムで、「名前を付けて保存」→「キャンセル」 を選択した場合のエラーは回避できたのですが、 「名前を付けて保存」→「保存」→「同じ名前のファイルが既に ありますが置き換えますか?」→「いいえ(またはキャンセル)」 の時にエラーが出てしまいます。 どう直したら良いでしょうか。 よろしくお願いいたします。 Public Sub SaveBook() Dim myBook As Variant '「名前を付けて保存」ダイアログ myBook = Application.GetSaveAsFilename("test.xls", _ "Excelファイル,*.xls", , "Excelブックを保存") 'キャンセル時の処理 If StrConv(myBook, vbUpperCase) = "FALSE" Then Exit Sub 'ブックの保存 ActiveWorkbook.SaveAs Filename:=myBook End Sub

  • VBAでエクセル終了

    エクセル2000です。 VBAで「閉じる」ボタンを作りました。 Sub closeボタン() myYN = MsgBox("終了しますか?", vbYesNo + vbQuestion, "終了確認") If myYN = vbNo Then Exit Sub ThisWorkbook.Close End Sub ところが作動させると「いいえ」を選ぶとすんなり終了してくれますが、「はい」にすると「変更を保存しますか?」を何故か続けて2回も聞いてきます。 2回目も「はい」にすると今度はブック保存のダイアログが出てきて、ブック名が「:」(半角コロン)になってます。 変だなあ、と思い上記のマクロを別ブックを新たに作って標準モジュールに張ってみると正常に作動します。 もとのブックに何かあって、こんな現象が起きているのでしょうか? とっても困ってます。

  • Excelの終了処理について

    Excel がMDIで複数のワークブックが動作しています。 そして、ExcelのXマークを押して終了する場合の処理についてです。 いま、aaa.xls とbbb.xlsが同時に起動しています。ExcelのXマークで全部閉じるボタンを押します。 aaa.xls のWorkbook_BeforeClose で終了処理をします。 その後bbb.xls(マクロなし)で、保存しますかのダイアログがでますが そこで、キャンセルを行った場合、aaa.xlsは終了せずに残ってしまいます。 すでに、aaa.xlsは終了処理で、メニューの戻しやデータのクリアがおこなわれているのでその後、整合性が合わなくなります。 Excelの終了処理は、どのような手順を踏めばよいのでしょうか。 基本的な質問で申し訳ありませんが、宜しくお願いします。

  • エクセル97,マクロのツールバー登録について

    状況 例えば,test1.xlsというエクセルブックを開いて,vba機能によりマクロを作成します。これを,保存先をtest1.xlsにしてツールバーのアイコンに登録します。 作業が終わって,test1.xlsをok.xlsという名称に変えて保存・終了し,新しいbook1.xlsを立ち上げるとします。 すると,test1.xlsに登録したはずのツールバーアイコンのマクロ登録先が,ok.xlsに変わっています。 質問 例えばok.xlsにブック名を変更して保存・終了しても,ツールバーのアイコンのマクロの保存先をtest1.xlsにするには,どこをどの様に設定したら良いのでしょうか? 素人なものですから,具体的に方法を記述していただけると,非常に助かります。 よろしくお願い致します。

専門家に質問してみよう