• ベストアンサー

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

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

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

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

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

vba_minarai
質問者

お礼

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

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • エクセルVBAのリストボックスの設定とモジュールの保護?

    初心者です。エクセルVBAについて二つ質問があります。 ひとつは、ユーザーフォーム内にリストボックスを設定し、ワークシートの範囲から数値データを取得するようプロパティを設定しました。 データを見るとタイトルの文字列が右側に、データの数値が左側に寄せられています。出来れば両方とも中央に表示させたいのですが出来るのでしょうか。   もうひとつは、標準モジュールで作ったVBAを書き換えられないように保護する方法はあるのでしょうか。 以上です

  • EXCELのリストボックスを選択した行が何行目か

    エクセルVBAの初心者です。 VBAを組んでいて表のデーターをリストボックスに表示しています 選択されたリストボックスの値はわかるのですが、リストボックスの上から 何行目を選択したかどうか知りたいのですが、わかる方がおられましたら よろしくお願いします。

  • EXCEL リストボックスについて

    現在、エクセルであることをしようとしているのですが、どうやってやったらいいのかわからないので、ぜひ教えてください。 それと出来るかどうかも教えてください。 内容といたしましては、エクセルのシートの中にあるセルを選んだときにリストボックスを表示して、そのリストボックスにある内容を選んで確定するとその選んだ文字が入るようにしているのですが、入力規則からのリストボックスだとシート自体を小さくすると中の文字が見えなくなり、選びづらくなります。 そこで、コンボボックスで同じことをすると、文字のサイズが大きくなるのですが、印刷時に下向きの矢印も一緒に表示されてしまいます。 そこで、別の視点から考えて、セルを選んだ時にリストボックスみたいなユーザフォームをだし、そこで選んだ文字を選んだセルに表示すれば、印刷時に表示もしないし見た目も良くなると思うのですが、出来そうですか? 出来るのであれば、ぜひ教えてください。 出来れば、VBかVBAで出来るのか、教えてください。

  • エクセル リストボックスをボタンで選択するマクロ。

    VBA初心者なので教えていただけるとありがたいです。 現在、sheet1にリストボックスを貼り付けています。 そのリストボックスで選択した値を、sheet2のA1セルに貼り付けるようなマクロを作ってみました。 リストボックスのリストは、下のような感じになっています。 空白 ああああ いいいい うううう これとは別にボタンを作成し、ボタンを押すとこのリストボックスの空白(一番上のリスト)を選択するようにしたいのですが、このようなことはできるのでしょうか? なぜこのようなことがしたいのかは、説明が長くなりそうなので省略させていただきます。 どなたか教えていただけるとありがたいです。

  • Excelリストボックスについて

    ExcelVBAのリストボックスで質問!! (1)列に項目名称をつけたいのですが、どうすればよいでしょうか? ちなみにリストの値は別ファイルかVBAにくみこみたいと思っています。 (2)ホイール(マウス)によるスクロールは行えないのでしょうか?方法があれば教えてください。

  • エクセルVBAのリストボックスについて

    こんにちわ! エクセルVBAのリストボックスの質問です。 現在、エクセル上では時刻データフォーマットが日付データになっているのですが、リストボックスに表示させると数値データになってしまいます。 具体的には エクセル上⇒11:00 リストボックス上⇒0.45833… となってしまいます。 どうしたら直るのでしょうか? アドバイスの程よろしくお願いいたします。 ちなみにエクセル2003での事象です。

  • excel2000でのリストボックスについて

    あるセルをクリックした時に、セルの右側にリストボックス を出す方法を教えてください。

  • Excel! リストから選択!

    Excelの「リストから選択」で質問です。 次のようにA1~B5セルにデータが入っています。       A   B   1  大変よい  (1)   2  良い    (2)   3  普通    (3)   4  もう少し  (4)   5  悪い    (5) これらを別のセルにて「リストから選択」をするとA列が表示され、 選択するとセルにはB列が表示されるという設定はできるのでしょうか。 この例の場合、リスト表示をさせると   大変よい     良い       普通       もう少し     悪い     が表示され、「大変よい」を選択すると、「(1)」が表示されるような仕組みです。 どなたか教えていただけませんでしょうか。よろしくお願いいたします。

  • エクセルのリストボックスの使い方

     WindowsXP Pro エクセル2003です。  エクセルのコントロールボックス機能を使ってリストボックスをつくりました。  リストボックスからある項目を選択するとアクティブセルにそのデータが入るようにしています。(ActiveCell.Value = ListBox1.Value)その後、セルは下に移動させます(Selection.Offset1,0).Select)。  そこで、もう一度同じ項目を入力するために上のセルと同じ項目をクリックしてもその項目が入力されません。 コントロールボックスのアクションは、リスト内の「他の項目をクリックしたとき」に実行されるということで、同じ項目は続けて指定できないようになっているようです。そこで、ある項目をクリックしたら、リスト項目内で違うところに選んだリストの場所を移動させたいと思っているのですが、そういうことができるのでしょうか。  ご存じの方よろしくお願いします。

  • excelでリストボックスで選択した値に定められた値を返す

    excel2000で計算シートを作っています リストボックスで会社名をえらぶと 例:A社 B社 C社 ・セルC2に、A社なら1000 B社なら1200 C社なら800 とあらかじめ定められた値を返す 関数で、値を返すことはできるのですが リストボックスを範囲として指定できないのでしょうか? また、上記をVBAを使わずに、設定することは可能でしょうか? 宜しくお願いいたします

専門家に質問してみよう