ワークシート上でリスト入力する


セルに入力するデータをリストから選択するためのテクニックをご紹介します。ワークシート上でリスト入力するには、いくつかの方法があります。それぞれについてメリットとデメリットがありますので、ケースに応じて使い分けてください。

入力規則のリストを使う

リスト入力の基本は入力規則です。入力規則は、任意のセルに対して指定した範囲のデータだけ入力を許可する機能です。たとえば、生年月日を入力するセルに日付形式のデータだけを許可しておけば、誤って氏名や住所などの文字列が入力されるのを防ぐことができます。この入力規則には「リスト」という項目があり、実に簡単な設定でセル上にリストを表示することができます。

入力規則のリストを使うには次のようにします。

(1) リストを設定したいセルまたはセル範囲を選択して[データ]メニューの[入力規則]をクリックします。実行すると[データの入力規則]ダイアログボックスが表示されます。

(2) [入力値の種類]ボックスで「リスト」を選択します。続いて[元の値]ボックスに、リストで表示したい項目を「,」(半角カンマ)で区切って入力します。[ドロップダウン リストから選択する]チェックボックスがオンになってるのを確認して[OK]ボタンをクリックします。

入力規則を設定したセルにアクティブセルを移動すると▼が表示されます。クリックすると、設定したリストが表示されます。

[元の値]にシート上の範囲を指定する

[データの入力規則]ダイアログボックスの[元の値]ボックスに、上のようにセルのアドレスを指定すると、指定したセル範囲に入力されているデータをリストとして表示できます。

これなら、シート上のデータを変更することでリストに表示する項目を手軽に変更できますね。

ところが、この方法には制約もあります。それは他シートのセル範囲を指定できないということです。そんなときは、名前という裏技を使います。

リストに表示したいデータが他のシートに存在していた場合、まずそのセル範囲に名前を付けます。セルに名前を付けるには[挿入]メニューの[名前]-[定義]をクリックして[名前の定義]ダイアログボックスを開きます。もっとも、ただ名前を付けるだけでしたら、名前ボックスを使った方が簡単です。

名前ボックスは、セルA1の真上にあるボックスです。いつもは「A1」のように選択したセルのアドレスが表示されています。名前を付けたいセル範囲を選択して、この名前ボックスに名前を入力すると選択したセル範囲に名前を付けることができます。上の図は、Sheet2のセル範囲B2:B4に「氏名データ」という名前を付けたところです。

[データの入力規則]ダイアログボックスの[元の値]ボックスに、設定した名前を入力します。先頭の「=」を忘れないようにしてください。

[元の値]を動的に変化させる

ここからは応用テクニックです。関数の意味などがわからない方には少し厳しいかもしれません…たとえば、シート上に2つのリストがあったとします。1つは大分類を選択するリストで、もう1つは大分類によって異なる項目を表示するリストです。

まず2つの氏名データにそれぞれ名前を付けます。ここでは、セル範囲B2:B4に「男性」、セル範囲D2:D4に「女性」という名前を付けました。ちなみに下の図のデータはSheet2に入力されています。実際にリストを作成するのはSheet1です。

セルB2とセルB4に、それぞれリストを作成します。セルB2のリストでは「男性」と「女性」を選択できます。セルB4のリストでは、セルB2のリストで選択した性別によって表示するリストを変化させます。最初に、セルB2にリストを作成します。

セルB4のリストでは、[元の値]に=INDIRECT($B$2)と関数を入力します。INDIRECT関数の使い方については「INDIRECT関数」をご覧ください。

実行すると下の図のようになります。ぜひ実際に入力して試してください。このテクニックをマスターしておくと、実に便利です。ここではINDIRECT関数を使いましたが、OFFSET関数などを使ってリストに表示する項目を変更する手もあります。

コンボボックスコントロールを使う

入力規則はExcelが内部で持っているリストをセル上に表示してくれます。したがって、ユーザーの好みによってデザインを変更することはできません。もっと自由にリストを表示したいのでしたら、オブジェクトとしてのリストをワークシート上に配置しましょう。ここでは、コンボボックスを例にして使い方をご紹介します。

Excelで使用できるコンボボックスは2種類あります。1つは[フォーム]ツールバーのコンボボックスで、もう1つは[コントロール ツールボックス]ツールバーのコンボボックスです。どちらもよく似ていますが別物です。ツールバーを表示するには[表示]メニューの[ツールバー]をポイントして、表示したいツールバーをクリックします。

[フォーム]ツールバーのコンボボックス

[フォーム]ツールバーから使用できるコントロールは、Excel 5.0/95から使用可能なコントロールです。コントロールの外観や機能などの情報はExcel自身が持っています。使い方が簡単だというメリットがありますが、機能的な制約があるというデメリットがあります。

