電子書籍の厳選無料作品が豊富!

いつもお世話になります。
Excel vba でユーザーフォームのテキストに開始時間を入力する。
例えば、09:11  と入力すれば 09:00
    09:18  と入力すると 09:15
と表示したいのですがどうすればよいでしょうか?

宜しくお願い致します。

A 回答 (1件)

こんにちは



例示から想像すると、端数は切捨てで良いものと解釈しました。

例えば、変数 d に入力値(TextBox1.Valueなど)が入っているとして、
 Dim t As Date
 t = Int(TimeValue(d) * 24 * 4) / 24 / 4
等とすれば、変数 t にシリアル値で15分刻みの時刻が得られます。

※ 入力値のチェックは行っていませんので、事前に、時刻形式になっていることをチェックしておく必要があります。
    • good
    • 0
この回答へのお礼

大変有難う御座いました。m(__)m
うまく行きました。
With UserForm1
s = Len(.TextBox5)
If s <= 2 Then
.TextBox5 = Left(.TextBox5, s) & ":" & 0
ElseIf s = 3 Then
.TextBox5 = Left(.TextBox5, 1) & ":" & Right(.TextBox5, 2)
Else
.TextBox5 = Left(.TextBox5, 2) & ":" & Right(.TextBox5, 2)
End If
.TextBox5 = Format(.TextBox5, "hh:mm")


Dim t As Date
Dim d As String

d = .TextBox5.Value

t = Int(TimeValue(d) * 24 * 4) / 24 / 4
MsgBox t

.TextBox5.Value = Format(t, "hh:mm")

End With

お礼日時:2021/08/26 16:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!