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

VBA講座2-17  薬品名の重複チェックを行うコード~後編

ノートパソコンとハーブ

では医薬品データの重複チェック、後半にいきましょう。

前半では「テキストボックスに入力された文字列で、ワークシート医薬品マスタのA列をフィルターにかけ、抽出された部分をワークシート検索結果にコピペする」ここまでを行いました。

それでは残りの処理を書いていきましょう。

スポンサーリンク

AutoFilterMode = off

 

ほとんど今までやったことの復習です。

 

vba2-16-3上の画像の青で囲った部分ですね。それでは1行ずつ解説していきます。

 

If Worksheets(“医薬品検索結果”).Range(“A2”) <> Empty Then

これはいいですね。「もしワークシート医薬品検索結果のA2セルがEnpty(空欄)じゃなかったら」となります。

 

MsgBox “医薬品名が重複しています。”, vbCritical, “確認”

「メッセージボックスに医薬品名が重複していますと表示する。アイコンは×印、ウインドウ枠に確認と表示。」

 

txtDname.SetFocus

「txtDnameにカーソルを合わせる。」医薬品が重複しているわけですから、当然システム使用者は医薬品名を修正します。だからカーソルを合わせるのです。

 

Exit Sub

カーソルを合わせたら処理を抜けます。

 

End If

最後にEnd If

 

医薬品検索結果のA2セルに医薬品名が入っていれば、既に登録されているものであるという事になります。反対になければまだ登録されていないので新規登録ができる(その後のコードに続く)ことになります。

これでほぼ完成ですが、最後にもう1行追加します。

Worksheets(“医薬品マスタ”).AutoFilterMode = off

「ワークシート医薬品マスタのフィルターをoffにする(解除する)」

 

vba2-17-1フィルターをかけると上の画像のようになります。このままだと次に別のキーワードで重複チェックする時に引っかからなくなってしまいます。そのためフィルターを解除して元に戻しておきます。

 

vba2-17-2薬品名(A1セル)の右側の矢印をクリックします。次に画面中ほどのすべて選択をクリックし、OKを押します。

 

vba2-17-3フィルターが解除されました。この一連の流れが

AutoFilterMode = off

になります。

 

新規登録画面はここまで理解できればもう大丈夫です。あとは新規登録された医薬品データをソートして、昇順に並び替えるのと、連続で医薬品を入力する時のためにテキストボックスを空にする操作だけです。

 

あと少しで新規登録画面は完成です。次回は登録した医薬品データをソートするコードについて説明します。お疲れ様でした。
次の講座

スポンサーリンク

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

関連記事

サイト内検索