見出し画像

エクセルを自動で閉じる方法【制限時間を設けるVBAの導入】

エクセルを自動で閉じるVBAの導入方法について詳しくご紹介します。

エクセルを自動で閉じるVBAを導入すると以下のような効果を得ることができます。

  • 「読み取り専用」になる心配がない

  • エクセルを閉じ忘れても安心

  • 制限時間を決めることで仕事にメリハリがでる

複数人が共有されたエクセルファイルを編集するときに便利なVBAです。記事の最後で解説している「時間が経過するとエクセルが自動で閉じるVBA」をダウンロードすることができます。是非ダウンロードして使ってみてください。

エクセルを自動で閉じるVBAとは

指定した時間が経過するとエクセルを自動で閉じることができます。VBAは以下の流れで動作していきます。

  1. エクセルを開いたときに制限時間のカウントダウンがスタート

  2. 残り時間がわかるようにカウントダウンタイマーを表示

  3. 制限時間の設定は簡単に変更可能に

  4. カウントダウンタイマーに一時停止機能を搭載

  5. タイマーがゼロになると「上書き保存」をして閉じる

制限時間を設定するVBA、カウントダウンタイマーを表示するVBAなどが導入されていて難しい!と感じるかもしれませんが、VBAを一つ一つ分けて考えてみると、さほど難しいVBAは使われていません。

エクセルを自動で閉じるVBAの導入方法

1.様式を作成する

  • A4セル・・・「時」

  • C4セル・・・「分」

  • E4セル・・・「秒」

2.VBAを起動

3.標準無ジュールにVBAを記入

4.サンプルVBA

サンプルVBA①

Sub Timer()
    Dim L As Date, cnt As Double
    L = DateAdd("h", Range("A4"), Time)
    L = DateAdd("n", Range("C4"), L)
    L = DateAdd("s", Range("E4"), L)
    rng = 0
    UserForm1.Show vbMoeless
    Do
    cnt = DateDiff("s", Time, L) + rng
    UserForm1.TextBox1 = Format(TimeSerial(0, 0, cnt), "hh:nn:ss")
    If UserForm1.TextBox1 = "00:00:00" Then Exit Do
    DoEvents
    Loop
    Call CloseMe
End Sub

サンプルVBA②

Sub CloseMe()
ActiveWorkbook.Save
ThisWorkbook.Saved = True
If Workbooks.Count <= 1 Then
Application.Quit
Else
ThisWorkbook.Close False
End If
End Sub

5.sheet1にVBAを記入

6.サンプルVBA

サンプルVBA③

Private Sub WorkSheet_Activate()
UserForm1.Show vbModeless
End Sub


7.ユーザーフォームの作成

8.ユーザーフォームにVBAを記入

9.サンプルVBA

サンプルVBA④

Private Sub CommandButton1_Click()
    Dim rng_t As Date
    rng_t = Time
    MsgBox ("タイマーがストップされました" & vbCrLf & "再開するには「OK」を押してください")
    rng = rng + DateDiff("s", rng_t, Time)
End Sub

10.ユーザーフォームの表示設定

11.ワークブックにVBAを記入

12.サンプルVBA

サンプルVAB⑤

Private Sub Workbook_Open()
Call Timer
End Sub

13.VBAの実行

入力する数字を変更すると、エクセルを閉じるまでの制限時間が変更されます。

エクセルを自動で閉じるVBAに設定された機能

エクセルを自動で閉じるVBAには強制的にエクセルを閉じる処理を行うので、トラブルが発生する可能性があります。一番考えられるトラブルが、「重要なデータ整理を行っているときにエクセルが閉じる」ということです。

VBAには上記のようなトラブルを回避するための設定が施されています。

  • 作業中のエクセルを上書き保存する

  • 複数のエクセルを開いているとき、エクセルは閉じない(現状維持させる)

  • 開いているエクセルが一つだけのとき閉じるを実行する

上記の条件を設定しておけば、制限時間で閉じるという処理をしてもトラブルが発生する心配はありません。


エクセルを自動で閉じるVBAのダウンロード

上記で紹介している「時間が経過するとエクセルが自動で閉じるVBA」をダウンロードしてお使いいただけます。

気になる方は是非使ってみてください。

ここから先は

151字 / 1ファイル
この記事のみ ¥ 500

この記事が気に入ったらチップで応援してみませんか?