こんにちは。
UserFormで気をつけることは、時間で保有してしまうと、24時間以内ですから、それを越えたりする時は、文字で保管しなければなりません。今回はそうでないかもしれませんが、最初から文字列にしています。一応、汎用性のために、保有する変数は、Variant ですから間違えないようにしてください。
一応、UserFormモジュール全部を書いておきます。
'//
Dim TimeA 'モジュール変数(Variant型)
Dim TimeB
Private Sub TextBox1_AfterUpdate()
If IsNumeric(TextBox1.Value) Then
TimeA = TextBox1.Value
Else
MsgBox "時間を入れてください。", 48
TextBox1.Value = ""
End If
End Sub
Private Sub TextBox2_AfterUpdate()
If IsNumeric(TextBox2.Value) And Val(TextBox2.Value) < 60 Then
TimeA = TimeA & ":" & TextBox2.Value
Else
MsgBox "分を入れてください。(59分まで)", 48
TextBox2.Value = ""
End If
End Sub
Private Sub TextBox3_AfterUpdate()
If IsNumeric(TextBox3.Value) Then
TimeB = TextBox3.Value
Else
MsgBox "時間を入れてください。", 48
TextBox3.Value = ""
End If
End Sub
Private Sub TextBox4_AfterUpdate()
If IsNumeric(TextBox4.Value) And Val(TextBox4.Value) < 60 Then
TimeB = TimeB & ":" & TextBox4.Value
Else
MsgBox "分を入れてください。(59分まで)", 48
TextBox4.Value = ""
End If
End Sub
Private Sub CommandButton1_Click()
Dim i As Long
If TimeA <> "" And TimeB <> "" Then
ActiveSheet.Range("A1").Value = TimeA
ActiveSheet.Range("B1").Value = TimeB
tima = "": TimeB = ""
For i = 1 To 4
Me.Controls("TextBox" & i).Value = ""
Next
Else '二つの変数が空の場合。
ActiveSheet.Range("A1").ClearContents
ActiveSheet.Range("B1").ClearContents
End If
End Sub
'//