Excel VBA質問箱 IV

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

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


416 / 13645 ツリー ←次へ | 前へ→

【80378】時間の足し算を行うと、yyyy/mm/dd h/mm/ss表記になってしまう amatsuno 19/2/5(火) 15:17 質問[未読]
【80379】Re:時間の足し算を行うと、yyyy/mm/dd h/m... マナ 19/2/5(火) 18:30 発言[未読]
【80387】Re:時間の足し算を行うと、yyyy/mm/dd h/m... amatsubo 19/2/8(金) 8:35 回答[未読]
【80381】Re:時間の足し算を行うと、yyyy/mm/dd h/m... マナ 19/2/5(火) 20:32 発言[未読]
【80388】Re:時間の足し算を行うと、yyyy/mm/dd h/m... amatsubo 19/2/8(金) 8:35 お礼[未読]
【80391】Re:時間の足し算を行うと、yyyy/mm/dd h/m... マナ 19/2/8(金) 20:51 発言[未読]
【80484】Re:時間の足し算を行うと、yyyy/mm/dd h/m... amatsuno 19/2/18(月) 8:07 お礼[未読]

【80378】時間の足し算を行うと、yyyy/mm/dd h/mm...
質問  amatsuno E-MAIL  - 19/2/5(火) 15:17 -

引用なし
パスワード
   excel上で時間表記されているカラムの足し算を行うと、
足し算の結果セルがyyyy/mm/dd h/mm/ss表記になってしまいました。

また、足し算の合計値が想定と違う結果になってしまいます

元excelのシート
TEST,    1,    TEST,    3577:00:59        
TEST,    3,    USR2,    3330:25:19        
TEST,    3,    USR2,    3381:50:06        
TEST,    15,    USR3,    8:41:14            
TEST,    15,    USR3,    5:41:03            
TEST,    15,    USR3,    0:28:32            
TEST,    15,    USR3,    2:26:55            
TEST,    18,    USR3,    10:14:12        
TEST,    18,    USR3,    5:17:49            
TEST,    18,    USR3,    0:22:22            
TEST,    18,    USR3,    3:30:58            
TEST,    19,    USR4,    0:46:43            
TEST,    19,    USR4,    0:39:59            
TEST,    19,    USR4,    3:33:07            
TEST,    19,    USR4,    3:36:23            
TEST,    19,    USR4,    0:59:02            
TEST,    19,    USR4,    0:31:00            


上記の状態で、カラム2が同一の番号の時間(カラム4)を合計しようとしています。


With Worksheets("元")
   For i3 = 2 To .Cells(Rows.Count, "B").End(xlUp).Row
     vK2 = .Cells(i3, "B").Value
     dic2(vK2) = dic2(vK2) + .Cells(i3, "D")
   Next
  End With

  ReDim vA3(1 To dic2.Count, 1 To 2)
  i3 = 0
  For Each vK2 In dic2.Keys
   i3 = i3 + 1
   vA3(i3, 1) = vK2
   vA3(i3, 2) = dic2(vK2)
  Next

  Application.ScreenUpdating = False
  With Worksheets("出力先")
   With .Range("A1").Resize(i3, 2)
     .EntireColumn.ClearContents
     .Value = vA3
     .Columns(2).NumberFormatLocal = "h:mm:ss"
     .Columns(4).NumberFormatLocal = "h:mm:ss"
     Application.Goto .Cells(1), True
   End With
  End With
  Application.ScreenUpdating = True

  Rows(1).Insert
 
上記を実行したとき、出力先のカラム2の値がyyyy/mm/dd h/mm/ss表記(カラム2が15の列 ⇒ 1900/1/4 15:18:37)
となり、また、合計値が正常でない値(01:17:44と出る予定)が出力されてしまいます


上記コードのどこが誤っているのでしょうか?
お分かりになられる方、よろしくお願いいたします


また、出力先の列を変更する場合、
(ここでは、1・2列目に出しているものを、1・3列目にしたい)
はどこを変えればよいのでしょうか?

