病院で処方された薬や病気についてわかりやすく解説します

VBA講座2-19 医薬品登録後の処理を行うコード

ノートパソコンとハーブ

医薬品新規登録画面もついに最後の講座となりました。

今回は医薬品の新規登録を行った後、続けて入力する場合もありますので、
テキストボックスを空欄にし、コンボボックスを初期化(初期値を入れる)
するというコードを書いていきます。

スポンサーリンク

For Each~Next…ステートメント

 

テキストボックスを空欄にする方法で一番簡単なのは…

txtDname=””

txtGname=””

みたいな感じで一つ一つ書いていくという方法です。

これでも全然問題ありません。

 

しかし今回はコントロールもそんなに多くないので上記でもいいのですが、

たくさん配置した場合はちょっと大変です。コードの見た目も悪いです。

 

今回はユーザーフォームに配置されている全てのテキストボックスを空欄

にし、コンボボックスに初期値を入れるというコードを書いていきます。

 

 

vba2-19-1上の画像で赤枠で囲った部分を見て下さい。

これが今回追加するコードになります。それでは順に解説していきましょう。

 

Dim ctrl As Control

「変数ctrlをControlと宣言する。」

Controlはテキストボックスやコンボボックスなどを意味します。

 

For Each~Next…

これが今回の最重要ポイント。

繰り返しの動作を行う時に使用するステートメントです。

定型文として以下のように覚えてしまってもOKです。

 

For Each ctrl In Controls

If TypeName(ctrl) = “コントロール” Then

ctrl.Text = “”

End If

Next ctrl

「変数ctrlが”コントロール(textboxやcombobox等)”の場合そのコントロ

ールを空欄にする。」空欄にするという部分を別の動作にもできます。

複数のコントロールをまとめて動作したい時にはとても便利です。

For Each ctrl In Controls

If TypeName(ctrl) = “TextBox” Then

ctrl.Text = “”

End If

Next ctrl

「変数ctrlについて以下の繰り返し動作を行う。もし変数ctrlのタイプが

テキストボックスであればそのテキストボックスを空欄にする。そして

次のコントロールに進む(全てのコントロールを処理するまで)」

 

つまりユーザーフォーム上に配置されたテキストボックスを順番に空欄

にしていき、全部のテキストボックスが空欄になった段階で動作を終了

する、という意味になります。

 

cboTani.Value = cboTani.List(0)

cboKubun.Value = cboKubun.List(0)

これはもう簡単ですね。

「コンボボックス単位にコンボボックスのリストの一番上の値を入れる」

「コンボボックス区分にコンボボックスのリストの一番上の値を入れる」

 

コンボボックスについてはデフォルトの値を入れましょう。単位はT、区

分は○ですね。空欄にしてしまうとTや○でも選ぶ必要が出てきますので、

入力者のためにきちんと設定してあげます。最後に1つコードを書きます。

 

 

vba2-19-2メニュー画面のユーザーフォームを開いて、新規登録ボタンをダブルクリ

ックします。

 

 

vba2-19-3Private Sub btnRegister_Click()の下に

frmDRegister.Show

と書いて下さい。

 

これはfrmDregisterを表示するという意味です。つまりメニュー画面で新規

登録ボタンを押すと、医薬品新規登録画面が立ち上がるという事です。

 

メニュー画面は消えたわけではなく、その上に新規登録画面が表示される形

となります。

 

それではF5を押してメニュー画面を起動した後、新規登録ボタンを押して

みて下さい。そして新規登録画面が表示されるのを確認して下さい。

 

新規登録画面はこれで一旦完成とします。

医薬品引用ボタンのコードは別項で解説します。お疲れ様でした!
次の講座

スポンサーリンク

こちらの記事もおすすめです

関連記事

サイト内検索