• ベストアンサー

エクセルVABでリストボックスで選択

左右にリストボックスを2つ並べて、左のリストボックスのリストからコマンドボタンを使って右のリストボックスに移すようなダイアログはよく見かけます。エクセルVBAで、実現するには、やはりシートにデータを保存するのでしょうか?また、順番を元通り(ソートされたものではない)にするためには、元のデータのリストを表すセル列を用意しておいて、リストがチェンジするたびに、左側のリストの列と右側のリストの列のセルを整備するしかないのでしょうか? どなたか、詳しい方いらっしゃいましたらよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.2

こんばんは。 問題になるのは、右から左へ戻すときですから、 左の分だけ「元」のリストを、セル、又は、配列に保持しておく。 全体の考え方は概ね質問のようでいいかと。 以上です。

vba_minarai
質問者

お礼

両方保存しておく必要はないのですね!ありがとうございました。 なんとなく、もやもやとしていたのですが、灯りが見えました。ありがとうございます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

>左のリストボックスのリストからコマンドボタンを使って右のリストボックスに移すようなダイアログはよく見かけます。 意味がわからない。2つのLB(リストボックス)は何かの点で連動しているのですね。 (1)左のLBの東京を選ぶと、その所属市である武蔵野市、三鷹市、国分寺市・・などが右のLBに出すというのか。 (2)左のLBで多数の中から東京ー神奈川ー静岡など一部を選ぶと、右のLBに、東京ー神奈川ー静岡だけが出るとか。 (3)それ以外 のどれですか。 >はよく見かけます エクセルの操作の画面では、どこで出てきますか。 >やはりシートにデータを保存するのでしょうか LBのアイテムがセルのデータと連動出きる(ListFillRangeで指定)のが、エクセル(VBA)のメリットですが、他から持っても来れます。 他の事項ではLinkedCellがあるメリットなど。 エクセルで使うコントロールは、エクセルのシートと連動してこそ 便利なんです。何を心配しているのかな。 >保存するのでしょうか 保存に話題が飛ぶ必然性が判らない。当然作り込んだものは 閉じるときには、通常は保存しますね。 >順番を元通り(ソートされたものではない)にするためには 言っている意味(必要性)が良くわからない。言っているほうが一般には易しく、ソートするほうが手が込んだコードになるように思う。 LBのアイテムはいつもソートするとか、LBのリストkにするとソート されるとかはない。 >元のデータのリストを表すセル列を用意しておいて、リストがチェンジするたびに、左側のリストの列と右側のリストの列のセルを整備するしかないのでしょうか リストとLBのアイテムの連動性は行数が定義した範囲内なら、セルの 値の変動に即反映します。 行数の増減については、質問を改めて、それに絞って質問してください。 >VAB、セルを整備する などの質問表現を見ると、エクセルVBAのコントロールーリストボックスの本やWEBを見て、もう少し勉強してください。 回答が長時間つかないのも、質問の真意が読者に伝わらないからだとおもう。

vba_minarai
質問者

お礼

忠告ありがとうございました。 今後ともよろしくお願いいたします。

関連するQ&A