エクセルで複数の候補から項目を選ばせたいときは、リストボックスを使うと入力ミスを抑えながら表を見やすく整えられます。
セル上に置くフォームコントロールのリストボックスと、図形を利用して見せ方を工夫する方法を知っておくと、申請書、集計表、管理台帳などで役立ちます。
この記事で押さえるポイントは、開発タブの表示、リストボックスの挿入、入力範囲とリンクするセルの設定、選択結果を数式で活用する流れです。
なお、リストボックスは候補を表示する部品であり、選択された文字列そのものではなく選択位置の番号をセルに返す設定が基本になります。
先に候補リストを表として準備し、1行目をヘッダーにしておくと、編集や数式の管理がしやすくなります。
エクセルでリストボックスを作る方法
それではまず、セルの候補一覧を使ってフォームコントロールのリストボックスを作成する手順について解説していきます。
| A | B | C |
|---|---|---|
| 1 | 商品名 | 選択番号 |
| 2 | コーヒー | |
| 3 | 紅茶 | |
| 4 | 緑茶 |
この例では、B1を見出しにし、B2からB4をリストボックスに表示する候補として使います。
開発タブの表示
リストボックスを挿入するには、最初にリボンへ開発タブを表示します。
ファイル、オプション、リボンのユーザー設定の順に開き、右側の一覧で開発にチェックを入れてOKを選びましょう。

開発タブは通常の初期設定では表示されていないため、リストボックスが見つからないときに最初に確認したい場所です。
設定後は、エクセル画面のリボンに開発タブが追加されます。
会社の共有パソコンで設定変更が制限されている場合は、管理者権限や組織のポリシーによって開発タブを表示できないことがあります。
フォームコントロールの挿入
開発タブを選択し、コントロールグループの挿入からフォームコントロールにあるリストボックスをクリックします。
続いて、ワークシート上でドラッグし、表示したい大きさの枠を作成します。

