|
今回初めてVBAを使っている初心者ですが、どうしても原因がわからない
問題が出ています。
勤務時間の総計を求めようとしていますが、うまく表示できません。
Date型変数を用意して、これに任意のセルに書かれた時間を取得して加
算していくのですが、数箇所だけ加算しているのにも関わらず、時間が
減算されて表示されます。
一例では、40:00+8:00時、48:00となるはずが、"24:00"と表示されます。
以下はDate型変数の表示形式を日付に変え時の表示結果です。
加算処理がおかしい気もするのですが、同様の加算処理をDouble型で行
った所、値は増加しているので、処理には問題無いようにも思えます。
1.期待値(32:00), Date型変数値(1990/1/1 8:00), Double型変数値(1.333333..)
2.期待値(40:00), Date型変数値(1990/1/1 16:00), Double型変数値(1.666666..)
3.期待値(48:00), Date型変数値(1990/1/1 0:00), Double型変数値(2.0)
3の実際の表示は24:00
実際の時間取得〜加算処理コードは以下となっています。
どうしておかしな表示になる事があるのか、ご教授願えませんでしょうか?
宜しくお願い致します。
Dim tTime As Date
Dim iTime As Double
For i = 1 To 31
'セルから工数取得〜工数加算
tTime = tTime + CDate(ActiveCell.Offset(i, 0).Value)
iTime = iTime + CDbl(ActiveCell.Offset(i, 0).Value)
'加算結果をテスト表示
ActiveCell.Offset(i, 1).NumberFormat = "[h]:mm" '書式
ActiveCell.Offset(i, 1).Value = tTime
ActiveCell.Offset(i, 2).Value = iTime
Next i
|
|