Excelを使っていて作業が終わったら、上書き保存ボタンを押してファイルを閉じるのが面倒だと思ったことありませんか?
たった1クリック1秒でできたら作業効率がアップして楽になる方法を、ここではユーザーフォームに配置した「コマンドボタン」にVBAコードを記述して使用する方法をご紹介いたします。
上書き保存をして閉じるVBA
Closeオブジェクト
エクセルに標準機能として用意されているVBA「Closeオブジェクト」は、上書き保存してエクセルを閉じる例として、よく書籍やネットに掲載されている方法です。
下記はコマンドボタン1に上書き保存するVBAコードを記述しています。
Private Sub CommandButton1_Click()
ThisWorkbook.Close SaveChanges:=True
End Sub
- コマンドボタン1がクリックされたら
- エクセルファイルを閉じる時に変更を保存する
- マクロ記録終了
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
ThisWorkBookがいいのかActiveWorkBookのどちらがいいのかは分かりませんが、試した結果は一緒だったので気にしていません。
この方法だと、ワークシートだけしか閉じられずエクセル自体は開いたままになってしまうので、エクセルファイルを手動で閉じる手間があるので、1クリックでできずに使い物になりませんでした。
Quitオブジェクト
エクセルに標準機能として用意されているVBA「Quitオブジェクト」は、開いているエクセルファイルが変更されている時には、変更を保存するかどうかを確認するメッセージが表示されると掲載されている方法です。
下記はコマンドボタン1に上書き保存するVBAコードを記述しています。
Private Sub CommandButton1_Click()
Application.Quit
End Sub
- コマンドボタン1がクリックされたら
- 変更を保存するかどうかを確認するメッセージを表示する
- マクロ記録終了
もちろんこれも、先ほどのCloseオブジェクトと同じくワークシート上にコマンドボタンを配置した時に、マクロを登録するためのVBAコードです。
そして、変更がある場合には下記のようにメッセージが表示されますので保存してエクセルファイルを閉じるか、保存しないかを選択できます。
![application-quit](https://tripbowl.net/wp-content/uploads/2018/07/application-quit.jpg)
![application-quit](https://tripbowl.net/wp-content/uploads/2018/07/application-quit.jpg)
エクセルファイルを閉じる方法は2つありますが、Closeオブジェクトでは完全にエクセルと閉じられず、Quitオブジェクトでは、いちいち上書き保存を聞かれ、作業効率化にならないので意味がありませんでした。
QuitとCloseの合わせ技
エクセルファイルを閉じるCloseオブジェクトとQuitオブジェクトなのに、一長一短で使うのあきらめましたが、一緒に使ったらどうなるか試してみると・・・
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
結果成功!
このVBAコードで、コマンドボタン1クリックで上書き保存してエクセル自体を閉じることができました。
Private Sub CommandButton1_Click()
Application.Quit
ThisWorkbook.Close savechanges:=True
End Sub
- コマンドボタン1がクリックされたら
- 変更を保存するかどうかを確認するメッセージを表示する
- エクセルファイルを閉じる時に変更を保存する
- マクロ記録終了
このようにVBAコードを記述すると、なぜか上書き保存をするかどうかの確認メッセージが表示されずに、自動的に上書き保存されてエクセルファイルが閉じられるようになりました。
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
正直、これができたからといっても僅かながらの手間の省力化と時短効果にしかなりませんが、できたことに満足ですけどね。
上書き保存のアレンジVBA
「上書き保存」するVBAコードを記述したコマンドボタンを誤ってクリックしたとしても、上書き保存されてファイルが閉じられるだけなので問題はないと思います。
もし、念のため「はい」「いいえ」を選択できるようにしたいならば、「Quitオブジェクト」だけを使えばいいのです。
入力済みデータ消去して上書き保存終了
ここでは入力済みセルの一部データクリアしてから上書き保存できるようにアレンジしてみました。
Private Sub CommandButton1_Click()
Msg = MsgBox(“抽選データ消去してから上書き保存しますか?”, Buttons:=vbYesNo + vbQuestion)
If Msg = vbYes Then
Sheets(“抽選”).Range(“A3:A10,B3:B10,C3:C10”).ClearContents
Application.Quit
ThisWorkbook.Close savechanges:=True
End If
End Sub
- コマンドボタン1をクリックしたら
- メッセージを表示して「抽選データ消去してから上書き保存しますか?」を「はい」「いいえ」で選択させます。
- もし「はい」を選んだら
- シート名「抽選」のセルA3~A10とB3~B10とC3~C10の各範囲の値を消す(クリア)
- 上書き保存をする
- エクセルファイルを閉じる
- IFステートメント終了
- マクロ記述終了
ちょっと長くなりましたが、簡単にいうと、「はい」を選択したら不要データクリアして上書き保存してファイルを閉じる、「いいえ」を選択したら、何もしないで元に戻るという事です。
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
![](https://tripbowl.net/wp-content/uploads/2018/07/cropped-512x512.jpg)
データクリアのVBAコードを追加記述する前は、わざわざ手作業でデータクリアをしていた手間がを省くことができたので、かなりの作業効率化ができました。
関連記事
-
エクセルシートの保護したらマクロエラーになった時のVBA対処法
エクセルで様々な計算式などが入っている表を作った時に、誤って計算式などを消されないようにシートの保護設定をしたら、マクロエラーになったことありませんか? 原因… -
エクセル関数とVBAを組み合わせて商品期限切れ通知を表示する方法
小さな会社や個人では、アプリや専用ソフトを使って商品管理とかはコストが見合わず、エクセルで商品管理していませんか? このエクセルによる商品管理でリストの中にあ… -
VBAで1クリックで上書き保存してエクセルファイルを閉じる方法
Excelを使っていて作業が終わったら、上書き保存ボタンを押してファイルを閉じるのが面倒だと思ったことありませんか? たった1クリック1秒でできたら作業効率がアップ…
紅葉スポット
-
中禅寺湖湖畔の紅葉散策へ奥日光の大定番紅葉観光スポットへ
中禅寺湖観光の中禅寺温泉バスターミナルから華厳の滝や中禅寺湖畔散策へ紅葉を楽しみに訪れる方も多く、紅葉見頃になるといろは坂からの大渋滞に巻き込まれ1時間以上、… -
縁起だるま発祥の少林山達磨寺境内の真っ赤に染まる紅葉景色へ
【紅葉見頃】11月下旬~12月上旬 高崎市内循環バス「ぐるりん」バスのフリーエリア内にあるので、縁起だるま発祥の少林山達磨寺へ紅葉の時期になったら訪れてみてはい… -
嵐山渓谷の黄金色ススキと紅葉のコラボが埼玉県代表の景勝地へ
埼玉県を代表する景勝地の嵐山渓谷は秩父から流れる槻川沿いに独特の地形からなり、嵐山町観光サイトには下記のように書かれています。 日本で初めての林学博士・本多静… -
日光白根山ロープウェイで標高1400mから2000mの紅葉遊覧へ
丸沼高原といえば首都圏から日帰りで行くことができるスキー場ですが、秋の紅葉シーズンになるとひと足早く木々が色づき、リフトから山頂へ向かえば紅葉絶景の景色が広… -
全長3㎞ミューズパークいちょう並木へ西武秩父駅からバスで行く
西武秩父駅や秩父駅からバスでも行くことができる秩父のテーマパークで、南口から北口までの約3㎞もの長さにイチョウの木が両サイドに植えられていて、紅葉の時期になる… -
フリーパスで12月の茨城紅葉スポットへ
茨城県内の人気紅葉スポット 関東地方で紅葉名所といえばなんといっても日光ですが、紅葉シーズンになると平日でもいろは坂は大渋滞なのに休日ともなると日光駅周辺から…