VBAで時間の切捨てについて

このQ&Aのポイント
  • VBAを使って出勤簿を作っている中で、時間の切捨てについて困っています。現在は9時出社で30分単位で切捨てをしていますが、新たに出社時間が8時40分に変更になり、30分単位での切捨て方法が使えなくなってしまいました。
  • 以前はWorksheetFunction.Ceiling(dteTIME, 1 / 48) を使用していましたが、8時40分より前は全て8時40分、9時09分までは8時40分、9時39分までは9時10分というように変更しなければなりません。いい方法があれば教えていただきたいです。
  • VBA初心者ですが、出勤簿を作成しています。WEB上のタイムカード情報をcsvファイルとして保存し、VBAを使って読み込んでいます。以前は9時出社で30分刻みで切捨てをしていましたが、出社時間が8時40分に変更されたため、新たな切捨て方法が必要です。助言いただけると幸いです。
回答を見る
  • ベストアンサー

VBAで時間の切捨てについて

VBA初心者です。 現在VBAにて出勤簿を作っています。 WEBでのタイムカードをcsvに保存しVBAにて読み込む形です。 9時出社で30分単位で切捨てだったので WorksheetFunction.Ceiling(dteTIME, 1 / 48) を使い、問題なく使用していましたが、 今回出社時間が8時40分となり、 そこから30分単位での切捨てに変更になりました。 なので、 8時40分 より前 全て8時40分。 9時09分 までは 8時40分。 9時39分 までは 9時10分。 と変更しなければならなくなり、 今までのやり方が使えなくなり困っています。 どなたか何かいい方法などがございましたら教えていただきたいです。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • chie65535
  • ベストアンサー率43% (8519/19367)
回答No.2

WorksheetFunction.Ceiling(dteTIME + (1 / 72), 1 / 48) - (1 / 72) >そこから30分単位での切捨てに変更になりました。 就業時間は切り捨てだけど、出社時刻は切り上げになるので間違わないように。 >8時40分 より前 全て8時40分。 出社時刻が8:40より小さければ、無条件に8:40出社にする。 >9時09分 までは 8時40分。 違う。出社時刻が9:10より小さければ、切り上げして9:10出社にする。 >9時39分 までは 9時10分。 違う。出社時刻が9:40より小さければ、切り上げして9:40出社にする。 「出社時刻を切り上げる事により、就業時間を切り捨てている」と言う事に注意すべし。

harusekaoru
質問者

お礼

ご回答ありがとうございました! できました! すいません。完全にてんぱっておりまして、 出社と退社がごっちゃになっておりました。 ほんとうにありがとうございます!!

その他の回答 (1)

回答No.1

時刻に20分足してから現在の処理を行い、結果から20分引くんじゃだめですか?

harusekaoru
質問者

お礼

ご回答ありがとうございました! 冷静に考えればそのとおりですね。 てんぱっておりまして、かなり難しく考えすぎてました! ありがとうございます!!

