[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『時間別の計算方法(VBA)』(VBA初心者)
時間の計算がうまくいきません。よい方法を教えてくだい。
VBAで計算させたいのですが、なかなかうまくいきません
開始時間と終了時間を入力して以下のように表示させたいのですが
どうすればいいのでしょうか。
05:00から22:00の間に勤務した場合には A1に○○時間と表示
22:00から翌日の05:00の間に勤務した人は B1に○○時間と表示
したいのですが、
例 開始時間19:00 終了時間21:00 の場合は A1に 2:00時間 (解決)
開始時間19:00 終了時間01:00 の場合は A1に 2:00時間
B2に 3:00時間
と表示させる方法を教えてください。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
>VBAで計算させたいのですが、なかなかうまくいきません どう上手くいかないのですか? コードと結果を提示してください。
開始時間19:00 終了時間01:00 の場合は A1に 2:00時間 B2に 3:00時間 19:00〜01:00は6時間ですが。 ルール、条件があるのなら、先に提示してください。
(tkit) 2022/01/25(火) 15:40
すみません。tkitさん例2はB2に4時間です。
特にルール等はありません。関数を利用して
="5:00"-MIN("5:00",開始時間)+MIN("29:00",終了時間)-MIN(MAX("22:00",開始時間),終了時間))
で計算できたのですが、VBA上では計算結果が反映されません。
何しろシローとでどうしていいものか迷っています。
(VBA初心者) 2022/01/25(火) 16:26
数式で出来ているのであれば、該当セルに、その数式を代入すれば、 解決かと。 ↓参考にしてください。 http://officetanaka.net/excel/vba/cell/cell03.htm
コードの提示が無いので、私は、ここまでとします。
(tkit) 2022/01/25(火) 16:39
かっこの数が合っていないのでエラーになりますが、そのままVBA風に直すとこんな感じです。
MsgBox TimeValue("5:00") - WorksheetFunction.Min(TimeValue("5:00"), 開始時間) _ + WorksheetFunction.Min(TimeValue("5:00") + 1, 終了時間) _ - WorksheetFunction.Min(WorksheetFunction.Max(TimeValue("22:00"), 開始時間), 終了時間))
(わからん) 2022/01/25(火) 17:36
>通常のエクセルでは問題なく計算できました。
シート上の数式は、どのセルに入力されているか自己判断してくれます(有難いことですね)。 しかしマクロじゃ、そんな有難い配慮は自動的にはしてくれません。
いずれにしても、どんなコードを実際に書いたのか(現物のコピペ、つまり手書きではないもの)を 示して頂かないと、つまらないやり取りで時間が無駄になります。
(半平太) 2022/01/26(水) 12:30
開始時間を19:00、終了時間を25:00としたとき、
ご提示の数式(かっこは修正)では 3:00
マクロの式(かっこは修正)でも 3:00
になります。
すでに指摘があるように、
・どのようにしたら(コードの提示)
・どうなったのか(エラーメッセージや目的と違った計算結果)
を提示していただかないと進みません。
(わからん) 2022/01/27(木) 09:20
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.