Excel プルダウンで複数選択する方法

2021年11月6日

入力規則のプルダウンメニューで複数選択をしたい場合がありますが

単一選択しかサポートされていません。しかし替わりとなる方法は存在します。

この記事では、その方法と特徴を紹介します。

二つの方法と特徴

実現方法は二つあります。

  1. チェックボックス
  2. 複数選択リストボックス

①チェックボックスの特徴

複数選択の代表例です。

チャックボックスのキャプチャ

簡単に実現できる利点がありますが、選択肢が増えると場所を使ってしまうのと

手間が大きくなってしまうのが欠点です。

②複数選択リストボックス

プルダウンメニューをそのまま複数選択にした感覚に近いです。

複数選択リストボックスのキャプチャ

スクロールすることが出来るため選択肢が増えても場所を取らず

更に手間も大きくならない利点があります。

複数選択リストボックスを折りたたんだ状態のキャプチャ

ただしリストボックスを複数選択にする場合、

マクロ・VBAを使用する必要があるためハードルが高いのが欠点です。

設定手順

共通・「開発」メニューを追加

どちらの方法を使うにしても「開発」を使用します。

もしメニューに「開発」がない場合は追加しておきましょう。

「開発」メニューの図解

メニューの何もない場所を右クリックし、「リボンのユーザー設定」を選択します。

メニューのないもない場所を右クリックし、「リボンのユーザー設定」を選択する図解

「開発」にチェックを入れます。すると「開発」がメニューに表示されます。

「開発」にチェックする図解

①チェックボックス

「開発」より「挿入」、「フォームコントロール」の「チェックボックス」を選択します。

「開発」より「挿入」、「フォームコントロール」の「チェックボックス」を選択する図解

次にチェックボックスを置きたい場所をクリックすると

チェックボックスが一つ追加されます。

チェックボックスが追加されたキャプチャ

チェックボックスを右クリックしその状態で

チェック1となっている表記を左クリックすると編集可能です。

表記を変えた状態のキャプチャ

次に右クリックしてメニューを開き「コントロールの書式設定」をクリックします。

右クリックしてメニューを開き「コントロールの書式設定」をクリックする図解

次にリンクするセルを設定します。

リンクするセルを設定する図解

この状態でチェックボックスを押すと

リンクしたセルに論理値が反映されます。

チェックがオン状態=TRUEのキャプチャ
チェックがオン状態=TRUE
チェックがオフ状態=FALSEのキャプチャ
チェックがオフ状態=FALSE

これを繰り返すことで複数選択が可能になります。

複数選択をチェックボックスで実現した状態のキャプチャ

なおチェック状態を数式に組み込む必要がない場合は

リンクするセルは設定の必要がありません。

②複数選択リストボックス

サンプルファイルと利用方法

サンプルファイルで使用可能です。

「リストボックス」シートに複数選択リストボックスを置いてあります。

このサンプルを利用するだけならマクロの知識は不要です。

「リストボックス」シートのキャプチャ

「Work」シートの内容です。

A2セルから下に選択肢を記述します。

B2セルには選択した一覧がカンマ区切りで表示されます。

C2セルから右にはセル別に選択した一覧が表示されます。

「Work」シートのキャプチャ

この複数選択リストボックスは、そのままでは大きさの変更などが不可能です。

変更するには「開発」より「デザインモード」を選択します。

「開発」より「デザインモード」を選択する図解

この状態でリストボックスを選択すると大きさの変更が可能です。

このデザインモードはオンのままだと項目選択が出来なくなるため

編集が終わったら再度、クリックして解除しましょう。

なお初期状態では選択肢は4個までです。

これを増やすためにはデザインモードにして

リストボックスを右クリックし、メニューの中から「プロパティ」を選択します。

リストボックスを右クリックしてプロパティを選択する図解

「プロパティ」ウインドウが表示され、「ListFillRange」が選択肢のセル範囲です。

ここの範囲を大きくすると4つ以上の選択肢に対応可能です。

「プロパティ」の「ListFillRange」で選択肢のセル範囲を設定する図解

作り方とソースコード(コメントによる解説)

自力で1から作成したり、リストボックスを増やしたい方向けに

手順とソースコードを紹介します。

まず「開発」「挿入」「ActiveXコントール」より

「リストボックス」を選択し配置する場所をクリックします。

(フォームコントロールの方は設定がうまく出来ませんでした)

「開発」「挿入」「ActiveXコントール」より「リストボックス」を選択する図解

リストボックスが配置されます。

