エクセルの複数選択リストボックス

エクセルで、
「リストから複数のデータを選択したら、そのままセルに記入される。」
そういう仕組みを作りたい、と生徒さんから質問がありました。

「データ」タブ→「データの入力規則」→「リスト」では、
1つしか選択できません。

残念ながら、ご希望の仕組みは、マクロを使わないとできません。
生徒さんには、
「複数のセルでデータを選んで、それを数式で結合する。」
という方法で、納得していただきました。

 

せっかくなので、
「リストから複数のデータを選択したら、そのままセルに記入される。」
という仕組みを、作ってみました。
Image 001
エクセルファイルは、こちらからダウンロードできます。
興味のあるかたは、自由に書き換えて使ってみてください。

 

マクロの内容は、こんな感じ。

まずは、ワークシートで入力セルを選択すると、フォームが出るように設定。
Image 002

ユーザーフォームを作成して、コマンドボタンを配置。
コマンドボタンがクリックされたら、選択内容をセルに書き込ませる。
Image 003

 

(2019/5/16追記)
「エクセルの複数選択リストボックス(2)」は、こちらです。

(2019/10/10追記)
「エクセルの複数選択リストボックス(2)」は、こちらです。

 

 

18 thoughts on “エクセルの複数選択リストボックス

  1. 「都道府県」シートの内容を変えるだけです。

    「店舗一覧」などのように、リストウィンドウのタイトルなども変えたいときは、
    ちょっとめんどうですが・・・
    1.どこかに店舗名一覧を入力し、「店舗リスト」など新しい範囲名をつける。
    2.VBEを起動(Alt+F11キー)し、「UserForm1」を開き、
    3.タイトル(caption)やリスト情報(RowSource)を変更する。
    ・・・で、できます。

    「VBEって、なに?」っていう場合は、修正はむずかしいかもしれません。

  2. はじめまして。

    複数リストをコピーさせていただきました。
    とても便利で助かっています。

    B列のセルを選択するとリストが表示されますが、
    C列にもリストを表示されるにはどのようにすればよろしいでしょうか?
    新たなユーザーフォームを作成して、選択したいリストは
    作成しましたが、リストの表示ができません。

    よろしければ、同じシートの2列それぞれ別のリストを表示させ、
    選択できるようにするコード記述を教えてください。

  3. 回答、遅くなりすみません。

    VBEを起動して、下図のようなコードとユーザーフォームは表示できますか。
    http://noryyasuda.webcrow.jp/temp/image.jpg
    ・C列に表示したいリストをどこかのシートに作成して、範囲名を付ける。
    ・UserForm1と同様に、UserForm2を作成する。
    ・「アンケート」シートに、同様のコードを足してあげる。
    という手順でできるはずです。

    1. こんにちは。

      こちらこそお返事が遅くなりすみませんでした。

      ご丁寧にありがとうございます!
      お陰様で、意図していた通りに設定出来ました!

      本当にありがとうございました。
      少しずつ勉強しようと思います。
      今後も参考にさせていただきます。

      milk

  4. こんにちは。
    複数リストをコピーさせていただきました。
    とても便利で感動しました。

    B列のセルを選択するとリストが表示されますが、
    C列以降D~AF列(1か月31日分)まで各々の列でリストを表示されるにはどのようにすればよろしいでしょうか?

    Excelまだまだ修行中の段階です。

    1. コメント、ありがとうございます。

      リストボックスの複数選択って、ニーズあるんですね。
      ここであれこれ書くとややこしくなっちゃうので、
      近日中に「エクセルの複数選択リストボックス(2)」記事で説明しますね。

  5. はじめまして。

    マクロ初心者です。(未経験者です)
    リストボックスの複数選択が自力ではわからず、
    ファイルをダウンロードさせていただきました。

    B列選択するとリストが表示されますが、C列で表示させたい場合、
    コードを”B列”を”C列”に書き換えただけでは、だめなのでしょうか?
    どうしたらできるのでしょうか?

    ご回答いただければ幸いです。

    1. エクセルの複数選択リストボックス(2)の記事を見て、
      変更することができました!

      ありがとうございました。

  6. はじめまして。

    マクロ初心者なのですが、教えてください。
    リストボックスの中から選択したのものをセルに記入させる
    の後、記入させた文字を活かして内容を一部修正したい場合(選択肢を変更したい場合)
    最初から選択をし直すほかに何か方法はないでしょうか?
    例えばですが、それぞれのセルでリストボックスの選択項目を記憶させておくなどは
    難しいですか?

    1. コメント、ありがとうございます。

      入力されている内容を一部修正する方法ですが・・・
      いちばん簡単なのは、
      (1)修正したいセルを選択
      (2)フォームが表示されるので、右上の「×」で閉じる
      (3)ふつうに、セルの内容を書き換える
      という方法です。
      リストにない項目でも、自由に書き加えられます。

      たぶん、こういう答えは、期待されていないですよね^^;
      もう1つは、コマンドボタンのコードを表示して、
      「 Dim 選択内容 As String」の次の行に
      「選択内容 = Selection.Value」を入れます。
      そうするとたとえば、「東京都,」と入力されているセルを選択し直して、
      フォームから「神奈川県」を選ぶと、「東京都,神奈川県,」と追記されます。

      期待されている答えは、
      「すでに入力されているセルを選択すると、フォームで入力内容が選択されている状態になっている」
      という形だと思います。
      できそうな気もするのですが、眠いので、明日以降調べてみますね。

      1. ありがとうございます!
        おっしゃる通りで、一番最後の内容が本来の希望動作であります!

        3名の異なるユーザーが書き換えることがあり、一部修正する際に
        それができたらなんて便利なマクロなのだろうかと考えた次第でございます。
        自身でも勉強してみているところですが、もしお分かりになるようでしたら
        ご教示いただけますと大変助かります!!!

      1. 「わかりません」で逃げないでくださってありがとうございます!!
        マクロ拝見いたしました。
        素晴らしいですね~!とても感動しました~!!
        ”面白かった”といえるように、これを機に自分でも学んでみます。
        この度はご解答ありがとうございました!!

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)