まえきんです!
今回はユーザーフォームの複数選択可能なリストボックスで選択されている
データを取得する方法について学習しましたのでご紹介します。
リストボックスへのデータ登録は下記の通りユーザーフォームを
起動した際(Initializeイベント)に登録されている前提で進めて行きます。
この時、リストボックス内の任意の複数データをクリックして選択状態にします。
1点注意点として、通常ではリストボックス内のデータは複数選択できない設定に
なっているので、リストボックスのMultiSelectプロパティに、定数MultiSelectMultiか
定数fmMultiSelectExtendedを指定しておきます。
この設定を前提に、今回は例として「プレ登録2」と
「プレ登録5」を選択状態にします。
ここで、コマンドボタンを押下してみます。
そうすると以下のメッセージが表示されます。
リストボックス内2番目と5番目で選択されていた「プレ登録2」「プレ登録5」の
情報が取得されていることが確認できます。
ここで少しコードの解説も。
まずFor文のブロックですが、繰り返し変数iの開始値は配列の考え方で「0」から
スタートします。そして終了値ですが、ここではリストボックスの個数は5ですが
開始を0からカウントしているため、最大データ数から-1してカウント数を正しい
値に合わせます。
次にIf文のブロックですが、リストボックスでデータが選択されているかを判定
しています。これを5回ループして選択されているデータの位置を順番にチェック
しています。
最後に、If文の中身のコードですが、リストボックスのデータが選択状態と判定
された場合のみ、リストボックスに登録されたデータを文字列変数bufに格納して
最終的に条件を満たす文字列をメッセージボックスに表示しています。
取得した文字列が横並びになると少々見づらいので、vbCrLfによりメッセージ
ボックス内で改行の処理を施しています。
以上が、リストボックスで複数選択したデータを取得するマクロでした!
次回#130は「リストボックス内のデータを移動する」
VBAコードについて学習予定です。
最後まで読んで頂きありがとうございました!ではまた!
コメント