| 
    
     |  | ▼kaoru さん: >▼ハチ さん:
 >こんにちは、早速の回答ありがとうございます。
 >9:10の場合は10:30です。
 
 ??
 9:30ではなく10:30ですか?
 よくわかりません。
 Function内を変更してください。
 
 ユーザー定義関数を作る方法でやってみました。
 作業列にC列を使ってますので困るようだったら
 Offsetの値を変更してください。
 もっと簡単な方法がありそうな気がします。
 
 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
 
 Dim H, M As Integer 'H時、M分
 
 H = Hour(OrgT)
 M = Minute(OrgT)
 
 'このへんは適当に修正してください
 Select Case M
 Case Is < 10
 M = 0
 Case Is < 45
 M = 30
 Case Else
 M = 0
 H = H + 1
 End Select
 
 '24時以降は0:00に
 If H = 24 Then
 H = 0
 M = 0
 End If
 
 Time_Round = CDate(H & ":" & M)
 
 End Function
 
 |  |