Excel VBA質問箱 IV

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

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


29868 / 76732 ←次へ | 前へ→

【52138】Re:時刻同士の計算(ミリ秒単位)方法ってありますか
発言  ichinose  - 07/10/23(火) 20:42 -

引用なし
パスワード
   ▼ふぁっしー さん:
こんばんは。

>ただ、ひとつ
>=VALUE(TEXT(SUBSTITUTE(C2,":",".",2),"s.000")-INT(TEXT(SUBSTITUTE(C2,":",".",2),"s.000")))
>のINTが入っている状態だとERRORとなってしまうので、INTをはずした状態にしたらうまくいきました(型が合わないためでしょうか?)。
ん?INT関数を外してしまうと正しい数値は出ないはずなんですが・・・。

VBAで数式のサンプルを作成しました。

新規ブックの標準モジュールに
'=============================================================
Sub main()
  With Range("a1")
    .NumberFormatLocal = "@"
    .Value = "01:00:331"
    MsgBox "セルA1の " & .Value & "から、セルA2に秒以下の値を取得します"
    With .Cells(2)
     .NumberFormatLocal = "G/標準"
     .Value = "=VALUE(TEXT(SUBSTITUTE(a1,"":"",""."",2),""s.000"")-" & _
         "INT(TEXT(SUBSTITUTE(a1,"":"",""."",2),""s.000"")))"
     End With
    End With
  MsgBox "いかがですか?"
End Sub

上記のmainを実行してみてください。

アクティブシートのセルA1に文字列として01:00:331が入力されます。
このセルA1の値に対して、セルA2に
=VALUE(TEXT(SUBSTITUTE(A1,":",".",2),"s.000")-INT(TEXT(SUBSTITUTE(A1,":",".",2),"s.000")))

という数式で 0.331が取得されるはずです。

再度、確認してみてください。

尚、Excel2002で確認しました。
2 hits

【52083】時刻同士の計算(ミリ秒単位)方法ってありますか ふぁっしー 07/10/19(金) 15:00 質問
【52084】Re:時刻同士の計算(ミリ秒単位)方法って... ichinose 07/10/19(金) 17:43 発言
【52136】Re:時刻同士の計算(ミリ秒単位)方法って... ふぁっしー 07/10/23(火) 14:40 お礼
【52138】Re:時刻同士の計算(ミリ秒単位)方法って... ichinose 07/10/23(火) 20:42 発言
【52141】Re:時刻同士の計算(ミリ秒単位)方法って... ふぁっしー 07/10/24(水) 14:05 お礼
【52085】Re:時刻同士の計算(ミリ秒単位)方法って... neptune 07/10/19(金) 17:51 発言
【52137】Re:時刻同士の計算(ミリ秒単位)方法って... ふぁっしー 07/10/23(火) 15:26 お礼
【52142】Re:時刻同士の計算(ミリ秒単位)方法って... neptune 07/10/24(水) 15:03 発言
【52162】Re:時刻同士の計算(ミリ秒単位)方法って... ふぁっしー 07/10/25(木) 22:03 お礼

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