このフォームは患者さんに使う注射薬を確認編集するための物です。
コンボボックスに注射の一覧が表示されその中から選ぶことで変更します。
コンボボックスへ読み込む注射薬の一覧はエクセルのワークシートに記載しています。 注射薬に限らず、ほぼすべてのフォームのリストボックスやコンボボックスへ読み込むデータはまとめてワークシートに記載しています。各フォームはそこから選択肢であるリストを読み込んでいます。こうすることで一々Visual Basic Editorを開いてコードをいじらなくてもリストの内容を書き換えられるようにしてあります。
リストの内容をまとめて書き表しているエクセルのワークシートです。(下記図参照)
このフォームのコードは以下記載です。 (続きを読むをクリックしてください)
Dim Touseki As Object
Dim iro As Integer
Dim MaxRows As Long
Dim Maxl As Long
Dim ListIdx As Integer
Dim IdxNo As Integer
Private Type MemberData
Simei1 As String
Simei4 As String
Ocyusya(3, 11) As String
Yobi(3) As String
iro As Integer
HenkoSwitch As Boolean
End Type
Dim OldMember() As MemberData
‘Dim HenkoSwitch() As Boolean
Dim ChangeSwitch As Boolean
Dim l As Integer
Private Sub CommandButton2_Click()
Dim Namae As String
Dim MeNamae As Object
OptionButton1.Value = False
OptionButton2.Value = False
‘OptionButton3.Value = False
Namae = TextBox1.Text
Set MeNamae = Cyusya
Call 検索(Namae, MeNamae)
End Sub
Private Sub CommandButton3_Click()
Call 個別へ表示(ByVal l)
End Sub
Private Sub UserForm_Initialize()
Set Touseki = Worksheets("透析患者リスト")
Touseki.Activate
MaxRows = Touseki.UsedRange.Rows.Count
ListIdx = 0
‘ChangeSwitch = False
Call Member
OptionButton1.Value = True
注射薬テンプ作成
End Sub
Private Sub Member()
ReDim OldMember(MaxRows)
Dim K As Byte
l = 0
With Touseki
For i = 3 To MaxRows
With OldMember(l)
.Simei1 = Touseki.Cells(i, 3)
.Simei4 = Touseki.Cells(i, 2)
For K = 0 To 2
.Ocyusya(K, 0) = Touseki.Cells(i, 70 + 9 * K) ‘エルシト
.Ocyusya(K, 1) = Touseki.Cells(i, 71 + 9 * K) ‘キド
.Ocyusya(K, 2) = Touseki.Cells(i, 72 + 9 * K) ‘グリマ
.Ocyusya(K, 3) = Touseki.Cells(i, 73 + 9 * K) ‘ミノ
.Ocyusya(K, 4) = Touseki.Cells(i, 74 + 9 * K) ‘ノイロ
.Ocyusya(K, 5) = Touseki.Cells(i, 75 + 9 * K) ‘アデラ
.Ocyusya(K, 6) = Touseki.Cells(i, 76 + 9 * K) ‘エポ
.Ocyusya(K, 7) = Touseki.Cells(i, 77 + 9 * K) ‘オキサ
.Ocyusya(K, 8) = Touseki.Cells(i, 78 + 9 * K) ‘リクセル
.Yobi(K) = Touseki.Cells(i, 33 + K)
Next
.HenkoSwitch = False
.iro = Touseki.Cells(i, 1).Interior.ColorIndex
End With
‘HenkoSwitch(l) = False
l = l + 1
Next
Maxl = l
End With
End Sub
Private Sub ListBox1_Click()
If ChangeSwitch = True Then
保存忘れ防止装置
End If
ListIdx = ListBox1.ListIndex
Namae = ListBox1.List(ListIdx)
l = Kensaku(ByVal Namae)
Call 個別へ表示(ByVal l)
End Sub
Private Sub Optionbutton1_Change()
If OptionButton1.Value = True Then
If ChangeSwitch = True Then
保存忘れ防止装置
End If
ListIdx = 0
氏名box
End If
End Sub
Private Sub CxBtn_Click()
If ChangeSwitch = True Then
保存忘れ防止装置
End If
Rtn = MsgBox("転送せずに終了します。それでよければOKを押してください。", vbOKCancel)
If Rtn = vbOK Then
Unload Cyusya
AboutForm.Show
End If
End Sub
Private Sub ExitBtn_Click()
If ChangeSwitch = True Then
保存忘れ防止装置
End If
Rtn = MsgBox("今まで行った変更を、ワークシートへ転送します。よろしければOKを押してください。", vbOKCancel)
If Rtn = vbOK Then
変更を保存して終了
Unload Cyusya
MsgBox ("転送を終了しました。")
AboutForm.Show
End If
End Sub
Private Sub Optionbutton2_Change()
If OptionButton2.Value = True Then
If ChangeSwitch = True Then
保存忘れ防止装置
End If
ListIdx = 0
氏名box
End If
End Sub
Private Sub InputBtn_Cli
ck()
‘ChangeSwitch = False
‘Call 注射変数の更新(ByVal l)
End Sub
Private Sub 氏名box()
Dim CelNo(3) As String
Set Touseki = Worksheets("透析患者リスト")
Cyusya.ListBox1.Clear
ListIdx = 0
If OptionButton1.Value = True Then
l = 0
Do ‘赤(月水金AM)の処理
iro = OldMember(l).iro
Do While iro = 3
If OldMember(l).iro <> 3 Then
Exit Do
End If
Cyusya.ListBox1.AddItem (OldMember(l).Simei1)
l = l + 1
Loop
l = l + 1
Loop While l < Maxl
l = 0
Do ‘青(月水金PM)の処理
iro = OldMember(l).iro
Do While iro = 5
If OldMember(l).iro <> 5 Then
Exit Do
End If
Cyusya.ListBox1.AddItem (OldMember(l).Simei1)
l = l + 1
Loop
l = l + 1
Loop While l < Maxl
With Cyusya.ListBox1
.ListIndex = ListIdx
End With
End If
If OptionButton2.Value = True Then
l = 0
Do ‘黄(火木土AM)の処理
iro = OldMember(l).iro
Do While iro = 6
If OldMember(l).iro <> 6 Then
Exit Do
End If
Cyusya.ListBox1.AddItem (OldMember(l).Simei1)
l = l + 1
Loop
l = l + 1
Loop While l < Maxl
l = 0
Do ‘緑(火木土PM)の処理
iro = OldMember(l).iro
Do While iro = 4
If OldMember(l).iro <> 4 Then
Exit Do
End If
Cyusya.ListBox1.AddItem (OldMember(l).Simei1)
l = l + 1
Loop
l = l + 1
Loop While l < Maxl
With Cyusya.ListBox1
.ListIndex = ListIdx
End With
End If
End Sub
Sub 個別へ表示(ByVal l As Integer)
Cyusya.ComboBox1.Text = OldMember(l).Ocyusya(0, 0)
Cyusya.ComboBox4.Text = OldMember(l).Ocyusya(0, 1)
Cyusya.ComboBox7.Text = OldMember(l).Ocyusya(0, 2)
Cyusya.ComboBox10.Text = OldMember(l).Ocyusya(0, 3)
Cyusya.ComboBox13.Text = OldMember(l).Ocyusya(0, 4)
Cyusya.ComboBox16.Text = OldMember(l).Ocyusya(0, 5)
Cyusya.ComboBox19.Text = OldMember(l).Ocyusya(0, 6)
Cyusya.ComboBox22.Text = OldMember(l).Ocyusya(0, 7)
Cyusya.ComboBox25.Text = OldMember(l).Ocyusya(0, 8)
Cyusya.ComboBox2.Text = OldMember(l).Ocyusya(1, 0)
Cyusya.ComboBox5.Text = OldMember(l).Ocyusya(1, 1)
Cyusya.ComboBox8.Text = OldMember(l).Ocyusya(1, 2)
Cyusya.Combo
Box11.Text = OldMember(l).Ocyusya(1, 3)
Cyusya.ComboBox14.Text = OldMember(l).Ocyusya(1, 4)
Cyusya.ComboBox17.Text = OldMember(l).Ocyusya(1, 5)
Cyusya.ComboBox20.Text = OldMember(l).Ocyusya(1, 6)
Cyusya.ComboBox23.Text = OldMember(l).Ocyusya(1, 7)
Cyusya.ComboBox26.Text = OldMember(l).Ocyusya(1, 8)
Cyusya.ComboBox3.Text = OldMember(l).Ocyusya(2, 0)
Cyusya.ComboBox6.Text = OldMember(l).Ocyusya(2, 1)
Cyusya.ComboBox9.Text = OldMember(l).Ocyusya(2, 2)
Cyusya.ComboBox12.Text = OldMember(l).Ocyusya(2, 3)
Cyusya.ComboBox15.Text = OldMember(l).Ocyusya(2, 4)
Cyusya.ComboBox18.Text = OldMember(l).Ocyusya(2, 5)
Cyusya.ComboBox21.Text = OldMember(l).Ocyusya(2, 6)
Cyusya.ComboBox24.Text = OldMember(l).Ocyusya(2, 7)
Cyusya.ComboBox27.Text = OldMember(l).Ocyusya(2, 8)
Cyusya.Label43.Caption = OldMember(l).Simei4
Cyusya.Frame1.Caption = OldMember(l).Yobi(0)
Cyusya.Frame2.Caption = OldMember(l).Yobi(1)
Cyusya.Frame3.Caption = OldMember(l).Yobi(2)
‘Call 曜日更新(ByVal l)
ChangeSwitch = False
End Sub
Public Function Kensaku(ByVal Namae As String) As Integer
For l = 0 To Maxl
If OldMember(l).Simei1 = Namae Then
Kensaku = l
Exit For
End If
Next
End Function
Sub 保存忘れ防止装置()
‘Dim Rtn As Byte
‘Rtn = MsgBox(OldMember(l).Simei4 & "さんの変更を保存しますか?", vbYesNo, "保存確認")
‘If Rtn = vbYes Then
‘ InputBtn_Click
‘End If
If ChangeSwitch = True Then
ChangeSwitch = False
Call 注射変数の更新(ByVal l)
‘氏名box
End If
‘ChangeSwitch = False
End Sub
Sub 変更を保存して終了()
Dim CelNo(3) As String
Dim i As Integer
Dim K As Byte
Dim j As Byte
l = 0
Cyusya.Hide
For i = 3 To MaxRows
If OldMember(l).HenkoSwitch = True Then
With OldMember(l)
‘名前転送
Touseki.Cells(i, 3).Activate
Touseki.Cells(i, 3) = .Simei1
‘注射薬の転送
For K = 0 To 2
For j = 0 To 8
Touseki.Cells(i, 70 + j + K * 9).Activate
Touseki.Cells(i, 70 + j + K * 9) = .Ocyusya(K, j) ‘エルシト
Next
Next
End With
End If
l = l + 1
Next
End Sub
Sub 注射変数の更新(ByVal l As Integer)
‘HenkoSwitch(l) = True
With OldMember(l)
.HenkoSwitch = True
.Ocyusya(0, 0) = Cyusya.ComboBox1.Text
.Ocyusya(0, 1) = Cyusya.ComboBox4.Text
.Ocyusya(0, 2) = Cyusya.ComboBox7.Text
.Ocyusya(0, 3) = Cyusya.ComboBox10.Text
.Ocyusya(0, 4) = Cyusya.ComboBox13.Text
.Ocyusya(0, 5) = Cyusya.ComboBox16.Text
.Ocyusya(0, 6) = Cyusya.ComboBox19.Text
.Ocyusya(0, 7) = Cyusya.ComboBox22.Text
.Ocyusya(0, 8) = Cyusya.ComboBox25.Text
.Ocyusya(1, 0) = Cyusya.ComboBox2.Text
.Ocyusya(1, 1) = Cyusya.ComboBox5.Text
.Ocyusya(1, 2) = Cyusya.ComboBox8.Text
.Ocyusya(1, 3) = Cyusya.ComboBox11.Text
.Ocyusya(1, 4) = Cyusya.ComboBox14.Text
.Ocyusya(1, 5) = Cyusya.ComboBox17.Text
.Ocyusya(1, 6) = Cyusya.ComboBox20.Text
.Ocyusya(1, 7) = Cyusya.ComboBox23.Text
.Ocyusya(1, 8) = Cyusya.ComboBox26.
Text
.Ocyusya(2, 0) = Cyusya.ComboBox3.Text
.Ocyusya(2, 1) = Cyusya.ComboBox6.Text
.Ocyusya(2, 2) = Cyusya.ComboBox9.Text
.Ocyusya(2, 3) = Cyusya.ComboBox12.Text
.Ocyusya(2, 4) = Cyusya.ComboBox15.Text
.Ocyusya(2, 5) = Cyusya.ComboBox18.Text
.Ocyusya(2, 6) = Cyusya.ComboBox21.Text
.Ocyusya(2, 7) = Cyusya.ComboBox24.Text
.Ocyusya(2, 8) = Cyusya.ComboBox27.Text
End With
End Sub
Sub 注射薬テンプ作成()
Dim Tate As Integer
Dim Yoko As Integer
Dim Tempu As String
Set Tempulist = Worksheets("テンプレート集")
‘エルシトニンのテンプレート
Tate = 3
Yoko = 26
Tempu = ""
Do
Tempu = Tempulist.Cells(Tate, Yoko)
ComboBox1.AddItem (Tempu)
ComboBox2.AddItem (Tempu)
ComboBox3.AddItem (Tempu)
Tate = Tate + 1
Loop While Tempu <> ""
‘キドミンのテンプレート
Tate = 3
Yoko = 27
Tempu = ""
Do
Tempu = Tempulist.Cells(Tate, Yoko)
ComboBox4.AddItem (Tempu)
ComboBox5.AddItem (Tempu)
ComboBox6.AddItem (Tempu)
Tate = Tate + 1
Loop While Tempu <> ""
‘グリマッケンのテンプレート
Tate = 3
Yoko = 28
Tempu = ""
Do
Tempu = Tempulist.Cells(Tate, Yoko)
ComboBox7.AddItem (Tempu)
ComboBox8.AddItem (Tempu)
ComboBox9.AddItem (Tempu)
Tate = Tate + 1
Loop While Tempu <> ""
‘キョウミノのテンプレート
Tate = 3
Yoko = 29
Tempu = ""
Do
Tempu = Tempulist.Cells(Tate, Yoko)
ComboBox10.AddItem (Tempu)
ComboBox11.AddItem (Tempu)
ComboBox12.AddItem (Tempu)
Tate = Tate + 1
Loop While Tempu <> ""
‘ノイロのテンプレート
Tate = 3
Yoko = 30
Tempu = ""
Do
Tempu = Tempulist.Cells(Tate, Yoko)
ComboBox13.AddItem (Tempu)
ComboBox14.AddItem (Tempu)
ComboBox15.AddItem (Tempu)
Tate = Tate + 1
Loop While Tempu <> ""
‘アデラのテンプレート
Tate = 3
Yoko = 31
Tempu = ""
Do
Tempu = Tempulist.Cells(Tate, Yoko)
ComboBox16.AddItem (Tempu)
ComboBox17.AddItem (Tempu)
ComboBox18.AddItem (Tempu)
Tate = Tate + 1
Loop While Tempu <> ""
‘エポのテンプレート
Tate = 3
Yoko = 32
Tempu = ""
Do
Tempu = Tempulist.Cells(Tate, Yoko)
ComboBox19.AddItem (Tempu)
ComboBox20.AddItem (Tempu)
ComboBox21.AddItem (Tempu)
Tate = Tate + 1
Loop While Tempu <> ""
‘オキサのテンプレート
Tate = 3
Yoko = 33
Tempu = ""
Do
Tempu = Tempulist.Cells(Tate, Yoko)
ComboBox22.AddItem (Tempu)
ComboBox23.AddItem (Tempu)
ComboBox24.AddItem (Tempu)
Tate = Tate + 1
Loop While Tempu <> ""
‘リクセルのテンプレート
Tate = 3
Yoko = 34
Tempu = ""
Do
Tempu = Tempulist.Cells(Tate, Yoko)
ComboBox25.AddItem (Tempu)
ComboBox26.AddItem (Tempu)
ComboBox27.AddItem (Tempu)
Tate = Tate + 1
Loop While Tempu <> ""
End Sub
Private Sub ComboBox1_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox10_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox11_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox12_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox13_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox14_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox15_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox16_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox17_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox18_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox19_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox2_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox20_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox21_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox22_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox23_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox24_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox25_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox26_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox27_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox28_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox29_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox3_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox30_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox31_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox32_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox33_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox4_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox5_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox6_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox7_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox8_Change()
ChangeSwitch = True
End Sub
Private Sub ComboBox9_Change()
ChangeSwitch = True
End Sub
コメント