さあいよいよ鑑別報告書作成画面のコードを書いていきますよ。

 

とはいえ、ほとんどが今までやったことの復習です。ここまで来た皆さんなら大丈夫。

 

今回はユーザーフォームを開いた時の処理を書きます。それではいきましょう。

スポンサーリンク

UserForm_Initialize()

もう何回もやっていますので大丈夫ですね。

 

vba5-5-1まずはfrmInputのコードを表示して…

 

vba5-5-2UserFormを選択。

 

vba5-5-3続いて横のInitializeを選択。

 

Private Sub UserForm_Click()
End Sub

は削除します。

 

Private Sub UserForm_Initialize()

Dim i As Integer, LastRow As Integer

LastRow = Worksheets(“基本マスタ”).Range(“C65536”).End(xlUp).Row

For i = 2 To LastRow
cboKa.AddItem Worksheets(“基本マスタ”).Cells(i, 3).Value
Next
cboKa.Value = cboKa.List(0)

End Sub

まずは診療科セルの読み込みを行います。上が完成形です。それでは順に解説していきましょう。

 

Dim i As Integer, LastRow As Integer

「変数iを整数、変数LastRowを整数と宣言する。」

 

LastRow = Worksheets(“基本マスタ”).Range(“C65536”).End(xlUp).Row

「変数LastRowにはワークシート基本マスタのC65536セルから上に向かってぶつかった行の値を入れる。」

 

診療科はC列なのでC65536セルとなりますね。

 

For i = 2 To LastRow

「変数iには2から変数LastRowの値を入れる。」

 

こうすればシステム作成後に候補をいくら追加してもコードを書き換える必要がありません。

 

cboKa.AddItem Worksheets(“基本マスタ”).Cells(i, 3).Value

「コンボボックスcboKaにアイテムを加える。そのアイテムとはワークシート基本マスタのセル(2,3)からセル(LastRow,3)の値。」

 

Next

「次に進む。変数2からLastRowまで繰り返す。」

 

cboKa.Value = cboKa.List(0)

「コンボボックスcboKaにリストの1行目(ここでは2F)を初期値として入れる。」

 

以上ですね。

 

F5を押して実行し、きちんと読み込まれているか確認して下さい。

スポンサーリンク

残りの項目も同様に入力

続いて残りの項目も同じように書いていきます。下の画像を参考にして下さい。

 

vba5-5-5

Private Sub UserForm_Initialize()

Dim i As Integer, LastRow As Integer

LastRow = Worksheets(“基本マスタ”).Range(“C65536”).End(xlUp).Row

For i = 2 To LastRow
cboKa.AddItem Worksheets(“基本マスタ”).Cells(i, 3).Value
Next
cboKa.Value = cboKa.List(0)

LastRow = Worksheets(“基本マスタ”).Range(“D65536”).End(xlUp).Row

For i = 2 To LastRow
cboPlace.AddItem Worksheets(“基本マスタ”).Cells(i, 4).Value
Next
cboPlace.Value = cboPlace.List(0)

LastRow = Worksheets(“基本マスタ”).Range(“E65536”).End(xlUp).Row

For i = 2 To LastRow
cboDoctor.AddItem Worksheets(“基本マスタ”).Cells(i, 5).Value
Next
cboDoctor.Value = cboDoctor.List(0)

LastRow = Worksheets(“基本マスタ”).Range(“F65536”).End(xlUp).Row

For i = 2 To LastRow
cboInput.AddItem Worksheets(“基本マスタ”).Cells(i, 6).Value
Next
cboInput.Value = cboInput.List(0)

LastRow = Worksheets(“基本マスタ”).Range(“G65536”).End(xlUp).Row

For i = 2 To LastRow
cboDocument.AddItem Worksheets(“基本マスタ”).Cells(i, 7).Value
Next
cboDocument.Value = cboDocument.List(0)

LastRow = Worksheets(“基本マスタ”).Range(“H65536”).End(xlUp).Row

For i = 2 To LastRow
cboYouhou.AddItem Worksheets(“基本マスタ”).Cells(i, 8).Value
Next
cboYouhou.Value = cboYouhou.List(0)

End Sub

大丈夫ですね。基本的に書き方は全て同じです。

セルに今日の日付を入れる方法~Date関数

続いて報告日ですが、これは今日の日付を最初から入れるように設定しましょう。基本的に持参薬鑑別は入院日当日に行いますからね。

 

コンボボックスYouhouの処理の後に以下を追加します。

txtJissibi.text = Date

Dateは今日の日付(厳密にはパソコンの日付)を入れるコードになります。

 

ちなみにNowだと更に時間も追加されます。さすがに時間までは不要ですので、今回はDateにします。

 

vba5-5-6もう一度F5を押してユーザーフォームを起動しましょう。上の画像のようになっていることを確認して下さい。

 

皆さんは自分でセルに設定した値が表示されていますね?

 

それでは今回は以上で終了です。お疲れ様でした。次回はスピンボタンの設定を行います。

>>Excel VBA講座 目次はこちら