私は、ユーザーフォームでExcelファイルを使用して、一部のユーザーが一連のタスクを完了するのにかかる時間を制御しています。ボタンを2回クリックする間にタイマーを設定する
私は起動時に開くユーザーフォームを持っています。ボタンをクリックするとすぐに時間がカウントされ始めます。しかし、私はそれをどうやってできるのか本当に分かりません。
タスクが完了し、ユーザーが[終了]または[完了]をクリックしてからスプレッドシートに保存するまで、タイマーを実行する必要があります。
私は、ユーザーフォームでExcelファイルを使用して、一部のユーザーが一連のタスクを完了するのにかかる時間を制御しています。ボタンを2回クリックする間にタイマーを設定する
私は起動時に開くユーザーフォームを持っています。ボタンをクリックするとすぐに時間がカウントされ始めます。しかし、私はそれをどうやってできるのか本当に分かりません。
タスクが完了し、ユーザーが[終了]または[完了]をクリックしてからスプレッドシートに保存するまで、タイマーを実行する必要があります。
少し異なるアプローチを提案します。ユーザーフォームで、変数を宣言します。
Private startTime As Double
Private endTime As Double
Private blTime As Boolean
blTimeは、アプリケーションにクロックが掛かることを通知する倍精度です。ユーザーフォームが起動されたときにその後のstartTimeの値を設定します。
Private Sub UserForm_Initialize()
startime = Time
blTime = True
End Sub
私はあなたのボタンの完全な制御がcbComplete命名されthetを想定しています。ボタンの本名に変更してください
Private Sub cbComplete_Click()
If blTime Then endTime = Time
blTime = False
End Sub
ボタンをクリックするとクロックがオフになります(blTime = False)。他のボタンにも同様のコードを追加することができますが、最初のクリックだけが重要です。 私たちが必要とするのは、フォームから経過した時間を得る方法です。プロパティを使用:
Property Get Timespan() As Double
If Not blTime Then
Timespan = endTime - startTime
Else
Timespan = 0
End Property
次に、モジュールでUserForm1.Timespanコマンドを使用できます。または形式をきちんと整えてください:
Format(UserForm1.Timespan, "hh:mm:dd")
重要:UserFormは前に読み込むことはできません。
あなたはこのような何かを適応させることができます:
Sub CalculateRunTime_Minutes()
'PURPOSE: Determine how many minutes it took for code to completely run
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault
Dim StartTime As Double
Dim MinutesElapsed As String
'Remember time when macro starts
StartTime = Timer
'*****************************
'Insert Your Code Here...
'*****************************
'Determine how many seconds code took to run
MinutesElapsed = Format((Timer - StartTime)/86400, "hh:mm:ss")
'Notify user in seconds
MsgBox "This code ran successfully in " & MinutesElapsed & " minutes", vbInformation
End Sub
は、あなたのニーズに合わせて。ソースは、あなたがVBAのTimer
機能here
についての詳細を学ぶことができhere
である第二のオプションは、あなたの現在の時間を与えるだろうNow
function用いることであろう。したがって、たとえば:
t = Now
.... run your tasks....
tfinal = Now
time_elapsed = tfinal - t
VBAでプログラミングする方法は知っていますか? – peakpeak
2つのイベントの間の時間をカウントアップするか、カウントアップするときに時間を画面に表示しますか? –
@peakpeak私は以前に慣れていました。しかし、私がした暇つぶしの時間は高校にあった。 10年前。 – Barbaaz