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

こんにちは

エクセルVBAで思い通りのことができずに困っています。

セルA1の値:00:00:16.200
セルB1の値:00:00:21.400
セルC1の数式:=B1-A1
セルC1の書式:s.00
セルC1の表示:5.20

これは、A1とB1の時間の差分を計算し、それを秒数(少数あり)で表す形です。
このとき、VBAで単純に C1 の値を取得しようとすると「 6.01851851851852E-05 」となります(Debug.Print (Range("C1").Value))。
少数が長いのが問題ではありません。切り上げても 6.01 になってしまうのです。ほしい値は、5.20 です。

どのようなコードを書けば良いのでしょうか。
セルA1やB1は、分の桁まで数字が大きくなることがあります。計算結果は10秒を超えることはありません。

よろしくお願いします。

A 回答 (1件)

> 「 6.01851851851852E-05 」となります



計算結果がシリアル値、1日を1.0とする値で表されてるからでは。
秒に直すなら、×24×60×60すると、5.20くらいになるハズ。
    • good
    • 0
この回答へのお礼

お見事です!!!!
ありがとうございました。こんなにすぐに的確なお答えをいただけるとは思っていませんでした!

スマート&シンプルに解決できました。本当にありがとうございます。

お礼日時:2022/03/30 18:16

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