今回はテキストボックスやコンボボックスに入力したデータを登録する時に、空欄がないかチェックするコードを書いていきます。
例えばネットで買い物をする時に個人情報を入力しますが、空欄があると「○を入力して下さい」みたいな感じで表示されますよね。
あれを再現します。ではいきましょう。
スポンサーリンク
登録時に空欄がないかチェックするコードを書く
ではまず医薬品新規登録画面の「登録ボタン」をダブルクリックして下さい。
これは「btnRegisterをクリックした時、以下の事を行う」という意味になります。
ここに画面に入力されたデータに空欄がないかをチェックするコードを書いていきますが、とても重要なステートメントがありますので解説します。
If~Then…ステートメント
まず薬品名。これは絶対に登録しなければなりません。
そこで「薬品名が入力されていないのに、登録ボタンを押してしまった場合の動作」を書いていきましょう。
上の画像の赤枠で囲った部分がそのコードです。それでは順番に解説していきます。
まず覚えて欲しいのが、下のIf~Then…ステートメントです。
意味は「もし~ならば…する」。
今回は
となっていますね。
上記のTextですが、ここではValueとの違いを説明しておきます。
TextとValueの違いとは?
valueは文字通り「値」です。入力したデータそのもの。一方textは「変換された文字列」になります。
もう少し具体的にみていきますね。
みなさんもたまに使いませんか?Excelでセルの表示形式を「通貨」にしたりとか。
その時10000とセルに入力すると「¥10000」と表示されますよね。この時…
・value→10000
・text→¥10000
となります。
「””」は「空欄」という意味です。ただ場合により2つの意味を持ちます。
「txtDnameが空欄である」と「txtDnameを空欄にする」です。
ここでは「txtDnameが空欄ならば」という意味で使用しています。
スポンサーリンク
メッセージボックス関数とSetFocusメソッド
まずは前半の「MsgBox”薬品名を入力して下さい”,」から解説していきます。
これは「メッセージボックスに薬品名を入力して下さいと表示する」という意味です。
上の画像を見て下さい。これがメッセージボックスです。4種類あります。
次に「vbExclamation」。
これは上の画像で黄色の三角形に!と表示されている絵(左上)がありますよね。それを意味します。
・vbQuestion→「?マーク」
・vbInformation→「iマーク」
・vbCritical→「×マーク」
になります。
ここでは注意喚起なので、一番左上のvbExclamationがちょうどいいんじゃないでしょうか。
続いて「”確認”」。これは各々のメッセージボックスの画像の左上を見てください。確認と表示されていますね。枠に表示したい文字列をここに入れます。
まあこれはぶっちゃけなくてもいいです(笑)。
その場合、「,”確認”」の「,」もしっかり削除するようにして下さい。エラーが発生します。ちなみになにも入力しない時は「Microsoft Excel」と表示されます。
次に3行目。
これはtxtDnameをSetFocusする、つまり…「テキストボックスtxtDnameにカーソルを合わせる」という意味です。
登録ボタンを押したが、薬品名が入力されていなかった。この時、メッセージボックスのOKボタンを押した後に何をしますか?
当然薬品名を入力しますよね?
だったらすぐ入力できるようにするために、テキストボックスにカーソルを合わせてあげると使用者は楽ですよね?
この心遣いが大切なんですよ。
そして4行目。
これは「処理を抜ける」という意味です。
テキストボックスにカーソルを合わせたので、これからはシステム使用者が手動で入力します。そのため処理はここで終わりにする必要があります。
5行目。
End If
これはif~then…ステートメントを終える時に(ほぼ)必ず付けます。文字通り「Ifステートメント終了する」という意味です。
これで完成です。
一般名、薬効、採用区分、単位はどうする?
さて同様に空欄だとマズイのはテキストボックスの一般名、薬効、コンボボックス採用区分、単位ですね。
ただし採用区分と単位は最初から候補を設けています。コンボボックスにワークシートから選択肢を取得しました。これを間違ってBackSpaceで削除されたり、別の言葉を入力されたら困りますよね。
それではコンボボックスのプロパティウインドウを見て下さい。
下の方にStyleってありますよね。標準では「0-fmStyleDropDownCombo」になっていますが、それを「2-fmStyleDropDownList」にしてください。
こうすることで、コンボボックスの中身の削除、入力ができなくなり、選択肢から選ぶことしかできなくなります。これをcboTaniとcboKubun両方に行います。
識別記号についてはないものもありますし、同成分薬、同効薬についても採用がある場合入力しませんので無視してOKです。
ではテキストボックス一般名、薬効に同じようにコードを書いていきましょう。上の画像を参考にして下さい。
それでは今回はこれで終了です。お疲れ様でした。
次回は登録時に「本当にいいんですね?」と確認するコードを書いていきます。