[[20120324232500]] 『マイクロ秒の計算』(ローストビーフ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マイクロ秒の計算』(ローストビーフ)
 マイクロ秒で表わされる2つの時刻の差を求めたいのですが、
どう定義すればよいのでしょうか?
 
A1セルに時刻1 11:22:33.123456を入力します。
B1セルに時刻2 12:23:34.123556を入力します。
C1セルに時刻2-時刻1の計算結果(01:01:01.000100)を出力させたいのです。
 
どのようにA1 B1 C1を定義すればよいのでしょうか?
 
宜しくお願いします。
 
エクセルのバージョンはExcel2003です。
OSはWindowsXPです。

 EXCEL の時間計算は秒単位ですので、ユーザ定義関数でどうでしょうか。
 下記を標準モジュールにおいてから、A1,B1 を文字列にして
  A1=11:22:33.123456
  B1=11:22:33.123456
  C1=mTimeDiff(A1,B1)
 とすれば、
  C1 に 01:01:01.000100
 となります。
 (Mook)

 Function mTimeDiff(timeA As String, timeB As String) As String
    Dim trA, trB, timeC, mTimeC
    trA = Split(timeA, ".")
    trB = Split(timeB, ".")
    timeC = TimeValue(trA(0)) - TimeValue(trB(0))
    mTimeC = CLng(Left(trA(1) & "000000", 6)) - CLng(Left(trB(1) & "0000000", 6))
    If mTimeC < 0 Then
        mTimeC = mTimeC + 1000000
        timeC = timeC - TimeValue("0:0:1")
    End If
    mTimeDiff = Application.Text(timeC, "HH:MM:SS") & "." & Right("000000" & mTimeC, 6)
 End Function

 Mookさん
 ありがとうございます。差分計算できました。
 これからVBAも勉強していきます。(ローストビーフ)

 重箱の隅つつきだけど。

 >時間計算は秒単位
 ワークシート上ではミリ秒までの計算に対応してるよ。

 表示形式ではhh:mm:ss.000でミリ秒まで表示してくれるよ。
 (春日野馨)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.