ExcelVBA技 ユーザーフォーム E13U007

E13U007 (Excel2000~2013)
ユーザーフォームに現在時刻を表示する


ユーザーフォームに現在時刻を表示する kPresentTime関数 を示します。

'標準モジュール
Option Explicit
Option Private Module

'kPresentTime関数
'UserForm上に現在時刻を表示する
'引数 uf:UserForm  ctl:表示するコントロール fmt:表示フォーマット
'使用例: UserFormにLabel1を準備しActivateイベントで次行を記述
' kPresentTime Me, Label1
Function kPresentTime(uf As Object, ctl As Object, Optional fmt$ = "yyyy/mm/dd hh:mm:ss") _
  As Boolean
  pPresentOnTime uf, ctl, fmt
End Function
Private Sub pPresentOnTime(Optional uf0 As Object, Optional ctl0 As Object, Optional fmt0$)
  Static uf As Object, ctl As Object, fmt$
  If Not uf0 Is Nothing Then
    Set uf = uf0: Set ctl = ctl0: fmt = fmt0
  End If
  If TypeName(uf) = "UserForm" Then
    Set uf = Nothing: Set ctl = Nothing: fmt = ""
    Exit Sub
  End If
  If ctl Is Nothing Then Exit Sub
  ctl = Format(Now, fmt)
  Application.OnTime Now + TimeValue("00:00:01"), "pPresentOnTime"
End Sub
'フォ-ム モジュ-ル
Option Explicit
'Label1を配置

Private Sub UserForm_Activate()
  'kPresentTime関数の使用例 Label1を配置
  kPresentTime Me, Label1, "ge.m.d(aaa) hh:mm:ss"
End Sub