- 締切済み
複数リストボックスの連動について
複数リストボックスの連動についてお聞きします。 エクセル2003、VBAのユーザーフォームのリストボックスになります。 VBAに関わらずプログラミング全般初心者で恐縮ですが よろしくご指導ください。 毎月の明細から 地域を分類軸に、そこに含まれる支店を、地域をまたいで複数選択ができるリストボックスの作成をしたいと考えてます。 ListBox1(地域),ListBox2(支店)に値を重複無しに、組み合わせを表示させるまではできたのですが、 ListBox1(地域)の選択を解除した後に、再び選択すると、 ListBox2(支店)の値が重複して表示されてしまいます。 ネットで知恵を探したのですが、 ListBox1のクリックイベント時に、ListBox2の値を消す しか見つからず、自分の課題がどうしても解決できません。 どのような方向性で考えれば、解決できるのか教示いただきたいです。 自分としては、ListBox1の選択を解除したときに、 対応するListBox2が消えればと考えましたが・・・全くうまくいきません。 もし、自分の考えが的外れでしたら、正しい考え方をお教えいただきたいです。 考えが妥当であれば、どういう記述をすべきなのか、 教授願いたいです。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- hallo-2007
- ベストアンサー率41% (888/2115)
>毎月の明細から >地域を分類軸に、そこに含まれる支店を、地域をまたいで複数選択ができるリストボックスの作成をしたいと考えてます。 毎月の明細シートが 地域名 支店名 東京 新宿店 東京 渋谷店 大阪 梅田店 大阪 なんば店 ・・・ とあって ListBoX1で 大阪 を選択すると ListBox2に 梅田店、なんば店・・とリストに表示させたい ということでしょうか。 例えば、以下の様なコードは参考になりませんか Private Sub ListBox1_Click() ListBox2.Clear'ListBox2を全て削除して For i = 1 To Range("B65536").End(xlUp).Row If Cells(i, 1).Value = ListBox1.Value Then'ListBox1で選択と同じ ListBox2.AddItem (Cells(i, 2).Value)'ListBox2のリストに追加する End If Next End Sub
- fujillin
- ベストアンサー率61% (1594/2576)
>ListBox2(支店)の値が重複して表示されてしまいます。 重複の意味がよくわかりませんが・・・ もともと地域と支店は別カテゴリーなので、(仮に文字が同じでも)意味が違うから重複することはないのでは? あと、「選択を解除」の意味も不明なので、質問を理解できているとは言えませんが、(↓)こういうことではないのでしょうか? http://officetanaka.net/excel/vba/tips/tips26.htm