- ベストアンサー
経過時間を表示したい
現在の時刻と開始時刻から、経過時間を表示したいです。 現在の時刻は16時30分だったら、16:30 開始時刻は12時15分だったら、12:15という変数があります。 答えで4:30という数字が欲しいです。 経過時間は24時間以下を考えれば良いです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No1の者ですが A=CDate(Time)-CDate(Time_Start) の結果、Aが小数になってしまうという問題についてです。 変数Aの型が何になっているのか謎ですが「答えで4:30という数字が欲しい」ということなのでNo2さんの回答のようにformat関数を使うと簡単です。 A=Format(CDate(Time)-CDate(Time_Start),"hh:mm") format関数が邪魔であれば変数AをDate型で定義してやればよいかと思います。 ちなみに変数Aに小数が入っていることについてですが、VBの日付型というのは整数+小数で管理しており、整数部で日数を、小数部で時間を管理しています(Excelなどで日付を入力したセルを数値表示すると分かると思います)。今回は日数はゼロですので0.xxxという小数が変数Aに入ってきます。
その他の回答 (3)
- Siegrune
- ベストアンサー率35% (316/895)
A=CDate(CDate(Time)-CDate(Time_Start)) でいいような。。。 ?cdate("1:42:33")-cdate("1:42:17") 1.85185185185191E-04 ?cdate(cdate("1:42:33")-cdate("1:42:17")) 0:00:16 文字列で扱いたければさらにcstr()で囲む。
- nda23
- ベストアンサー率54% (777/1416)
Format関数では? Dim 差 差 = Time - CDate(開始時刻) 経過時間 = Format(差, "hh:nn")
- excelist
- ベストアンサー率56% (13/23)
答えは4:15では?!というのは置いておいて、「12:15という変数」の型が何なのか謎ですが、String型になっていて単純に計算できなくて困っているんじゃないかと想像して回答します。 CDateで型を日付型に変換してやれば、あとは足し算引き算可能です。
お礼
ありがとうございます。 答えは、4:15ですね。 CDateにしてみたのですが、答えの変数Aが少数点で表示されてしまいます。 A=CDate(Time)-CDate(Time_Start)