日付時刻:経過時間を取得( 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 |
関連記事
-
-
フォントの設定(Font プロパティ)
フォントの設定(Font プロパティ) 指定されたオブジェクトのフォント情報(F …
-
-
日付時刻:日付から曜日を取得( Weekday 関数、WeekdayName 関数 )
Weekday 関数(日付から曜日を表す数値を返す)の使い方 【書式】 week …
-
-
配列(宣言・要素数の変更について)
配列の宣言 【書式】※ 配列の宣言 <Type 型の静的配列(固定長配列)の宣言 …
-
-
日付時刻:数値から日付・時刻データを取得( DateSerial 関数、TimeSerial 関数 )
DateSerial 関数(数値を使って日付データを取得) 【書式】 date …
-
-
VBA の演算子(論理演算子:And、Eqv、Imp、Not、Or、Xor)
論理演算子 論理演算を行うときに使用する演算子で、以下の 6 種類があります。 …
-
-
乱数を生成する(Rnd 関数)
Rnd 関数の使い方 Rnd 関数は、0 以上、1 未満の範囲の乱数を単精度浮動 …
-
-
日付時刻:現在の日付・時刻を取得・設定(Now、Date、Time)
現在の日付・時刻を取得・設定 現在の日付・時刻を取得(Now 関数、Date 関 …
-
-
文字列:文字を指定数並べた文字列を返す(String 関数)
String 関数 【書式】 result = String ( number, …
-
-
文字列:文字列右から指定文字数取得(Right 関数,RightB 関数)
Right 関数・RightB 関数 の使い方 【書式】 result_righ …
-
-
変数がNull 値かどうかをチェックする( IsNull 関数 )
IsNull 関数の使い方 【書式】 result = IsNull ( exp …