コントロールを配置するには、[フォーム]ツールバーの[コンボボックス]ボタンをクリックします。マウスポインタが十字(+)に変化しますので、ワークシート上で配置したい範囲をドラッグします。 また、コンボボックスに表示する項目名はワークシート上に入力しておかなければなりません。あらかじめ、セル範囲E2:E4に「田中」「鈴木」「山田」などと入力しておいてください。

コンボボックスを配置したら、右ボタンをクリックしてショートカットメニューを表示し、[コントロールの書式設定]をクリックします。実行すると[オブジェクトの書式設定]ダイアログボックス(Excel 2000では[コントロールの書式設定])が表示されます。

[フォーム]ツールバーのコンボボックスは、この[オブジェクトの書式設定]ダイアログボックスで設定します。

[入力範囲]は、コンボボックスに表示する項目名が入力されているセル範囲を指定します。

[リンクするセル]は、コンボボックスで選択した項目名の番号が入力されるセルです。このセルを調べることで、ユーザーが何を選択したか知ることができます。後で使い方を解説しますが、[リンクするセル]に表示されるは選択した項目名ではなく、何番目の項目を選択したかという数字です。

コンボボックスの▼をクリックするとリストが表示されます。データを選択すると[リンクするセル]に選択した項目の番号が入力されます。この番号から項目名を調べるにはINDEX関数を使うと便利です。

セルC3には=INDEX(E2:E4,C2)という計算式を入力します。INDEX関数は行番号と列番号を指定しますが、この例のように1列の範囲を検索するときは列番号を省略できます。行番号には[リンクするセル]を指定します。

なお、ワークシート上でリストボックスを使う手順や重要な注意事項などを別コンテンツとして書きましたので、下記ページをご覧ください。

ワークシートでリストボックスを使う

[コントロール ツールボックス]ツールバーのコンボボックス

[コントロール ツールボックス]ツールバーに用意されているコントロール群は、ActiveXコントロールです。コントロールに関する情報はExcelが自分自身で持っているのではなく、ActiveXコントロールとして別ファイルに定義されています。[コントロール ツールボックス]ツールバーのコントロールは、[フォーム]ツールバーのコントロールに比べて設定が複雑ですが、詳細な設定が可能です。コントロールの配置は[フォーム]ツールバーと同じです。[コンボボックス]ボタンをクリックしてマウスポインタが+に変化したらワークシート上をドラッグします。ここで注意しなければならないのは、配置すると同時にデザインモードになることです。コントロールの設定は、デザインモード時にプロパティウィンドウで行います。プロパティウィンドウを開くには、[コントロール ツールボックス]ツールバーの[プロパティ]ボタンをクリックします。

上がプロパティウィンドウです。[フォーム]ツールバーのコンボボックスで設定した[入力範囲]はListFillRangeプロパティになります。[リンクするセル]はLinkedCellプロパティです。このコンボボックスはActiveXコントロールですから、他にもさまざまな設定が可能です。Fontプロパティで文字の色や大きさ、フォントの種類などを指定できますし、BackColorプロパティで背景の色を変更したり、MousePointerプロパティで表示するマウスポインタを変えることも可能です。

ListFillRangeプロパティとLinkedCellプロパティを設定したら、プロパティウィンドウ右上の閉じるボタン[×]をクリックして閉じます。

これだけでは、まだコンボボックスを使用できません。まだデザインモードのままだからです。プロパティウィンドウでの設定が終わったら[コントロール ツールボックス]ツールバーの[デザインモードの終了]ボタンをクリックしましょう。

上が使用例です。[フォーム]ツールバーのコンボボックスと違うのは、選択した結果が数字ではなく項目名で返ることです。INDEX関数などを使う必要はありません。

オートコンプリートを使う

さて、最後はオートコンプリート機能を使う方法をご紹介します。オートコンプリートとはExcelの入力支援機能のひとつです。

たとえば上図のように、セルB2に「横浜市保土ヶ谷区」と入力しておきます。すると、セルB3に「よ」と入力するだけで次の文字が補完されます。この機能は[オプション]ダイアログボックス[編集]タブの[オートコンプリートを使用する]がオンになっていると使用できます。

この機能を使ってリストを作るには、入力セルの直前行にあらかじめリストに表示したい項目名を入力しておきます。そのままでは見苦しいので、図のように行を非表示にしておくといいでしょう。

この状態でセルB5に「た」などと入力し残りの文字を補完してもよいのですが、リストから選択することもできるんです。リストを表示するには、Altキーを押しながら下矢印キー(↓)を押します。あるいは、セルB5を右クリックしてショートカットメニューを表示し、[リストから選択]をクリックしてもOKです。

オートコンプリートのリストを使う最大の利点は、リストに表示される項目が自動的に並べ替えられるということです。また同じデータが複数入力されていても、リストには重複しない項目が列挙されます。さらに、先頭文字を入力すれば残りの文字が補完されるのですから、キーボードでの入力もラクチンです。同じ列の上に項目名を入力しておかなければならないという制約はありますが、ケースによっては最強のテクニックになることでしょう。