まえきんブログ

2024/2/11~ WordPress版ブログへお引越ししました🖊(詳細はトップページ記事をご参照頂ければと存じますm(_ _)m)

【Excel VBA学習 #129】複数選択可能なリストボックスで選択されているデータを取得する

まえきんです!

今回はユーザーフォームの複数選択可能なリストボックスで選択されている

データを取得する方法について学習しましたのでご紹介します。

f:id:maekinblog:20210907000954p:plain

リストボックスへのデータ登録は下記の通りユーザーフォームを

起動した際(Initializeイベント)に登録されている前提で進めて行きます。

f:id:maekinblog:20210907001026p:plain

この時、リストボックス内の任意の複数データをクリックして選択状態にします。

1点注意点として、通常ではリストボックス内のデータは複数選択できない設定に

なっているので、リストボックスのMultiSelectプロパティに、定数MultiSelectMultiか

定数fmMultiSelectExtendedを指定しておきます。

f:id:maekinblog:20210907001854p:plain

この設定を前提に、今回は例として「プレ登録2」と

「プレ登録5」を選択状態にします。

f:id:maekinblog:20210907001125p:plain

ここで、コマンドボタンを押下してみます。

そうすると以下のメッセージが表示されます。

f:id:maekinblog:20210907001146p:plain

リストボックス内2番目と5番目で選択されていた「プレ登録2」「プレ登録5」の

情報が取得されていることが確認できます。

 

ここで少しコードの解説も。

まずFor文のブロックですが、繰り返し変数iの開始値は配列の考え方で「0」から

スタートします。そして終了値ですが、ここではリストボックスの個数は5ですが

開始を0からカウントしているため、最大データ数から-1してカウント数を正しい

値に合わせます

次にIf文のブロックですが、リストボックスでデータが選択されているかを判定

しています。これを5回ループして選択されているデータの位置を順番にチェック

しています。

最後に、If文の中身のコードですが、リストボックスのデータが選択状態と判定

された場合のみ、リストボックスに登録されたデータを文字列変数bufに格納して

最終的に条件を満たす文字列をメッセージボックスに表示しています。

取得した文字列が横並びになると少々見づらいので、vbCrLfによりメッセージ

ボックス内で改行の処理を施しています。

以上が、リストボックスで複数選択したデータを取得するマクロでした!

次回#130は「リストボックス内のデータを移動する」

VBAコードについて学習予定です。

最後まで読んで頂きありがとうございました!ではまた!