【80379】Re:時間の足し算を行うと、yyyy/mm/dd h...
発言  マナ  - 19/2/5(火) 18:30 -

引用なし
パスワード
   ▼amatsuno さん:
       
>TEST,    15,    USR3,    8:41:14            
>TEST,    15,    USR3,    5:41:03            
>TEST,    15,    USR3,    0:28:32            
>TEST,    15,    USR3,    2:26:55            
           
> 
> 上記を実行したとき、出力先のカラム2の値がyyyy/mm/dd h/mm/ss表記(カラム2が15の列 ⇒ 1900/1/4 15:18:37)
> となり、また、合計値が正常でない値(01:17:44と出る予定)が出力されてしまいます


17:17:44となりますが?

【80381】Re:時間の足し算を行うと、yyyy/mm/dd h...
発言  マナ  - 19/2/5(火) 20:32 -

引用なし
パスワード
   ▼amatsuno さん:
          
>
>また、出力先の列を変更する場合、
>(ここでは、1・2列目に出しているものを、1・3列目にしたい)
>はどこを変えればよいのでしょうか?


With .Range("A1").Resize(dic2.Count)
  .EntireColumn.ClearContents
  .Value = Application.Transpose(dic2.Keys)
End With
With .Range("C1").Resize(dic2.Count)
  .EntireColumn.ClearContents
  .Value = Application.Transpose(dic2.items)
  .NumberFormatLocal = "h:mm:ss"
End With

【80387】Re:時間の足し算を行うと、yyyy/mm/dd h...
回答  amatsubo E-MAIL  - 19/2/8(金) 8:35 -

引用なし
パスワード
   ▼マナ さん:
>▼amatsuno さん:
>       
>>TEST,    15,    USR3,    8:41:14            
>>TEST,    15,    USR3,    5:41:03            
>>TEST,    15,    USR3,    0:28:32            
>>TEST,    15,    USR3,    2:26:55            
>           
>> 
>> 上記を実行したとき、出力先のカラム2の値がyyyy/mm/dd h/mm/ss表記(カラム2が15の列 ⇒ 1900/1/4 15:18:37)
>> となり、また、合計値が正常でない値(01:17:44と出る予定)が出力されてしまいます
>
>
>17:17:44となりますが?

すいません。上記記載いただいたため、こちらでも何度か確認したのですが、
どうしても1900/1/4 15:18:37でます。
貼り付け時にフォーマット指定を入れる必要があるのでしょうか?

【80388】Re:時間の足し算を行うと、yyyy/mm/dd h...
お礼  amatsubo E-MAIL  - 19/2/8(金) 8:35 -

引用なし
パスワード
   ▼マナ さん:
>▼amatsuno さん:
>          
>>
>>また、出力先の列を変更する場合、
>>(ここでは、1・2列目に出しているものを、1・3列目にしたい)
>>はどこを変えればよいのでしょうか?
>
>
>With .Range("A1").Resize(dic2.Count)
>  .EntireColumn.ClearContents
>  .Value = Application.Transpose(dic2.Keys)
>End With
>With .Range("C1").Resize(dic2.Count)
>  .EntireColumn.ClearContents
>  .Value = Application.Transpose(dic2.items)
>  .NumberFormatLocal = "h:mm:ss"
>End With


ありがとうございます。
対応できました

【80391】Re:時間の足し算を行うと、yyyy/mm/dd h...
発言  マナ  - 19/2/8(金) 20:51 -

引用なし
パスワード
   ▼amatsubo さん:

正しく集計できているのでしょうか

【80484】Re:時間の足し算を行うと、yyyy/mm/dd h...
お礼  amatsuno  - 19/2/18(月) 8:07 -

引用なし
パスワード
   ▼マナ さん:
>▼amatsubo さん:
>
>正しく集計できているのでしょうか

すいません。どうやっても同じ結果しか出ないので、
もう一度確認してみます

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