|
最近、ここでお世話になっています。VBA初心者です。
ユーザーフォームで入力したデーターをワークシートに転記しています。
そのデーターを閲覧するのに、ユーザーフォームで表示できるようにしたいと思い、本をまねてコードを入力しました。
新規登録はUserForm3を表示し、データー閲覧はUserForm4を表示するように、ワークシートのボタンに設定しています。
ワークシート名:データーベース
入力データー名:患者ID
氏名
性別
生年月日
年齢
入院・外来
発症日・起算日
主治医・処方医
診断名
種別
算定期限
転機
新規登録ボタン:クリックするとデーター入力用のユーザーフォームを表示
(ユーザーフォーム名:UserForm3)
データー閲覧ボタン:データー閲覧用のユーザーフォームを表示
(ユーザーフォーム名:UserForm4)
UserForm4:
患者ID→TextBox1 氏名→TextBOx2
性別→Frame8内に「男」はOptionButton1、「女」はOptionButton2
生年月日→TextBox3 年齢→TextBox4
入院・外来→Frame2内に「入院」はOptionButton3、「外来」はOptionButton4
入院日→TextBox5 診断名→TextBox6 主治医・処方医→TextBox9
種別→Frame9内に CheckBox1〜CheckBox8まで
発症日・起算日→TextBox7 算定期限日→TextBox8
転機→Frame10内にCheckBox9〜CheckBox12
<前 →CommandButton9 次> →CommandButton10
閉じる →CommandButton11
以下の、コードは行の取得が上手くいくか分からなかったので、TextBox1(患者ID)とTextBox2(氏名)とOptionButton1・2(男性・女性の選択)だけ、始めに設定しようと思って試しにしてみました。[Database]はワークシート(名:データーベース)のデーター入力部分5行分と名前(患者IDや氏名・性別と書いてある部分)を選択した範囲の名前です。下記を入力後、実行をクリックしましたが、特にコード中には問題はなかったです(赤くなっていたり、黄色になっていませんでした)。しかし、データー閲覧のユーザーフォームには、患者IDや氏名や性別の表示が出来ていませんでした。COUNT関数とCallステートメントの入力がおかしいでしょうか?ご教授お願い致します。
-------------------------------------------------------------------
Dim 表示行 As Long
Dim 最終行 As Long
Option Explicit
Private Sub UserForm4_Initialize()
表示行 = 2 →先頭レコードが2行目からなので、表示行には2を代入
最終行 = WorksheetFunction.CountA([Database].Resize(, 1))
→COUNT関数を使って、左端列の行数を数えて代入
Call データー表示
End Sub
Private Sub CommandButton9_Click()
If 最終行 <= 2 Then
Beep
Else
表示行 = 表示行 - 1
Call データー表示
End If
End Sub
Private Sub CommandButton10_Click()
If 最終行 >= 最終行 Then
Beep
Else
表示行 = 表示行 + 1
Call データー表示
End If
End Sub
Private Sub CommandButton11_Click()
Unload UserForm4
End Sub
Private Sub データー表示()
TextBox1 = [Database].Cells(表示行, 1)
TextBox2 = [Database].Cells(表示行, 2)
If [Datebase].Cells(表示行, 3) = "男性" Then
OptionButton1.Value = True
Else
OptionButton2.Value = True
End If
End Sub
---------------------------------------------------------------------
|
|