作成直後のリストボックスには候補が入っていないため、空の枠が配置されたように見える状態です。
ActiveXコントロールにも同名の部品がありますが、初めて作る場合は設定が比較的単純なフォームコントロールを選ぶと扱いやすいでしょう。
行数が多い候補を見せる場合でも、リストボックス自体は必要以上に大きくせず、スクロールできる高さに整えるのが実用的です。
入力範囲とリンクするセルの設定
配置したリストボックスを右クリックし、コントロールの書式設定を選択します。
コントロールタブにある入力範囲へ、候補一覧のB2からB4を指定します。
セルのリンクには、選択位置を受け取るセルとしてC2を指定しましょう。
B2のコーヒーを選ぶとC2には1、B3の紅茶なら2、B4の緑茶なら3が表示されます。
入力範囲は見出しを除いて指定します。
B1を含めると、商品名という見出しまで選択肢として表示されてしまうため注意が必要です。
【操作のポイント】リストボックスの文字列を直接編集するのではなく、入力範囲にしたセルを編集すると候補を安全に更新できます。
リストボックスの選択結果をセルに表示する方法
続いては、リンクするセルへ返された番号から、選んだ項目名を別のセルに表示する方法を確認していきます。
| A | B | C | D |
|---|---|---|---|
| 1 | 候補 | 番号 | 選択した商品 |
| 2 | コーヒー | 2 | 紅茶 |
| 3 | 紅茶 | ||
| 4 | 緑茶 |
リンクセルの数値だけでは帳票上で意味を伝えにくいため、検索関数で項目名へ変換するのが一般的です。
INDEX関数による項目名の取得
D2へ次の数式を入力すると、C2の番号に対応した候補をB2からB4の範囲から取り出せます。
=INDEX($B$2:$B$4,$C$2)
INDEX関数の1つ目の引数は候補の範囲、2つ目の引数はその範囲内で何番目を返すかを示す番号です。
たとえばC2が2なら、B2から数えて2番目のB3にある紅茶が表示されます。
リストボックスの番号は入力範囲の先頭を1として数えるため、ワークシートの行番号とは一致しません。
候補範囲をコピーして別の場所へ移す予定があるなら、数式の範囲を絶対参照にしておくとずれを防げます。
未選択時のエラー表示の調整
まだ何も選択していない状態では、リンクセルが0になり、INDEX関数はエラーを返すことがあります。
未選択時を空欄にしたい場合は、IF関数を組み合わせます。
=IF($C$2=0,””,INDEX($B$2:$B$4,$C$2))
この式ではC2が0なら空欄を返し、0以外ならINDEX関数で候補名を表示します。
利用者に数式エラーを見せないためにも、未選択時の扱いは最初に決めておくと安心です。
空欄ではなく選択してくださいという案内を表示したい場合は、空欄の部分を任意の文言へ変更できます。
複数のリストボックスの管理
部署、担当者、状態など複数の条件を選ばせる場合は、リストボックスごとに入力範囲とリンクセルを分けます。
リンクセルを同じセルにしてしまうと、最後に操作したリストボックスの番号で上書きされます。
候補リストは専用の一覧シートにまとめ、必要に応じてシートを非表示にすると入力画面をすっきり保てます。
候補が増える可能性が高い場合は、元データをテーブル化してから名前の定義を利用すると、入力範囲の見直しを減らせます。
【操作のポイント】リストボックスのリンクセルは利用者に見せる項目ではなく、数式や集計のための内部値として扱うと設計しやすくなります。
リストボックスの編集と図形への配置
続いては、候補の編集方法、セルとの位置関係、図形を使って入力画面を見やすくする方法を確認していきます。
| A | B | C |
|---|---|---|
| 1 | 区分 | 入力欄 |
| 2 | 通常 | |
| 3 | 至急 | |
| 4 | 保留 |
候補や見た目を変えるときは、リストボックスを削除して作り直す前に、参照範囲とオブジェクトの設定を確認しましょう。
| A | B | C | |
|---|---|---|---|
| 1 | 区分 | 選択結果 | |
| 2 | 通常 至急 保留 |
至急 |
候補リストの追加と削除
候補を増やす場合は、入力範囲の末尾に新しい項目を入力した後、コントロールの書式設定で入力範囲を広げます。
たとえばB2からB4をB2からB5へ変更すれば、B5に追加した候補もリストボックスへ表示されます。
セルだけ追加しても入力範囲が以前のままなら、リストボックスには新しい項目が出ません。
不要な候補を削除した場合も、空欄が選択肢として残らないよう入力範囲を確認することが大切です。
【操作のポイント】候補の順番を変えるとリンクセルの番号が変わるため、番号を別の集計に使っている場合は影響範囲を確認します。
セルに合わせたサイズ変更
リストボックスはセルの中に入力される値ではなく、シート上に置かれるオブジェクトです。
そのため、行の高さや列の幅を変更すると位置がずれることがあります。
右クリックからコントロールの書式設定を開き、プロパティでセルに合わせて移動やサイズ変更をする設定を選ぶと、表のレイアウトを保ちやすくなります。
印刷や列の挿入を予定している帳票では、オブジェクトの位置設定まで確認するのが実務上のコツです。
セルの境界線に合わせて配置し、入力欄であることが分かる余白を確保すると、クリックしやすい画面になります。
図形を使った入力案内
リストボックスそのものを図形へ変換することはできませんが、角丸四角形や吹き出しを近くに配置して操作を案内できます。
挿入タブの図形から角丸四角形を選び、選択してくださいや商品を選ぶなどの案内を入力します。
図形の塗りつぶしは淡い緑色、文字は濃い色にすると、エクセルの画面になじみながら入力箇所を目立たせられます。
図形を最前面に置くとリストボックスがクリックできなくなることがあるため、案内用の図形は操作部品と重ならない位置に置きます。
【操作のポイント】図形は装飾ではなく、何を選ぶのか、選択後に何が変わるのかを短く伝える案内として使うと効果的です。
リストボックスの複数選択とフォームコントロールの違い
続いては、複数選択が必要な場合の考え方と、フォームコントロールとActiveXコントロールの違いを確認していきます。
| 種類 | 主な用途 |
|---|---|
| フォームコントロール | 単一項目の選択とリンクセル |
| ActiveXコントロール | VBAを含む細かな動作設定 |
フォームコントロールの選択方式
フォームコントロールのリストボックスは、基本的に選んだ位置を1つのリンクセルへ返す仕組みです。
選択肢が一つでよい申請区分や担当者選択では、設定が簡単で安定しやすい方法です。
複数の候補を同時に選んだ結果をそのままセルへ返す用途には、フォームコントロールだけでは対応しにくい場合があります。
ActiveXコントロールの利用場面
ActiveXコントロールのリストボックスでは、複数選択や選択時の処理などをVBAで細かく制御できます。
一方で、デザインモードの切り替えやマクロの管理が必要になるため、配布先のセキュリティ設定にも注意が必要です。
共有用の簡易フォームなら、まずフォームコントロールで目的を満たせるか検討するとよいでしょう。
ドロップダウンリストとの使い分け
セル内で候補を選ぶだけなら、データの入力規則によるドロップダウンリストも便利です。
表の各行に同じ選択欄を並べる場合は入力規則、少数の選択欄を大きく見せたい場合はリストボックスが向いています。
印刷レイアウトや操作性を含めて、セル内の選択かシート上の部品かを決めると失敗が減ります。
【操作のポイント】複数選択だけを目的に複雑なVBAを追加する前に、チェックボックスを複数置く方法も比較しましょう。
リストボックスで起こりやすい不具合の対処
続いては、候補が表示されない、選択結果が更新されない、操作できない場合の確認箇所を解説していきます。
| 症状 | 確認箇所 |
|---|---|
| 候補が空欄 | 入力範囲 |
| 結果が変わらない | リンクセルと計算設定 |
候補が表示されない場合
入力範囲の指定が空欄、または参照先のシート名やセル番地が誤っている可能性があります。
コントロールの書式設定を開き、入力範囲が実際の候補セルだけを指しているか確認します。
候補セルに数式エラーがある場合も、意図しない表示になるため元データを先に確認します。
リンクセルが更新されない場合
リンクするセルが未指定であれば、選択してもワークシート上の結果は変わりません。
また、シート保護によりオブジェクトの操作が制限されている場合もあります。
保護を解除する権限がないときは、ファイル作成者へ設定を確認しましょう。
コピー後に参照先が変わる場合
リストボックスをコピーすると、入力範囲やリンクセルの参照が意図せず変わることがあります。
コピー後は必ず各コントロールの書式設定を開き、リンクセルが重複していないかを確認します。
見た目が同じでも内部の参照先が違えば、選択結果や集計結果は正しくなりません。
【操作のポイント】不具合の切り分けでは、候補セル、入力範囲、リンクセル、数式の順に確認すると原因を見つけやすくなります。
まとめ エクセルのリストボックスの使い方と作り方
エクセルのリストボックスは、開発タブからフォームコントロールを挿入し、入力範囲とリンクセルを指定して作成します。
リンクセルには選択した候補の位置を表す番号が入り、INDEX関数を使えば利用者に分かりやすい項目名へ変換できます。
候補を編集するときは、元のセルだけでなくリストボックスの入力範囲も確認することが重要です。
セルに合わせた位置設定、図形による案内、入力規則との使い分けまで整えると、見やすく操作しやすい入力フォームになります。