• ベストアンサー

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

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

  • 25630
  • お礼率67% (21/31)

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

次のようにすればよいでしょう 例えば6分単位で切り捨てにするのでしたら zam = TimeSerial(0, 6, 0) zag = 退勤時間 - 終業時間 = WorksheetFunction.Floor(zag, zam) 6分タイで切り上げにするのでしたら = WorksheetFunction.Ceiling(zag, zam)

25630
質問者

お礼

回答有難うございました。 おかげで、思い通りになりました。

関連するQ&A

  • エクセル .50以下で切り捨て、.51で切り上げの関数

    エクセルでround関数や、rounddown関数、roundup関数など、切り上げ・切捨ての関数が多数ありますが、 ・.50以下で切り捨て かつ ・.51以上で切り上げ という関数はあるのでしょうか。 if関数などを用いれば解決できるものでしょうか。 少々細かい質問だとは承知しております。 知恵を貸してください! 下に、私がやりたい切り上げ・切り下げ例を示します。この例を見ていただけると、単なる四捨五入でないことが分かっていただけるかと思います・・・。 例: 2415.50円→2415円 3500.51円→3501円 よろしくおねがいします。

  • ROUND関数…小数点第2位で切り上げ・切り捨て

    お世話になります。 Excel2003を使用しています。 計算結果の数字を別セルに・・・97.759はROUNDUP(97.759,1)で97.8 同様に…103.103はROUNDUP(103.103,1)で103.2になりますが、本当は103.1としたいのです。 →小数点第2位が0の時は「切り捨て」1以上は「切り上げ」したいのです。 IF(「小数点第2位が0」,ROUNDDOWN(103.1,1),ROUNDUP(103.1,1)) で、いいかと思うのですが、「小数点第2位が0」の条件がうまくあらわせないため、完成できません。ROUNDを使ってもできそうだとは思うのですが、ちょっとだけ焦りも加わり、なかなか整理ができません。この考え方はあっているでしょうか?皆様のお力を貸していただければありがたいです。 ちなみに… セルの表示形式は「数値」 小数点以下の桁数は「1」 負の数の表示形式は「-1,234.0](今回、数値は負になることは有りません。)

  • 【Excel:VBA】千円未満切捨ての方法

    1000未満切捨てのVBA関数はどの関数を使いどのように引数を指定すればよいのかわかりません。 ------------------------------- Sub 切捨て() Dim x As Integer x = 123456 〔切捨て関数〕 MsgBox x End Sub -------------------------------- この状態で、メッセージボックスに「123000」の値が表示されるようにできないでしょうか? 小数点以下を切り捨てるには x = Int(x) だとわかったのですが、この関数に千未満切捨てなどを指定する引数はあるのでしょうか?

  • ROUND関数と小数点以下桁上げ(桁下げ)ボタンについて

    いつもお世話になっています。素朴な疑問ですが教えてください。 任意の桁数で切り上げや切り捨て、あるいは四捨五入を行なう関数としてROUNDUP関数やROUNDDOWN関数、そしてROUND関数というものが存在しますが、このうち四捨五入を行なうROUNDUP関数は、整数表示にしたい場合やそれ以下の小数第○位の表示にしたい場合に使う限りにおいては書式設定ツールバーの「小数点以下桁上げ(桁下げ)」ボタンを使えば事足りるのではないでしょうか? あるいは使い分けをしなければならないケースも存在するのでしょうか? ご存知の方いらっしゃいましたらぜひ教えてください。宜しくお願いいたします <(__)>

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

    怠表があります。 出勤・退勤・休憩の項目にタッチパネルのデーターを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で時給の計算をさせてるのですが 支障の内容にできるでしょうか よろしくおねがいします。

  • エクセルでセルの値によって数式を変えたい

    エクセル2003を使用しておりますが、セルの値によって数式を変えることはできますでしょうか。 例えば A1に切り上げの文字が入っていれば、B1はROUNDUP(100/3,0)に、 A1に切り捨ての文字が入っていれば、B1はROUNDDOWN(100/3,0)に、 A1に四捨五入の文字が入っていれば、B1はROUND(100/3,0)に、 のようにしたいです。 IF文を使えばもちろんできるのですが、すでに指定されている多数の 数式を、一括で置換したいと思っております。

  • ACCESS2000

    Option Compare Database Public Function RoundDown(X As Double, s As Integer) As Double Dim t As Integer t = 10 ^ Abs(s) If s > 0 Then RoundDown = Int(X * t) / t Else RoundDown = Int(X / t) * t End If End Function というモジュールをつかって値の切り捨てをおこなっていましたが、マイナスの値がうまく動きません。 どなたか教えていただけないでしょうか。

  • Access VBAの質問です

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

  • エクセルで出勤簿作成・土曜日の計算について

    いつも大変参考にさせて頂いています。VBAを現在勉強中で本を参考にしながら、アルバイトの「出勤簿」を作成しています。ただ平日は9:30~18:30の計算で勤務時間の計算ができるのですが、土曜日は9:30~12:00(休憩時間1時間はありません。)の場合、数式のエラーが出てしまいます。関数は出勤時間の入力ではCEILING、退勤時間ではFLOORを使用しています。(30分単位で切り上げ・切り捨てです。)土曜日の計算の場合どのようにすればエラーは出ないでしょうか?

  • エクセル関数で

    お世話になります。下記の数値の小数点以下3桁目をある条件で 切り上げ・切捨てを行いたいのですが、その条件に加えて小数点以下3桁 目が0でも切上げにする場合の数式を教えていただけないでしょうか? 【条件】23.230以下は、小数点以下3桁目を切り捨て。23.231以上は 小数点以下3桁目を切上げる。ただし、23.231以上で切上げる場合、 小数点以下3桁目が0の場合でも切上げる(*) 例)23.151 → 23.15   23.150 → 23.15   23.230 → 23.23   23.231 → 23.24 (*) 23.240 → 23.25 切り上げ、切捨ての数式はIF関数でできたのですが、23.231以上で 切上げる場合、小数点以下3桁目が0の場合でも切上げるというのが 分かりません、、、 =IF(A1>=23.231,ROUNDUP(A1,2),ROUNDDOWN(A1,2)) ご指導いただきたく、宜しくお願い致します。

専門家に質問してみよう