日付時刻:経過時間を取得( Timer 関数 )
Timer 関数の使い方
result = Timer ()
【戻り値】
- result ・・・ 当日午前 0 時から経過した秒数を表す単精度浮動小数点数型(Single)の値。
Timer 関数は、処理中に午前0時を超えた場合、値を「1日の総秒数を反転した値(-86,400 秒)」にリセットし、そこから経過秒数を加算していきます。さらに1日が経過し翌日の午前0時になると「 0 秒」となるので、日付をまたぐ場合は注意が必要です。
【対応策】
1.経過時間の差分の値の絶対値を Abs 関数等で算出して、その値で経過秒数を判定する。
2.「【参考】サンプルVBAソース2」のように、Timar 関数を使用しない。
Timer 関数の使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
Sub Sample_Timer() Dim StartTime Dim EndTime StartTime = Timer EndTime = 20 With Sheets("Sheet1") .Cells(1, 1).Value = "" Do Until .Cells(1, 1).Value = 20 .Cells(1, 1).Value = Int(Timer - StartTime) DoEvents Loop End With End Sub |
実行結果
DoEvents 関数について
上記マクロ内には DoEvents というのがありますが、この「DoEvents関数」を使用することで、一時的に、他のアプリケーションが実行できるように Windows に制御を移すことが可能になります。
つまり、マクロを実行後、VBE 画面からマクロを停止することが可能になります。
【参考】サンプルVBAソース2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Sub Sample_Test() Dim StartTime Dim EndTime StartTime = Now EndTime = 20 Cells(1, 1).Value = "" Do Until Cells(1, 1).Value = EndTime Cells(1, 1).Value = Int(DateDiff("s", StartTime, Now)) DoEvents Loop End Sub |
関連記事
-
-
オブジェクトの書式をクリアする(ClearFormats メソッド)
ClearFormats メソッド 対象となるオブジェクトの書式(スタイル)を初 …
-
-
VBA の演算子(比較演算子)
比較演算子 比較演算子による演算の結果は「真」の場合は「True」、「偽」の場合 …
-
-
乱数を生成する(Rnd 関数)
Rnd 関数の使い方 Rnd 関数は、0 以上、1 未満の範囲の乱数を単精度浮動 …
-
-
文字列:文字列変数内の一部を置き換える(Mid・MidB ステートメント)
Mid・MidB ステートメントの使い方 【書式】 { Mid | MidB } …
-
-
指定した文字列を数値に変換する(Val 関数)
Val 関数 の使い方 Val 関数は、指定した文字列に含まれる数字を数値として …
-
-
文字列:指定した文字コードに対応する文字を返す(Chr 関数)
Chr 関数の使い方 【書式】 result = Chr ( code ) 引数 …
-
-
エラー(CVErr 関数・IsError 関数・Error 関数)
CVErr 関数(エラー番号をエラー値に変換する)の使い方 【書式】 retur …
-
-
テキストファイル(UTF-8)を読み込み、書き出し(ADODB.Stream)
Stream オブジェクト ADO(ActiveX Database Objec …
-
-
色の設定(ColorIndex プロパティ・Colors プロパティ)
ColorIndex プロパティ ColorIndex プロパティは、指定したオ …
-
-
VBA の演算子(演算子の優先順位)
演算子の優先順位 演算子の優先順位とは、1つの式の中に演算子が複数ある場合、どの …