アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記データの羅列について、VBAで合算したいです、、
【データの羅列】
1行目はタイトル行で2列目以降はデータ(間に空白行は存在しません)
   A列   B列  C列  D列
1   日付     名前1 名前2 時間
2   2018/7/22 AAAA BBBB 1:00
3   2018/7/22 AAAA BBBB 2:00
4   2018/7/29 AAAA BBBB 0:30
5   2018/7/29 CCCC DDDD 1:00
6   2018/7/29 CCCC DDDD 0:40
↓A列,B列,C列が全て同じデータの場合、D列の数量を合算して一つにまとめる。
   A列   B列  C列  D列
1   日付     名前1 名前2 数量
2   2018/7/22 AAAA BBBB 3:00
3   2018/7/29 AAAA BBBB 0:30
4   2018/7/29 CCCC DDDD 1:40

以下の過去のベストアンサーを参考にVBAを作成しようと思ったのですが、
(参考回答:https://oshiete.goo.ne.jp/qa/10787788.html
VBA初心者のため、時間を足し合わせるための改修方法が分かりませんでした。。
何卒ご教授いただけると幸いです。

質問者からの補足コメント

  • (回答してくださった方のコメントを踏まえて補足です。)
    >セルの値の形式
    足し合わせようとしていた元の値の形式は、ユーザ定義の「 [h]:mm 」でした。

    そして、足し合わせた結果「1:00」と表示されていたものが「0.0416666666666668」になり、うまくいっていない状況でした。

      補足日時:2022/12/09 11:28

A 回答 (1件)

こんばんは



>時間を足し合わせるための改修方法が分かりませんでした
時間表示のセルの値の形式がわかりませんけれど・・

セルの時間値がシリアル値(=エクセルの日付・時間型の値)になっているのなら、単純に数値の加算で計算できますので、特に変更する必要もないと思われます。
シートの計算式で時間の入っているセルに対して、
 = D2 + D3
のようにして計算するのと同様です。
結果が24時間を超える様なら、セルの書式設定を「 [h]:mm 」などとしておけば、時間表記で表示されると思います。


もしも、D列が文字列等で入力されているのなら、あらかじめシリアル値に置き換えておけばよいでしょう。
あるいは、VBAの処理内で加算を行う前に TimeValue 関数でシリアル値に変換してから加算するとか。
https://learn.microsoft.com/en-us/office/vba/lan …
    • good
    • 1
この回答へのお礼

ご回答くださり、ありがとうございました!
fujillin様のおっしゃる通り、時間の合算は問題なく行われており、
セルの値の形式の問題でした。
合算先の表示形式を「 [h]:mm 」に変更したところ、想定していた値が表示されました。
この度はご助言くださり、ありがとうございましたm(_ _)m

お礼日時:2022/12/09 15:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!