「StiLL」Excel情報255  関数--INDEX関数、コンボボックスの作り方 Excel2007版
■皆さんはExcelのコンボボックスを使ったことがありますか?データを一覧から選択する時などに使うとても便利な機能です。これにINDEX関数を組み合わせると、データの一覧から選んだ値の明細までもが表示でき、本格的プログラムの第一歩です。 ☆対応方法:一覧から指定したデータの明細を表示させるようにします。コンボボックスに入力範囲とリンクするセルをそれぞれ指定し、INDEX関数の行番号にコンボボックスのリンクするセルと同じセルを指定します。すると、選択されたものの明細が表示されます。 ※ご参考までに。INDEX関数は、指定する列(行)が1列(行)だけの場合、列(行)番号の指定は省略することができます。
今回は、バックナンバー027でご紹介した、「関数--INDEX関数、コンボボックスの作り方」の
Excel2007版をご紹介します。
Excel2003以前のバージョンでの方法は、以下のバックナンバーをご参照ください。
【バックナンバー027】 関数--INDEX関数、コンボボックスの作り方
コンボボックスにて選択した得意先の各種データが、それぞれセルに表示されます。
今回はこのようなフォームを作成しましょう。
■コンボボックス
コンボボックスとは、値をドロップダウン式に一覧から選択できるようにするものです。
デフォルトでは、コンボボックスを作成するための [開発] タブが表示されていないので、
まず開発タブを表示する設定を行います。
[Office ボタン]→[Excel のオプション]ボタンをクリックします。
[基本設定]画面内の [ [開発]タブをリボンに表示する] にチェックを入れると、
リボンに [開発] タブが表示されます。
「フォーム コントロール」 の 「コンボ ボックス」
開発タブ内の [挿入] ボタンをクリックして
[フォーム コントロール] の一覧から
[コンボ ボックス] を選び、シート上に
貼り付けます。
■INDEX関数
INDEX関数は、任意の範囲内で、指定した行と列が交差するセルの値を求めます。
■フォームの作成
以下のようなデータテーブルから、選択した得意先のデータをフォームに表示するようにします。
・データテーブル  ・明細データ表示フォーム
@シートに貼り付けたコンボボックス上で右クリックし、[コントロールの書式設定]→[コントロール]
を選択して、[入力範囲] に「得意先」のデータ範囲(この例の場合はC3からC7)を設定し、
[リンクするセル] には任意のセル(この例ではセルG2)を選択します。
A明細データの得意先には
 =INDEX(B3:F7<得意先データ範囲>,G2<コンボボックスで設定したリンクするセル>,2<得意先データ範囲内の列番号>)
 と入力すると、コンボボックスで選択した得意先のデータが表示されます。
 同様に受注コード等のセルにも、INDEX関数を設定します。
  数式(例)
得意先 =INDEX(B3:F7,G2,2)
受注コード =INDEX(B3:F7,G2,1)
担当 =INDEX(B3:F7,G2,5)
単価 =INDEX(B3:F7,G2,3)
原価 =INDEX(B3:F7,G2,4)
Copyright(C) アイエルアイ総合研究所 無断転載を禁じます