[[20220125150547]] 『時間別の計算方法(VBA)』(VBA初心者) ページの最後に飛ぶ

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

 

『時間別の計算方法(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


例 開始時間19:00 終了時間21:00 の場合は A1に 2:00時間 (解決)
  開始時間19:00 終了時間01:00 の場合は A1に 2:00時間
                      B2に 4:00時間

  すみません。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


>="5:00"-MIN("5:00",開始時間)+MIN("29:00",終了時間)-MIN(MAX("22:00",開始時間),終了時間))

かっこの数が合っていないのでエラーになりますが、そのまま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


ありがとうございます。
私も わからん さんと同じ方法でやったのですが
計算できませんでした。
理由がわかりません。カッコについては修正済みです。
通常のエクセルでは問題なく計算できました。
(vba初心者) 2022/01/26(水) 11:59

 >通常のエクセルでは問題なく計算できました。

 シート上の数式は、どのセルに入力されているか自己判断してくれます(有難いことですね)。
 しかしマクロじゃ、そんな有難い配慮は自動的にはしてくれません。

 いずれにしても、どんなコードを実際に書いたのか(現物のコピペ、つまり手書きではないもの)を
 示して頂かないと、つまらないやり取りで時間が無駄になります。

(半平太) 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.