
ドロップダウンを使ってユーザーに選択肢を提供すると、入力エラーを防ぐのに効果的です。ドロップダウン内の項目以外を入力できないためです。また、ドロップダウンはデータ入力全般を容易にします。キーボードから手動で値を入力するよりも、クリックして選択する方が早いです。
幸いなことに、Microsoft Excel のデータ検証機能を使えばドロップダウンを作成できます。リストデータがドロップダウンと同じシート上にある限り、処理は迅速かつ簡単です。別のシートのリストを参照することもできますが、少し手間がかかります。このチュートリアルでは、別のシートのデータを使ってドロップダウンを作成する方法を説明します。
Windows 10 64ビット版でMicrosoft 365デスクトップを使用していますが、以前の.xlsxバージョンも使用できます。Excel for the webは既存のドロップダウンをサポートしますが、Excel for the webを使ってドロップダウンを作成することはできません。Excelのデモファイルをダウンロードしてください。
この記事では、データ検証コントロールをドロップダウンと呼びます。この手法は、コンテンツコントロールや従来のコンボボックスコントロールでは機能しません。
参照:誰もが知っておくべき Windows、Linux、Mac のコマンド (無料 PDF) (TechRepublic)
Excelで別のシートからデータを入力する方法
別のシートのリストをドロップダウンリストに挿入するには、セルを参照する方法があります。ただし、リストがテーブルオブジェクト内にある場合でも、ドロップダウンリストは動的に表示されません。代わりに、項目のリスト(テーブルのヘッダーセルを除く)に名前を付け、別のシートにドロップダウンリストを作成する際にそのリスト名を参照する必要があります。これは、知らないと頭を悩ませることになるパズルのピースです。
図Aは、「Lists」というシートに動物の短いリストが表示されています。テーブル名は「Animals」ですが、ここではそのように参照しません。大規模なアプリでは、このシートに多数のリストがあり、多数のドロップダウンがこのシート上の異なるリストを参照している可能性があります。
図A

話を続ける前に、動物という用語が何度か登場し、混同しやすいため、さまざまな要素をリストアップしたいと思います。
- 動物: 動物リストを含むテーブルの名前。この手法を機能させるためにテーブルに名前を付ける必要はありません。このテーブルは、ヘッダーセルを含むリスト全体を構成します。
- Animals_List: 動物リストのヘッダー セルを除くリスト項目の名前付き範囲。
- 動物リスト: 動物テーブル内の唯一の列。
まず、リストに Animal_List という名前を付ける方法を説明します。テーブルの名前 (Animals) と混同しないでください。
- リスト項目のみを選択し、ヘッダーセルは含めないでください。この場合、B3:B6 です。
- [数式]タブをクリックします。
- 表示されるダイアログで、範囲に Animals_List という名前を付けます。
- スコープ設定は「ワークブック」のままにします。
- ソース コントロール内をクリックし、図 Bに示すように、=Animals[Animals List] と入力します。
- [OK]をクリックします。
図B

ソースリストの範囲名については少し説明が必要です。最初の要素「=Animals」は、「Lists」シートの「Animals」テーブルを参照します。2番目の要素「[Animals List]」は列名です。そして、この参照「=Animals[Animals List]」は、「Animals」テーブルの「Animals List」列を参照します。テーブルを使用しない場合は、参照は「Lists!$B$3:$B$6」と、はるかにシンプルになります。
ここで、 Dropdown という名前の別のシートにドロップダウンを作成し、 Animals_List を参照します。
- 2 番目のシートを作成し、「Dropdown」という名前を付けます (厳密に言えば、この新しいシートに名前を付ける必要はありません)。
- セルを選択します - B2 を選択しました。
- [データ]タブをクリックします。
- [データ ツール] グループで [データの入力規則] をクリックし、ドロップダウンから [データの入力規則] をクリックします。
- [許可] ドロップダウンから [リスト] を選択します。
- 「ソース」には、図 Cに示すように、「=Animals_List」と入力します。
- [OK]をクリックします。
図C

図 Dからわかるように、Excel はリスト シート (まったく別のシートですが、同じブック内にあります) の動物リストを使用してドロップダウンにデータを入力します。
図D

「リスト」シートで動物のリストを変更すると、ドロップダウンも自動的に更新されます。ぜひお試しください。
「Lists」シートの「Animals」テーブルに戻り、「rabbit」を追加します。次に、「Dropdown」シートのドロップダウンを確認します。rabbitが含まれているはずです。
この方法がうまくいかない場合は、必ずテーブルを展開して、テーブルの最後のセルを選択し、Tab キーを押して新しい行を作成して、新しいレコードを入力してください。
手間がかかるように思えますが、リストとドロップダウンが同じシート上にない場合は必須です。簡単に言うと、リストに範囲名を付けて定義する必要があります。範囲名にはヘッダーセルを含めないでください。そして、その名前付き範囲をドロップダウンのソース参照として使用します。スコープ設定がブック全体に設定されている限り、リストが別のシート上にあっても、すべてが期待どおりに更新されます。
乞うご期待
別のシートの名前付き範囲を使ってドロップダウンリストにデータを入力するのは難しくありませんが、いくつか予期せぬ作業が必要になります。次回の記事では、別のブックのリストを使ってドロップダウンリストにデータを入力する方法をご紹介します。