| 
    
     |  | ▼ハチ さん: ご回答さらにありがとうございます。
 ただ、実行後にb1から時間入力セルに#NAME?
 と出ます。
 10:30以降は書き換えしません。
 すみません。
 
 >▼kaoru さん:
 >>▼ハチ さん:
 >>>丸めの基準を明確したほうが良いのでは?
 >>>9:10ならどっちですか?
 >>7:00以下なら7:00です
 >>7:00以上8:30以下なら8:30です
 >>8:30以上9:00以下なら9:00です
 >>9:00以上10:30以下なら10:30です。
 >>よろしくお願いいたします。
 >>関数で表現すると(:はエラーになりますが・・)
 >>=if(H14<7:00,7:00,if(and(H14<8:30,H14>7:00),8:30,(if(and(H14<9:00,H14>8:30),9:00,(if(and(H14<10:30,H14>9:00),10:30,h14))))
 >> です。
 >
 >10:30以降は・・
 >なんでしょう?
 >
 >Option Explicit
 >
 >Sub Time_test()
 >
 >'C列を作業列に使う。困る場合はOffsetの値を変更
 >With ActiveSheet
 >  With .Range("B1", .Range("B65536").End(xlUp))
 >    .Offset(, 1).Formula = "=Time_Round(B1)"
 >    .Value = .Offset(, 1).Value
 >    .Offset(, 1).Clear
 >  End With
 >End With
 >
 >End Sub
 >
 >Function Time_Round(OrgT As Date) As Date
 >
 >Select Case OrgT
 >  Case Is <= CDate("7:00")
 >    Time_Round = CDate("7:00")
 >  Case Is <= CDate("8:30")
 >    Time_Round = CDate("8:30")
 >  Case Is <= CDate("9:00")
 >    Time_Round = CDate("9:00")
 >  Case Is <= CDate("10:30")
 >    Time_Round = CDate("10:30")
 >  Case Else
 >    'それ以降は・・適当に12:00
 >    Time_Round = CDate("12:00")
 >  End Select
 >
 >End Function
 
 |  |