|
▼Hirofumi さん:
>こんなかな?
>
>Sub Test()
>
> Dim strTime As String
> Dim dtmTime As Date
> Dim dtmResult As Date
>
> strTime = InputBox("時刻を入力してください。hh.mm.ss", "時刻入力")
> If strTime <> "" Then
> If IsDate(strTime) Then
> dtmTime = TimeValue(strTime)
> dtmResult = dtmTime - #12:10:00 AM#
> If dtmResult < 0 Then '★追加
> dtmResult = dtmResult + 1 '★追加
> End If '★追加
> With Sheets("Sheet1")
> With .Range("B1")
> .NumberFormatLocal = "hh.mm.ss"
> .Value = dtmTime
> End With
> .Range("B2").Value = Hour(dtmResult)
> .Range("B3").Value = Minute(dtmResult)
> .Range("B4").Value = Second(dtmResult)
> With .Range("B5")
> .NumberFormatLocal = "hh.mm.ss"
> .Value = dtmResult
> End With
> End With
> Else
> MsgBox "時刻が入力されませんでした。最初からやり直してください"
> Exit Sub
> End If
> End If
>
>End Sub
>
>PS:
>余談ですが、
>質問時のコードでtimeと言う変数名を使っていますが、VBAにTimeと言うステートメント、関数が有ります
>因って、予約名と言って本来は使わない、使え無い名前です
>今回、Dimで変数宣言されているから変数として動いている様ですが、此れで変数宣言されていないで
>
>Time = InputBox("時刻を入力してください。hh.mm.ss", "時刻入力")
>
>等とすると、Systemの時間が変更されてしまいます
>こう言う事とを回避する為に、成るべく変数名に頭3文字程度のプリフィックスを付けた方が無難です
>(使いたい変数名は、大抵が予約名です)
Hirofumi 様
ありがとうございました。
アドバイスまでいただき大変勉強になりました。
構文は大切に使わせていただきます。
|
|