Excel-VBAタイマー機能で数秒後にユーザーフォームを表示させる方法

エクセル検索
HOMEUserForm印刷画面ファイル図形
日付・時刻データセル関数VBA関数

エクセルを使って成績などを入力して作成した成績表で、入力漏れがなかったかどうかなどをチェックするのに数秒間だけ指定したページや範囲を表示させたいと思ったことありませんか?

指定した時間が経過した後にVBAプログラムを実行することができる、OnTimeメソッドを使う事によってできるようになるのでご紹介いたします。

数秒後に自動的にVBA実行

まず最初に、指定した時間を経過した時に作動するVBAを作成します。

ここでは、ユーザーフォーム1を表示させるVBAコードを標準モジュール内のModule1に下記のように記載し、プログラム名をPREVIEWTIMEとします。

また表示させるシート名は「RESULT」とします。

ちなみにプログラム名に関しては好きな名前をつけることが可能です。

VBAコード

Sub PREVIEWTIME()
Worksheets(“RESULT”).Activate
UserForm1.Show
End Sub

解説
  1. PREVIEWTIMEという名前をつけてマクロ開始する
  2. シート名「RESULT」を選ぶ
  3. ユーザーフォーム1を表示する
  4. マクロ記録終了

これで、指定した時間を経過した時に表示させるVBAプログラムが出来上がりましたので、次はOnTimeメソッドを使って下記のようにメッセージを表示させます。

timevalue

実際にタイマーを作動させるユーザーフォーム8のコマンドボタンにTimeValueを使って時間を設定します。

印刷メニュー

ここでは、【CLOSE】ボタンを押すと15秒間だけ、ユーザーフォームが消えてボウリングリーグ戦の成績一覧が見られるようにします。

15秒後に「標準モジュール」に書いた「PREVIEWTIME」が作動するってことです。

VBAコード

Private Sub CommandButton5_Click()
Unload UserForm8
MsgBox “15秒後に自動復帰します”
Application.OnTime Now + TimeValue(“00:00:15”), “PREVIEWTIME”
End Sub

解説
  1. コマンドボタン5がクリックされたら
  2. ユーザーフォーム8を閉じる
  3. メッセージで「15秒後に自動復帰します」を表示する
  4. タイマー作動は今から15秒後にPREVIEWTIMEを作動させる
  5. マクロ記録終了

OnTime Now(今)+(00:00:15)で15秒ってことですね。

波乗りアヒル

標準モジュールにPREVIEWTIME以外に様々な内容を作っておけば、タイマー作動で自動保存したり、意図しない操作でユーザーフォームが閉じられてしまった時も自動復帰で安心ですね。

関連記事

どこかにビューーン
ちょっとの工夫で往復無料の時代が来た!!

新着ページ

よく見られているページ

大容量無料ファイル転送サービス【ACデータ】 無料イラスト【イラストAC】

紅葉スポット

2024年5月11日からマイルと楽天ポイントとの相互交換提携開始!

交換レート0.5:1なので半分になってしまいますが、使い方次第で実質3倍の価値まで引き上げられる方法です。