|
ユーザーフォームを使用して、顧客(リハビリ患者)リストをワークシートに転記するVBAを作っています。計算をしないといけない項目が数箇所あって、まず、生年月日の計算からコードを作っているところです。計算結果までボタンのクリックでできるようになりましたが、計算結果が、ワークシートに転記できず、「######」と代入されてしまいます。そのほかの、テキストボックスやチェックボックスの内容はきちんと転記されています。生年月日(TextBox3としています)も転記できません。年齢計算の結果はTextBox4に表示されるようにしています。
生年月日と年齢の計算結果をシートに転記できるようにしたいので、教えて下さい。
エクセルは2003でPCはXPです。最近VBAを知ったばかりで、独学状態です。
ご指導宜しくお願いします。
以下、現在まで作っているコードです。
Private Sub UserForm3_Initialize()
Dim チェックボックス As Control
Dim 日 As Date
日 = UserForm3.TextBox3.Text
TextBox1.Text = ""
TextBox2.Text = ""
TextBox6.Text = ""
TextBox9.Text = ""
TextBox4.Text = ""
OptionButton1.Value = True
OptionButton3.Value = True
For Each チェックボックス In Freme9.Controls
チェックボックス.Value = False
Next
For Each チェックボックス In Freme10.Controls
チェックボックス.Value = False
Next
End Sub
Private Sub CommandButton3_Click() ここからが年齢計算です。
With Me.TextBox3
If Not IsDate(.Value) Then Exit Sub
Me.TextBox4.Value = Application.Evaluate("DATEDIF(""" _
& CDate(.Value) & """,TODAY(),""Y"")")
End With →ここまでで、歳のTextBox4に年齢の値が計算されていました。
End Sub
Private Sub CommandButton1_Click() →ここからが転記の部分です。
Dim z As Long
Dim 確認 As Integer
確認 = MsgBox("データーを登録します。" & "よろしいですか?", vbYesNo)
If 確認 <> vbYes Then Exit Sub
z = Range("データーベース!A4").CurrentRegion.Rows.Count
Range("データーベース!A" & z + 4).Offset(0, 0).Value = TextBox1.Text
Range("データーベース!A" & z + 4).Offset(0, 1).Value = TextBox2.Text
Range("データーベース!A" & z + 4).Offset(0, 8).Value = TextBox6.Text
Range("データーベース!A" & z + 4).Offset(0, 4).Value = TextBox3.Text
Range("データーベース!A" & z + 4).Offset(0, 7).Value = TextBox9.Text
Range("データーベース!A" & z + 4).Offset(0, 5).Value = TextBox4.Text
→すぐ上の部分が年齢の値を転記するコードとして入力しています。
If OptionButton1.Value = True Then
Range("データーベース!A" & z + 4).Offset(0, 2).Value = "男性"
Else
Range("データーベース!A" & z + 4).Offset(0, 2).Value = "女性"
End If
If OptionButton3.Value = True Then
Range("データーベース!A" & z + 4).Offset(0, 5).Value = "入院"
Else
Range("データーベース!A" & z + 4).Offset(0, 5).Value = "外来"
End If
If CheckBox1.Value = True Then _
Range("データーベース!A" & z + 4).Offset(0, 9).Value = "運動器"
If CheckBox2.Value = True Then _
Range("データーベース!A" & z + 4).Offset(0, 9).Value = "脳血管"
If CheckBox3.Value = True Then _
Range("データーベース!A" & z + 4).Offset(0, 9).Value = "呼吸器"
If CheckBox4.Value = True Then _
Range("データーベース!A" & z + 4).Offset(0, 9).Value = "心大血管"
If CheckBox5.Value = True Then _
Range("データーベース!A" & z + 4).Offset(0, 9).Value = "手技消炎"
If CheckBox6.Value = True Then _
Range("データーベース!A" & z + 4).Offset(0, 9).Value = "器具消炎"
If CheckBox9.Value = True Then _
Range("データーベース!A" & z + 4).Offset(0, 11).Value = "終了"
If CheckBox10.Value = True Then _
Range("データーベース!A" & z + 4).Offset(0, 11).Value = "中止"
If CheckBox11.Value = True Then _
Range("データーベース!A" & z + 4).Offset(0, 11).Value = "転院・入所"
If CheckBox12.Value = True Then _
Range("データーベース!A" & z + 4).Offset(0, 11).Value = "死亡退院"
Unload UserForm3
End Sub
Private Sub CommandButton2_Click()
Unload UserForm3
End Sub
|
|