関連するQ&A

  • エクセルで時間の切り上げと切り捨て

    A1のセルに時間の数値を入れた時15分より前だったら切り捨て15分より後だったら切り上げとする方法があるでしょうか?ceilingと floorを使ってみたのですが上手くいきません。 よろしくお願いいたします。

  • タイムカードにおいて、切り上げや、切り捨てをVBAで作成したいのですが

    タイムカードにおいて、切り上げや、切り捨てをVBAで作成したいのですが、 切り上げは、FixとRoundupをどちらが最適かわかりません。 同様に、切り捨ては、IntとRounddownのどちらが最適ですか? 使い分けを教えて頂きたいと思います。 例(切り捨て) Const zam As Integer = 6   '切り捨てを6分単位にする zag = 退勤時間 - 終業時間 (Int(zag / zam) * zam) / 60 よろしくお願いします。

  • 【時給切り捨て】一日ごとに時間の切り捨ては違法か?

    よく聞く話で時給で働いてる人の場合、1分単位で給料が出るわけではなく、たいてい5分単位とか数分単位でしか出ず、例えば18時が定時だったとして18時4分でタイムカードを打ったりすると4分が切り捨てになるなんてありますよね。 だから定時を1分でも過ぎたらわざわざ5分まで待ってタイムカードを打つアルバイトなんかが問題になったりして。 ただまだ5分単位ならそんなセコいことするなよと言えますが、中には15分単位とか30分単位で計算する職場もあるそうで、30分単位のところだと29分で打つとその30分近くがなかったことになるわけで、それはさすがに酷いと思います。 聞いた話によると、本来この○分単位で切り捨てるというのは一日ごとではなく、タイムカードは1分単位で押させて、もちろん1分単位で合算した総数の端数から30分に満たないものを切り捨てるということでした。 だとしたら、1日ごとに29分までの時間を切り捨てる(30分単位の職場の場合)のは違法なのでしょうか? 29分かける22日分だとしたら638時間、実に10時間半分の時給が失われると言うことですよね。 一日ごとに切り捨てるのは違法なのか、一日ごとにするのか月ごとにするのかは会社が決めて良いことになってるのか? どっちなんでしょう? もし一日ごとに違法と言うことであれば、未払いとして支払ってもらうことは可能ですよね。

  • 時間の切り上げ、切捨て

    タイムカードの計算に困っております。 うちの会社では、15分単位で時給に換算しているのですが、1時間7分では1時間扱い。1時間8分からは、1時間15分扱いにしております。 他例: 労働時間が3時間52分の場合→3時間45分扱い 〃      3時間53分の場合→4時間扱い これをエクセルで計算したいのですが、FLOORを使って15分単位に区切ると、1時間8分働いても、1時間計算になってしまいますし、CEILINGを使うと、1時間7分働いた場合、1時間15分計算になってしまいます。 何か良い方法はないでしょうか。

  • 勤務時間の集計です

    Exelでタイムカードの集計をするのに、退勤時刻から出勤時刻を引いて休憩時間を引きます。 出勤と退勤はFLOORとCEILINGを使って15分単位でまとめますが、さらに出勤時刻を早く来ても8:30で計算させる関数の使い方を教えてください。よろしくお願いいたします。

  • エクセルで悩んでます。。。

    エクセルで悩んでます。。。 今エクセルの時間設定で悩んでます。。。。 誰か教えて下さいm(_ _)m!!! 表: A,区分 B,出社時間 C,退社時間 D,就業時間 E,残業時間 となってます。 Aの区分のところには、『通常出勤 定休 休日出勤 早出 遅出』とドロップダウンで選択できるようになってます。 区分ごとに時間の単位を15分切り捨て、10分切り上げなどに変えたい場合はドーしたらいいのでしょうか??? 例:1 A,通常出勤 B,8:30 C,18:00 D,8:00 E,0:00 通常出勤の場合 出社時間 何時に出社したとしても9:00スタートに、退社時間 30分切り捨てにしたいです。 例:2 A,早出 B,7:10 C,19:00 D,10:50 E,2:50 通常出勤以外の場合 出社時刻だけを切り上げ切り捨て無しにしたいです。 今のところDの式は =IF(COUNT(A1:B1)<>2,"",FLOOR(B1,"0:30")-CEILING(A1,"0:15")-IF(FLOOR(B1,"0:30")-CEILING(A1,"0:15")>="6:00"*1,"1:00",0)) 分かりづらい説明ですみません。。。。 教えて下さい(;O;)

  • Access VBAの質問です

    アルバイト給与計算をVBAで作っていますが、 出勤・退勤で労働時間で200分と計算したあとで 15分単位に切り捨てがあります。 200分の場合、3.25としたいのですが、60で割った あとどうすれば良いか教えてください。 200分の場合、3.25(3時間15分) 290分の場合、4.75(4時間45分) どうぞ、宜しくお願い致します。

  • 時間を切り上げ切り捨てして参照させる事ができますか

    怠表があります。 出勤・退勤・休憩の項目にタッチパネルのデーターを10分単位で 切り上げ切り捨て入力してます。 出勤が、8:47では、 8:40で入力 退勤18:22では、18:20で入力 そこで タッチパネルの時間を貼り付けして、 今まで入力していたセルに切り上げ切り捨てした数値を参照させたいのですが・・・・ このような感じです。    B      C      D      F       G          H 16 出勤    退勤    休憩    出勤     退勤        休憩 17 8:22    15:52    0:52    8:30     15:50       1:00 18 9:37    20:01    1:14     9:40    20:00       1:20 B,C,D に データーを貼り付けして F,G,Hに参照させたいのですが、 FGHで時給の計算をさせてるのですが 支障の内容にできるでしょうか よろしくおねがいします。

  • エクセルで指定された時間を基準に切上げ・切捨てをする方法が分かりません。

    前回質問の仕方が悪く正確な回答が得られなかったため再度ご質問します。 エクセルでタイムカード等の時間を計算する場合ですが、 指定(基準)時間の単位で切上げ・切捨てを行う場合どのようにすればいいでしょうか? ご教授願います。 例えば25分毎を基準に 17:24分の場合17:00に切下げ 17:25分の場合17:30に切上げ 17:54分の場合17:30に切下げ 17:55分の場合18:00に切上げ という具合に25分を基準に30分単位で切上げ切捨てをする場合です。 また上記では25分を基準にしていますが20分の場合どのようにすればいいでしょうか?

  • エクセルで給料計算-切捨てと切り上げ

    エクセルで給料計算表をいろいろ教えてもらいながら作ったのですが、当初は出社時間も退社時間も15分単位で45~00分は切り上げで00~15分後は切捨てにということでやってみたところ、途中で46~00分までが00分となり00~14分までが00分になるように変更したいのです。前回教えていただいたのでは=round(A1*48, 0)/48をセルに入力するということでしたが、これは45分は00分になってしまいます。何とかお知恵をお貸しください。お願いします。

専門家に質問してみよう