1−3 コンボボックスをつける

図1−3−1前回は、セルに入力規則を設定し、入力値をリストから選択するやり方を行ってみました。このやり方は非常に優れた方法です。しかし、入力規則をコピーして使用しなければならないという難点がありました。
今回は、この部分を解消できるように コンボボックス自体をシートに貼り付けてしまうやり方を行ってみます。コンボボックスの場合は同じシート内にデータが無くても構わないので 新しいシートを作成し、その場所にリストを作成します。メニューバーの挿入−ワークシートを行って新しいシートを作成します。(なお、前回2列目に作成した入力規則は入力値の設定をドロップダウンリストから「全ての値」を選択することにによって入力規則を消去します)。ここで、作ったシートの名前をわかりやすいように「DB」としておきます。
データの内容として O列に作ったデータをコピーして「DB」シートのB列の4行目にコピーします。この後 O列は削除しておきます。(今回は都合でこの位置からデータを書き始めます)。わかりやすいように、B3のセルには内容という項目名をつけておき、罫線もひいておきます。この後 家計簿のシートのO列はもう使わないので 削除しておきます。

家計簿を作成したシートに戻って、1行目の行上に行を挿入。幅は広めに 22.5(30ピクセル)程度にしてみましょう。コンボボックスは通常のツールバーには表示されていません。表示−ツールバーから、フォームを表示させると、図1−3−2出てきますのでこれを利用します。左図の○でしるしたのが、コンボボックスです。このアイコンをクリックしてB列の一行目−内容の上で範囲をドラックして作成し、マウスボタンを解放すると、シート上にコンボボックスがつくられます。
この状態で 作成されたコンボボックスを右クリックしてでてくる「コントロールの書式設定」の画面を出します。図1−3−3

入力範囲というのは、コンボボックスに表示する文字列のことですので、「DB」シートのB4:B30を指定します。DB!$B$4:$B$30と表示されます)。なお、この設定の場合にテキストボックス右の絵をクリックして指定すると簡単です。

次に、リンクするセルですが、今回は「DB」シートのB1を指定します。DB!$B$1と表示されます)。リストの行数はとりあえず変更しないでOKのボタンを押します。
家計簿を作成したシートのB3セルを一旦クリックして、コンボボックスの選択状態を解除し、リストから内容を選んでみます。例えば、「缶詰め」を選択すると コンボボックスのテキスト部分に「缶詰め」という文字が現われます。この時 「DB」シートのB1のセルには7という数字が書き込まれているはずです。7という数字は、選択された値が入力範囲の7番目である事を示しています。しかし、この数字だけでは何だかわかりませんよね?どうしたら、7番目の内容を得られるのでしょう?

この部分いくつか方法はありますが、INDEX関数を使ってみましょう。B2のセルに「=INDEX(B4:B30,B1,1)」という関数を入れます。「DB」シートのB4:B30の範囲の上からB1のセルにある行数目の値を返して、B2のセルに入れるというものです。これで、コンボボックスから選択した値を取得する準備は整いました。あとは、「DB」シートのB2のセルの値をコピーして 必要なセルに「形式を指定して貼り付け−値の貼り付け」すれば良いのです。

??って、はっきり言って面倒臭いです。かえって大変! そんな声が聞こえてきそうですが、この値を簡単に取り込める方法があります。それがマクロの利用です。次はこのマクロについて見てゆきましょう。

戻 る