15秒後に自動的にユーザーフォームを自動表示
ボウリングのリーグ戦での成績表でも必ず使うユーザーフォーム。
これがあるとボタンひとつで繰り返し作業を自動で行ってくれるので、あっという間にリーグ成績表が出来上がってくれます。
「ボウリング成績表印刷設定方法~LTB個人リーグ編」でも使用していますが、ここに個人成績一覧表があります。
基本的には成績表示・順位並べ替え・ハイゲームなどの個人トップが自動的に集計されて表示されるようになっているので、セルに直接入力することがありません。

間違えってホントに無いのかな?

不安ならば数秒間だけ見られるようにすればいいわよ

ユーザーフォームを一旦閉じるて、ボタンを配置して押してもらうって事?

タイマー設定して数秒後に自動的にフォームを自動表示するのよ!

エクセルのタイマー機能なんてあるんですね

TimeValueを使えば、エクセルファイル開いた時に自動的にユーザーフォーム表示も可能になるわよ!
TimeValueを使おう
実際に使っているのは印刷関連です。
印刷フォームについては、ほかのページですでに話しているので省略します。
https://tripbowl.net/vba-closemode/
これは、タイマーが作動した時に何をするかって事です。
ここでは、タイマー作動時に元々見ていた「ボウリングリーグ戦個人成績一覧表」があるシートを再度表示して、印刷メニュー(ユーザーフォーム8)を表示させます。
Worksheets(“RESULT”).Activate
UserForm8.Show
End Sub
- PREVIEWTIMEという名前をつけてマクロ開始する
- シート名「RESULT」を選ぶ
- ユーザーフォーム8を表示する
- マクロ終了
ここではPREVIEWTIMEと名前をつけましたが、何でもいいですよ、分かればね。
実際にタイマーを作動させるユーザーフォーム8のコマンドボタンにTimeValueを使って時間を設定します。
ここでは、【CLOSE】ボタンを押すと15秒間だけ、ユーザーフォームが消えてボウリングリーグ戦の成績一覧が見られるようにします。
15秒後に「標準モジュール」に書いた「PREVIEWTIME」が作動するってことです。
Unload UserForm8
MsgBox “15秒後に自動復帰します”
Application.OnTime Now + TimeValue(“00:00:15”), “PREVIEWTIME”
End Sub
- コマンドボタン5を押したら
- ユーザーフォーム8を閉じる
- メッセージで「15秒後に自動復帰します」を表示する
- タイマー作動は今から15秒後にPREVIEWTIMEを作動させる
- マクロ記録終了
OnTime Now(今)+(00:00:15)で15秒ってことですね。
PREVIEWTIMEの名前と内容を変える
標準モジュールにPREVIEWTIME以外に様々な内容を作っておけば、タイマー作動で自動保存したり、意図しない操作でユーザーフォームが閉じられてしまった時も自動復帰で安心ですね。

✖ボタンについては話したはずですよ!

そうでしたね。忘れていました。


Excel-VBAを使えば数分かかる作業がたったの1秒で終了しますよ!
コメント