|
今回使われるUserformの目的は
MsgBox的な役割で、Userformから戻り値を
使う方法が適していると思ったのです。
そのため、Userformの扱いはUserform側じゃなく
呼び出す側ですべて管理するのが便利です。
UserformのCloseメッセージをインターセットし、
Hideさせて、実際破棄するのは呼び出す側で処理する。
そうしたら、Userformモジュール中での面倒な処理は
考えなくても済むからです。
Dim UF As Userform1 ' 使われるUserformインターフェースを宣言。
Set UF = New Userform1 ' 実際のUserform1を変数に流し込む。
' (諸処理)
Unload UF ' 使い終わったらここでUnload
Set UF = Nothing ' 変数の開放
私が提示したコードはテスト用として作ったものなので、
整理されていないし、不具合もあるかと思います。とりあえず、一箇所修正です。
>Public Sub timerStart()
> changeTime = Now
> setTime = Now + TimeValue(interval)
> Application.OnTime setTime, "TimeCheck"
>
>End Sub
↓
Public Sub timerStart()
'↓追加
If IsTimerOn Then Application.OnTime setTime, "TimeCheck", , False
changeTime = Now
setTime = Now + TimeValue(interval)
Application.OnTime setTime, "TimeCheck"
'↓追加
IsTimerOn = True
End Sub
|
|