リストボックスが配置された状態のキャプチャ

次に任意の位置に選択肢と選択状態をリンクするセルを用意します。

選択肢とリンクセルのキャプチャ

そして「デザインモード」の状態で右クリックし「プロパティ」を選択します。

「デザインモード」の状態で右クリックし「プロパティ」を選択する図解

プロパティの内容を変更します。

セルを指定する箇所はマウスで設定出来ません。

アドレスをキー入力する必要がある点に注意が必要です。

プロパティ設定値と説明
オブジェクト名マクロ・VBAからアクセスする変数名です。
必要であれば変更します。
LinkedCell選択肢の状態をリンクするセルです。
Workシートではリンクセル(結合)の位置を設定します。
リストボックスを増やす場合は
それぞれ異なるセルを設定。
ListFillRange選択肢の一覧を設定します。
Workシートに用意した選択肢セルを範囲で記述します。
MultiSelect「1 - fmMultiSelectMulti」に
変更すると複数選択になります。
プロパティ設定の図解

プロパティ設定完了後、デザインモードのまま右クリックし「コードの表示」を選択します。

右クリックメニューからコードの表示を選択する図解

Visual Basicエディターが立ち上がり、List1_Click()が自動生成されますが、

それは無視してChangeを作成します。

キャプチャ。Visual Basicエディターが立ち上がりList1_Click()が自動生成。それは無視か削除をしてChangeを作成

ListBox1_Changeが追加されるので、ここにコードを入力していきます。

ListBox1_Changeが自動作成される図解

下記がChangeのコードです。

ListBox1はオブジェクト名によって変わる箇所です。

リストボックスを増やす場合は、ここを適宜変えていく必要があります。

Private Sub ListBox1_Change()
    Dim i As Integer ' リストボックスカウンター
    Dim j As Integer ' リンクセル(分割)カウンター
    Dim 結果 As String ' リストボックスの選択値をカンマ区切りで保存
    
    結果 = ""
    j = 1
    
    ' リストボックスの全要素をループ。ListCountは要素数
    For i = 0 To ListBox1.ListCount - 1
        ' リンクセル(分割)を一つづつ空白に戻す
        'Evaluate…アドレスから範囲を取得。シート名指定(!)がある場合はRangeでなくEvaluate
        Evaluate(ListBox1.LinkedCell).Offset(0, i + 1).Value = ""
        
        ' リストボックスの要素が選択されているかの判定
        If ListBox1.Selected(i) = True Then
            ' カンマ区切りで選択値を保存
            結果 = 結果 & ListBox1.List(i) & ","
            ' リンクセル(分割)に書き込み
            Evaluate(ListBox1.LinkedCell).Offset(0, j).Value = ListBox1.List(i)
            j = j + 1
        End If
    Next i
    
    'リンクセル(結合)に書き込み
    Evaluate(ListBox1.LinkedCell).Value = 結果
End Sub

Excel完全マスター: 関数・テクニック・新機能を網羅した決定版ガイド

本書は、Excelの基礎から応用まで、包括的に学べるガイドブックです。当サイトの豊富な情報を、電子書籍向けに最適化し、読みやすく再構成しました。

【本書の特徴】

  • 情報量:Word-A4サイズ換算で1,400ページ相当
  • 基本操作から高度なテクニックまで、段階的に学習可能
  • 140種類の関数を詳細に解説
  • 109種類の実用的なテクニックと具体例を紹介
  • 最新機能(XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピル等)を徹底解説

【対象読者】

  • Excel初心者からプロフェッショナルまで
  • 体系的にExcelスキルを向上させたい方
  • 業務効率化を目指すビジネスパーソン
  • データ分析や可視化のスキルを磨きたい方

【本書の強み】

  • 実務に即した例題と解説
  • 視覚的な図表やスクリーンショットで理解を促進
  • 最新のExcelバージョンに対応した内容
  • 著者の長年の経験に基づく、実践的なTipsを多数収録

【更新とサポート】

  • 常に最新の情報を反映するため、定期的に内容を更新
  • 最新版の入手方法:Amazonカスタマーサポートへお問い合わせください

【入手方法】

  • 買い切り:950円
  • Kindle Unlimited:読み放題プランで利用可能

Excelマスターを目指す方、業務効率を劇的に向上させたい方に、自信を持っておすすめできる一冊です。この1冊で、Excelの可能性を最大限に引き出す力が身につきます。

関連記事

入力規則によるプルダウン(ドロップダウン)リストの記事一覧

マクロ・VBAの学習・活用方法の記事一覧