MSAccessでボタンで入力する現在時刻を10分単位でまるめてすっきりするVBA。

ご予約登録画面で時間の入力を簡単にするためにボタンをつけるってことはあると思うのですが、単純に現在時刻だとどうにも不格好です。そこで、時刻をまるめられないかと探していたらこちらのサイトで方法が紹介されていました。

Excelでお仕事! http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_050_030.html

ExcelのFloor関数で切り下げ、Ceiling関数で切り下げ。その際に10分刻みなら10分=1/144日、15分=1/96日 というのを利用すれば実現できそうです。

AccessでもExcelの関数を参照設定でExcelのオブジェクトライブラリを選択すれば使えます。早速以下のようにしてました。まるめFuncitonで10分単位の切り上げが実現しました。

Private Sub btn_from1hourAfter_Click()
    Me.予約時刻 = まるめ(DateAdd("h", 1, Time()))
End Sub

Private Sub btn_from2hourAfter_Click()
    Me.予約時刻 = まるめ(DateAdd("h", 2, Time()))
End Sub

Private Sub btn_FromNow_Click()
    Me.予約時刻 = まるめ(Time())
End Sub

Private Function まるめ(t)
    まるめ = Excel.Application.Ceiling(t, 1 / 144)
End Function

1/144のところはコンボボックスなどで差し替えれば、15分単位などにもできますし、切り上げ、切り下げをどちらにするかもオプション画面つくってユーザーが選択できるようにしてもよいかもしれません。