| 
    
     |  | ▼あすなろ さん: >■どうしても分かりませんので教えてください。
 >最初にインプットBOXを表示させて時刻をhh.mm.ssの形式で入力させます。
 >その後入力した時刻から10分前の時刻を取得したいのです。
 >下記のようにVBAを構成しましたが
 >分(fun)が9以下を認識していないようで
 >End Ifまで進んでしまいます。
 >やりたい事は10分前の時刻取得なので
 >例えば入力した分が5分だと10分前は55分となります。
 >どのようにすれば宜しいのでしょうか?
 >
 >■実はまだこの後に取得した10分前の時、分、秒から
 >hh.mm.ssの形式への表示もしなければなりません。
 >他にhh.mm.ssの形式で10分前の時刻を取得する良い方法があればご教授願います。
 >
 >Sub auto_open()
 >  Dim time As String
 >  Dim zi As String
 >  Dim fun As String
 >   time = InputBox("時刻を入力してください。hh.mm.ss", "時刻入力")
 >  If time <> "" Then
 >    Sheets("Sheet1").Select
 >    Range("B1").Value = time
 >    zi = Left(time, 2)
 >    fun = Mid(time, 4, 2)
 >    '時の取得
 >    If fun <= 9 Then
 >    Range("b2").Value = zi - 1
 >    ElseIf zi = 0 Then
 >    Range("b2").Value = 23
 >    End If
 >    Range("b2").Value = zi
 >    '分の取得
 >    If fun <= 9 Then
 >    Range("b3").Value = fun + 50
 >    End If
 >    Range("b3").Value = fun - 10
 >    '秒の取得
 >    Range("B4").Value = Right(time, 3)
 >  Else
 >   MsgBox "時刻が入力されませんでした。最初からやり直してください"
 >  Exit Sub
 >  End If
 > End Sub
 
 
 MsgBox DateTime.DateAdd("n", -5, Now)
 
 
 DateTimeを使えば簡単 関数よりどりみどり。
 DateTime. で コード支援が働くので(でないならCTRL+スペースキー)
 お好きな関数をどうぞ!!
 
 ついでに
 DateTime.DateAddなら
 DateAddをダブルクリックして選択状態にして、F1でヘルプ出現。
 
 |  |