Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Home : Excel 2016)
時間の計算について
投稿日時: 19/01/01 10:42:43
投稿者: Kazu0621

VBAでの時間の計算についての質問です.
A列に
00:00:23:39
 
B列に
00:00:46:61
とあり,
 
C列にはB列から10秒引いた
00:00:36:61
と表示させるというマクロを作成したいです.
 
ただし,A列がC列に表示させる値より小さかった場合は
(この場合だとA列が00:00:37:61)
A列の値を表示させたいです.
 
時間単位で,しかも表示形式が特殊なため,中々うまくできません.
この件についてご回答いただければ幸いです!
よろしくお願いします.

回答
投稿日時: 19/01/01 12:50:58
投稿者: simple

"Excel 秒未満の計算" といったkeywordでネット検索してヒットする
「Excelでミリ秒を扱う方法」
http://xn--eck9awc8j.biz/excel-ms/
などを参照してみて下さい。
 
こうした表示形式にすれば、通常のワークシート計算でできるのではないですか?
余り、VBAで特別なことをせずに、Excelに備わった機能をできるだけ利用することを
お薦めします。

回答
投稿日時: 19/01/01 19:13:17
投稿者: 半平太

>A列に
>00:00:23:39

>B列に
>00:00:46:61
>とあり,
 
「とあり」との事なので、そのデータと書式は実在していますね。
 
セルに設定されている書式 と 実体値(セルの書式を標準にした時に表示されるデータ)が、
どうなっているのか教えてください。

回答
投稿日時: 19/01/04 12:56:15
投稿者: Suzu

前半の3つの範囲は、Time(00,00,23) で換算できますよね。
その為には、Split関数を使い、「:」を区切り文字として指定すれば、それぞれの値を取得できますね。
 
問題はその下の位。
 
秒以下の単位としては、色々な単位があります。
今回の表記の
00:00:23:39
39 は どんな単位でしょうか。
 
「:」があるので 39/60秒 ?
小数点以下2桁と考えて 39/100秒 ?
それとも、1ミリ秒と考え 39/1000秒 ?
 
それによって式を変えて、必要なら、秒から 1を引く様にすれば良いでしょう。

トピックに返信