時間をリアルタイム表示
前回に引き続き、Excel時計を作ります。
このページを参考に(というかほぼコピペ)して、表示されている時間を自動更新するようにしました。
UserForm_Initializeのプロシージャだとエラーが出たので、標準モジュールに更新のプロシージャを書きました。
Sub Tokei()
Dim T As Date
T = CDate(Format(Now() + TimeValue("00:01:00"), "hh:mm:00"))
UserForm1.L_Time.Caption = Format(Now(), "hh:mm")
Application.OnTime T, "Tokei"
End Sub
イベントプロシージャで、ブックを開いたときに最小化してユーザーフォームを表示させます。
Private Sub Workbook_Open() 'ブックを開いたら
Tokei '時間をリアルタイム表示
Application.WindowState = xlMinimized 'ウインドウを最小化
UserForm1.Show vbModeless 'ユーザーフォームを立ち上げる
End Sub
Private Sub Label1_Click() 'Closeラベルをクリックしたら
Application.DisplayAlerts = False '警告メッセージを無効化
UserForm1.Hide 'ユーザーフォームを閉じる
ThisWorkbook.Save 'ブックを上書き保存
Application.DisplayAlerts = True '警告メッセージを有効化
Application.Quit 'これがないとガワが残る
' Closeメソッドは余計だった
End Sub
デスクトップに保存して、開くとデスクトップ上には時間が表示されているユーザーフォームのみがある状態になります。
時間の真下のCloseをクリックしてアプリケーション終了