それでは医薬品データの重複チェック、後半にいきましょう。
前半は「テキストボックスに入力された文字列で、ワークシート医薬品マスタのA列をフィルターにかけ、抽出された部分をワークシート検索結果にコピペする」ここまでを行いました。
それでは残りの処理を書いていきましょう。
スポンサーリンク
ほとんど今までやったことの復習です!
If Worksheets(“医薬品検索結果”).Range(“A2”) <> Empty Then
MsgBox “医薬品名が重複しています。”, vbCritical, “確認”
txtDname.SetFocus
Exit Sub
End If
Worksheets(“医薬品マスタ”).AutoFilterMode = off
上の画像の青で囲った部分ですね。それでは1行ずつ解説していきます。
これはいいですね。「もしワークシート医薬品検索結果のA2セルがEnpty(空欄)じゃなかったら」となります。<>は≠と同じでしたね。
「メッセージボックスに”医薬品名が重複しています”と表示する。アイコンは×印、ウインドウ枠に”確認”と表示。」
「txtDnameにカーソルを合わせる。」
医薬品が重複しているわけですから、当然システム使用者は医薬品名を修正します。だからカーソルを合わせるのです。
カーソルを合わせたら処理を抜けます。医薬品名の修正作業に入るためです。
最後にEnd If
医薬品検索結果のA2セルに医薬品名が入っていれば、既に登録されているものであるという事になります。
反対になければまだ登録されていないので、新規登録ができる(その後のコードに続く)ことになるのです。
スポンサーリンク
AutoFilterMode = off
これでほぼ完成ですが、最後にもう1行追加します。
「ワークシート医薬品マスタのフィルターをoffにする(解除する)」
フィルターをかけると上の画像のようになりますが、もしこのままだと、次に別のキーワードで重複チェックする時に引っかからなくなってしまいます。
そのためフィルターを解除して元に戻しておく必要があるのです。
薬品名(A1セル)の右側の矢印をクリックします。次に画面中ほどのすべて選択をクリックし、OKを押します。
になります。
新規登録画面はここまで理解できればもう大丈夫。あとは簡単な作業だけです。
残りは「新規登録された医薬品データをソートして、昇順に並び替える」のと、「連続で医薬品を入力する時のために、テキストボックスを空にする操作」だけ。
医薬品新規登録画面の完成まであと少し。次回は登録した医薬品データをソート(並び替え)するコードについて説明します。お疲れ様でした。