今回は鑑別報告書作成画面を他のユーザーフォームとリンクさせるコードを書いていきます。

 

とっても簡単です。それではいきましょう。

Showメソッドについて

vba5-8-1ユーザーフォームfrmInputの検索ボタンをダブルクリック。または右クリックからコードの表示。

 

vba5-8-2

frmDSearch.Show

と入力します。Showはユーザーフォームを表示するメソッドになります。

 

vba5-8-3採用薬新規登録ボタンをダブルクリック。

 

vba5-8-4

frmDRegister.Show

と入力します。

 

vba5-8-5続いて採用薬修正・削除ボタンをダブルクリック。

 

vba5-8-6

frmDCorrect.Show

と入力します。

 

vba5-8-7続いて閉じるボタンをダブルクリックして…

 

vba5-8-8

Unload Me

と入力します。

他のユーザーフォームの値を転記する

上の画像のようにfrmInputの検索ボタンを押すとfrmDSearchを表示されます。

 

さてここで、決定ボタンを押した時どのような処理が行われるとよいでしょうか?

 

frmInputのテキストボックスに医薬品情報が入ればOKですね。

 

vba5-8-10では上の画像のように、「frmDSearch→オブジェクトの表示」を選択して下さい。

 

vba5-8-11決定ボタンをダブルクリックします。

 

vba5-8-12そして上の画像のようにコードを書いていきます。

 

Private Sub btnDecide_Click()

If txtDname = “” Then
MsgBox “薬剤を選択して下さい。”, vbExclamation, “確認”
Exit Sub
End If

With frmInput
.txtDname = txtDname.Text
.txtGname = txtGname.Text
.txtKigou = txtKigou.Text
.txtEffect = txtEffect.Text
.txtSei1 = txtSei1.Text
.txtSei2 = txtSei2.Text
.txtSei3 = txtSei3.Text
.txtSei4 = txtSei4.Text
.txtKou1 = txtKou1.Text
.txtKou2 = txtKou2.Text
.txtKou3 = txtKou3.Text
.txtKou4 = txtKou4.Text
.txtKubun = cboKubun.Value
.txtTani = cboTani.Value
End With

Unload Me

End Sub

それでは順番に解説していきます。

If txtDname = “” Then
MsgBox “薬剤を選択して下さい。”, vbExclamation, “確認”
Exit Sub
End If

「もしtxtDnameが空欄の時、薬剤を選択して下さいと表示する」

 

これはつまり、リストボックス内の医薬品を選択していない状態の時の注意喚起ですね。

 

With frmInput
.txtDname.Text = txtDname.Text

「frmInputのtxtDnameにfrmDSearchのtxtDnameの値を入れる。」

 

これでfrmDSearchで選択した医薬品情報がfrmInputに転記されます。

 

その後はfrmInputに戻る必要がありますね。なので…

 

Unload Me

検索画面が閉じて、鑑別報告書作成画面に戻ります。

 

最後にメニュー画面を開きましょう。

 

vba5-8-13frmMenuで「右クリック→オブジェクトの表示」

 

vba5-8-14新規作成ボタンをダブルクリック。

 

vba5-8-15

frmInput.Show

と入力します。

 

実際にfrmInputを起動して、きちんと選択した薬剤情報が入るか確かめてみて下さい。

 

それでは今回は以上で終了となります。お疲れ様でした。

 

次回は医薬品情報をワークシートに転記するコードについて解説します。