Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


27196 / 76732 ←次へ | 前へ→

【54860】正しい時間表示ができません
質問  HCM  - 08/4/2(水) 13:21 -

引用なし
パスワード
   今回初めて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
0 hits

【54860】正しい時間表示ができません HCM 08/4/2(水) 13:21 質問
【54864】Re:正しい時間表示ができません ひげくま 08/4/2(水) 13:36 発言
【54868】Re:正しい時間表示ができません HCM 08/4/2(水) 13:49 発言
【54879】Re:正しい時間表示ができません ichinose 08/4/3(木) 6:51 発言
【54893】Re:正しい時間表示ができません HCM 08/4/3(木) 14:52 お礼

27196 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free