| Excel Tips by pPoy |
| Macro ABC | ExcelVBAで自分自身を閉じる方法色々 《Quit メソッド》(Excel97,2000,2002) | ||
|---|---|---|---|
|
ExcelVBA で、自分自身を終了するのはタイミングが難しいです。 順番を間違えると、 Book を閉じても Excel が一人寂しく残されてしまったりします。 以下に、ExcelVBA で自分自身を閉じる方法をまとめてみました。 | |||
| ≪1. 自分自身を保存しないで閉じる、同時に Excel も終了する≫ |
|---|
Sub excel_Quit1()
'自分自身を保存しないで閉じる 2006/10/08 pPoy
'同時に Excel も終了する
'ただし自分以外の Book は保存の問い合わせが出る
'保存したことにする (保存はしない)
ThisWorkbook.Saved = True
'Excel を終了する
Application.Quit
'Book を閉じる
ThisWorkbook.Close False
End Sub
|
|
上のコードを実行すると、自分自身を保存せず (警告なし) に、終了します。 同じインスタンス (※) で開いている Book があった場合、自分以外の Book に関してのみ、 保存の問い合わせが出ます。 最終的に Excel も終了します。 |
| ≪2. 自分自身のみ保存しないで閉じる、他の Book に対しては何もしない≫ |
|---|
Sub excel_Quit2()
'自分自身のみ保存しないで閉じる 2006/10/08 pPoy
'他の Book に対しては何もしない
'他に開いている Book が無い場合のみ Excel も終了する
With ThisWorkbook
If Workbooks.Count > 1 Then
'他の Book あり
'保存したことにする (保存はしない)
.Saved = True
'自Book を閉じる
.Close False
Else
'単独で Open 時
'保存したことにする (保存はしない)
.Saved = True
'Excel を終了する
Application.Quit
'Book を閉じる
.Close
End If
End With
End Sub
|
|
上のコードを実行すると、自分自身を保存せず (警告なし) に、終了します。 同じインスタンス (※) で開いている 他の Book には何もしません。 他に開いている Book が無い場合のみ Excel も終了します。 |
| ≪3. 自分自身は保存しないで閉じる、他の Book は保存して閉じる≫ |
|---|
Sub excel_Quit3()
'自分自身は保存しないで閉じる 2006/10/08 pPoy
'他の Book は保存して閉じる
'最後に Excel も終了する
Dim w As Workbook
'まず、自分以外の Book を保存して閉じる
For Each w In Workbooks
If w.Name <> ThisWorkbook.Name Then
w.Close SaveChanges:=True
End If
Next
'自分自身は保存したことにする (保存はしない)
ThisWorkbook.Saved = True
'Excel を終了する
Application.Quit
'Book を閉じる
ThisWorkbook.Close False
End Sub
|
|
上のコードを実行すると、自分自身を保存せず (警告なし) に、終了します。 同じインスタンス (※) で開いている 他の Book は全て保存してから閉じます。 最終的に Excel も終了します。 |
| ≪4. 全ての Book を保存しないで閉じる、最後に Excel も終了する≫ |
|---|
Sub excel_Quit4()
'全ての Book を保存しないで閉じる 2006/10/08 pPoy
'最後に Excel も終了する
Dim w As Workbook
'全ての Book を保存したことにする (保存はしない)
For Each w In Workbooks
w.Saved = True
Next
'Excel を終了する
Application.Quit
'Book を閉じる
ThisWorkbook.Close False
End Sub
|
|
上のコードを実行すると、自分自身を含めて、同じインスタンス (※) で開いている 他の Book も、全て保存せず (警告なし) に閉じます。 最終的に Excel も終了します。 |
| ≪5. 全ての Book を保存して閉じる、最後に Excel も終了する≫ |
|---|
Sub excel_Quit5()
'全ての Book を保存して閉じる 2006/10/08 pPoy
'最後に Excel も終了する
Dim w As Workbook
'全ての Book を保存する
For Each w In Workbooks
w.Save
Next
'Excel を終了する
Application.Quit
'Book を閉じる
ThisWorkbook.Close False
End Sub
|
|
上のコードを実行すると、自分自身を含めて、同じインスタンス (※) で開いている 他の Book も、全て保存してから閉じます。 最終的に Excel も終了します。 |
≪補足 ※インスタンス≫
|
≪注意≫
|
☆ 感想をお知らせください (直接ブラウザから送信致します。メールアカウントは不要です。)
form mail はこちら
Copyright(C) pPoy 2006-2010