こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

複数リストボックスの連動について

複数リストボックスの連動についてお聞きします。
エクセル2003、VBAのユーザーフォームのリストボックスになります。
VBAに関わらずプログラミング全般初心者で恐縮ですが
よろしくご指導ください。

毎月の明細から
地域を分類軸に、そこに含まれる支店を、地域をまたいで複数選択ができるリストボックスの作成をしたいと考えてます。

ListBox1(地域),ListBox2(支店)に値を重複無しに、組み合わせを表示させるまではできたのですが、
ListBox1(地域)の選択を解除した後に、再び選択すると、
ListBox2(支店)の値が重複して表示されてしまいます。

ネットで知恵を探したのですが、
ListBox1のクリックイベント時に、ListBox2の値を消す
しか見つからず、自分の課題がどうしても解決できません。

どのような方向性で考えれば、解決できるのか教示いただきたいです。
自分としては、ListBox1の選択を解除したときに、
対応するListBox2が消えればと考えましたが・・・全くうまくいきません。
もし、自分の考えが的外れでしたら、正しい考え方をお教えいただきたいです。
考えが妥当であれば、どういう記述をすべきなのか、
教授願いたいです。

よろしくお願いします。

投稿日時 - 2008-11-18 23:35:42

QNo.4489920

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>毎月の明細から
>地域を分類軸に、そこに含まれる支店を、地域をまたいで複数選択ができるリストボックスの作成をしたいと考えてます。
毎月の明細シートが
 地域名 支店名
 東京  新宿店
 東京  渋谷店
 大阪  梅田店
 大阪  なんば店
・・・ とあって
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

投稿日時 - 2008-11-19 14:51:19

ANo.1

>ListBox2(支店)の値が重複して表示されてしまいます。
重複の意味がよくわかりませんが・・・
もともと地域と支店は別カテゴリーなので、(仮に文字が同じでも)意味が違うから重複することはないのでは?

あと、「選択を解除」の意味も不明なので、質問を理解できているとは言えませんが、(↓)こういうことではないのでしょうか?
 http://officetanaka.net/excel/vba/tips/tips26.htm

投稿日時 - 2008-11-19 12:05:14

あなたにオススメの質問