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

 

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

 

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

スポンサーリンク

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

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

 

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

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

 

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

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

 

txtDname.SetFocus

「txtDnameにカーソルを合わせる。」

 

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

 

Exit Sub

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

 

End If

最後にEnd If

 

医薬品検索結果のA2セルに医薬品名が入っていれば、既に登録されているものであるという事になります。

 

反対になければまだ登録されていないので、新規登録ができる(その後のコードに続く)ことになるのです。

スポンサーリンク

AutoFilterMode = off

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

 

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

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

 

vba2-17-1フィルターをかけると上の画像のようになりますが、もしこのままだと、次に別のキーワードで重複チェックする時に引っかからなくなってしまいます

 

そのためフィルターを解除して元に戻しておく必要があるのです。

 

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

 

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

AutoFilterMode = off

になります。

 

新規登録画面はここまで理解できればもう大丈夫です。

 

あとは新規登録された医薬品データをソートして、昇順に並び替えるのと、連続で医薬品を入力する時のためにテキストボックスを空にする操作だけ。

 

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

>>Excel VBA講座 目次へ