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

VBA講座3-5 検索結果をリストボックスに表示するコード

ノートパソコンとハーブ

今回は検索結果をリストボックスに表示するコードを書いていきましょう。
1個ずつリストボックスに加えるなんてコードを書いたらとんでもないことになりますので、検索結果が何個であっても対応できるコードにします。それではいきましょう。

スポンサーリンク

リストボックスの使い方

 

vba3-4-1上の画像が検索結果をリストボックスに表示するコードになります。それでは順に解説していきましょう。

 

lstKouho.Clear

これは「リストボックスlstKouhoをクリアする」。
つまり空欄にするという意味です。前の検索結果をクリアするということですね。そのまんまです。

 

Dim StartRow As Integer, LastRow As Integer,i As Integer

変数の宣言です。変数StartRow、LastRow、iを数字と宣言する。変数3つを同時に宣言して1行にまとめています。これもやりましたね。

 

StartRow = 2

「変数StartRowに数字の2を入れる。」

 

LastRow = Worksheets(“医薬品検索結果”).Range(“A65536”).End(xlUp).Row

「変数LastRowにはワークシート医薬品検索結果のA列で一番下の行から上に向かってぶつかった行を入れる。」これも前にやりましたね。

For i = StartRow To LastRow lstKouho.AddItem Cells(i, 1).Value
Next

繰り返し処理ですね。
変数StartRowには今「2」が入っていますから、「2行目からワークシート医薬品検索結果のA列で一番下の行から上に向かってぶつかった行までlstKouhoにアイテムを加える。そのアイテムとはCells(i,1)の値である。」Addは英語で「加える」という意味です。

 

さて、Cells(i,1)って何を意味しますか?A列の薬品名のことですよね。

 

つまり「(検索して抽出された)薬品名を2行目から下に向かってある分だけlstKouhoに順番に加えていく」という意味になります。わかりますか?

 

例えば薬品名で検索して

アリセプトD錠3mg
アリセプトD錠5mg

が抽出されたとしましょう。

 

この場合、アリセプトD錠3mgはCells(2,1)に入っていますし、アリセプトD錠5mgはCells(3,1)入っています。つまり変数LastRowに入るのはここでは「3」になりますね。

 

よってアリセプトD錠3mgとアリセプトD錠5mgがリストボックスlstKouhoに加えられる事になります。

 

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

次の検索に備えてフィルターを解除します。

 

いかがでしたでしょうか?
一見意味が分からなそうに見えても、直訳していけば大体の意味はわかりますのでひるまずに頑張って下さい(笑)。

 

それでは今回はこれで終了です。お疲れ様でした。次回はリストボックスの薬品名をクリックした時に黒線から下のコントロールに医薬品情報を表示させるコードを書いていきます。
次の講座

スポンサーリンク

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

関連記事

管理人も使用!パソコン作業が捗ります!

サイト内検索