• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAで時間の切捨てについて)

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分に変更されたため、新たな切捨て方法が必要です。助言いただけると幸いです。

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

  • ベストアンサー
回答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