【完全版】EXCELで一定時間操作が無かったら自動で閉じるようにするVBA

【完全版】EXCELで一定時間操作が無かったら自動で閉じるようにするVBA

EXCEL EXCEL
EXCEL

本ページはプロモーションが含まれています

EXCELで一定時間操作が無いと自動で閉じるようにするファイルの作り方を紹介します。

共有ファイルの困りごと

会社で共有で使用しているEXCELファイルってたくさんあると思います。
よくあるのがその共有ファイルを開いたまま離席してしまって他の人が編集できなくなるやつ。
EXCELあるあるですね。
うちの会社でもしょっちゅうあって困ってたので、ネット検索を駆使して対策してみました。
その私の冒険の記録です。

一定時間操作がないと上書き保存で閉じるようにする

EXCELで一定時間操作が無かったら自動で上書き保存して閉じるVBAの作り方

この対策をするにはVBAを使う必要があります。
「え?VBAなんてわからない!無理!」
って方も安心してください。
始め方からコードの入力、保存方法に至るまで全て紹介します。

VBAの始め方

まずVBAの始め方から説明します。

メニューバーに「開発」というのが表示されている方は下のふたつは飛ばしてください。
まずは「ファイルメニュー」の「オプション」を選択。

ファイルメニューのオプション

次に、「 リボンのユーザー設定」で「開発」にチェックマーク

リボンの「ユーザー設定」で「開発」にチェックマーク

そうすると、「開発」が選択できるようになります。

開発」を選択し、一番左の「VisualBasic」です。

VisualBasic

するといかにもプログラム入力するぞ!っていう感じの画面が開きます。
ここがVBAを入力する画面です。
これを使わないと一定時間操作がなかったら自動で閉じるEXCELファイルは作れません。
難しそうに見えますが下記の通り進めてもらえれば必ず製作できるので頑張りましょう。

Excelの魔術師へ! さいしょの一歩

VBAのコード入力

挿入」から「標準モジュール」を選択して下さい。

挿入から標準モジュール

そのあとはコード入力です。

標準モジュール

入力するの面倒くさいと思うのでテキストでのせておきます。
手入力していっても入力途中で予測が表示されるので楽ですが。

Public operated As Boolean
Sub Settimer()
Application.OnTime Now + TimeValue(“00:05:00”), “CloseMe”
End Sub
Sub CloseMe()
If operated Then
operated = False
Settimer
Exit Sub
End If
ActiveWorkbook.Save
ThisWorkbook.Saved = True
If Workbooks.Count <= 1 Then Application.Quit
ThisWorkbook.Close False
End Sub

次に「ThisWorkbook」を選択してもう一回コード入力です。

This Workbook
This Workbook 続き

こちらもテキストです。

Private Sub Workbook_Open()
operated = False
Settimer
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
operated = True
End Sub

Private Sub Workbook_Deactivate()
operated = True
End Sub

Private Sub Workbook_Activate()
operated = True
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
operated = True
End Sub

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
operated = True
End Sub

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
operated = True
End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
operated = True
End Sub

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
operated = True
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
operated = True
End Sub

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
operated = True
End Sub

Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
operated = True
End Sub

Private Sub Workbook_WindowResize(ByVal Wn As Window)
operated = True
End Sub

入力が終わったらVisualBasicエディターは終了です。
VBAはここでおしまいです。

Excelってどうやって勉強するの?

マクロ有効にしたEXCELの保存方法

次にこのエクセルファイルの保存の仕方ですが、拡張子がxlsmになります。
Excelマクロ有効ブック」を選んで下さい。

そしてこのファイルを一旦閉じて、もう一度開きます。
マクロが無効にされました。「コンテンツの有効化
というのが出てきますのでこれをクリック。

マクロが無効にされました

環境によってここでエラーが出ることがあります。
その場合は一旦エクセルを閉じて、もう一度開き直します。
もう次からは「マクロが無効にされました」は出てきません。

このVBAを使うと、EXCELの操作が5分間何もなかった場合に自動で上書き保存して閉じるようになります。
5分間の部分を変更したい場合は標準モジュールの

Application.OnTime Now + TimeValue(“00:05:00“), “CloseMe”

この時間の部分を変更してください。
「操作がなかったら」の時間指定になります。
間違っても超短時間に設定しないでくださいね。
エクセル開くとすぐに閉じるようになっちゃうのでVBAに辿り着く前に閉じられて2度と編集できなくなってしまいます。

EXCELで一定時間操作が無かったら自動で上書き保存して閉じるVBAの作り方
でした。

Excelの魔術師へ! さいしょの一歩

ほかにもいろいろ書いてます
↓ 下記からご覧ください
サイトマップ
ブックマークして頂けると嬉しいです
よろしくお願いいたします

コメント

タイトルとURLをコピーしました