Home > Excel VBA Macro コントロール1 > FAQ

コンボボックスで選択されたリストに対応する情報をエディットボックスに表示するには?
Question 60.7 Previous Next
YN_comboboxをダウンロードさせて頂きまして、有難う御座いました。
県名シートで県名リストの隣に住所地リストを追加し、
県名リストを選択したら dialog1シートのエディット15内に、自動的に住所地リストを記入させたいのですが、可能なのでしょうか?
可能でしたらコードを教えて下さい。たびたびの質問大変申し訳ありませんが、どうど宜しくお願い致します。
Answer  Excel 95仕様 Copyright (C) 2003.6.5 永井善王
可能ですよ。
ダウンロードされた YN_combobox の詳しい仕様は、FAQ「コンボボックスでDBへ入力するには?」のページにありますので、そちらで見ていただくことにして、いきなりですが、どう修正すれば実現できるかを考えてみましょう。
Excel95仕様のコンボボックス
あらかじめお断りしておきますが、そのコンボボックスは右図のとおり、ダイアログシートに作成するExcel95仕様のものです。
最新版のExcel2002でも十分使用可能ですが、これから覚えられる場合は、ユーザーフォームに作成するコンボボックスの方が良いかもしれません。

県名シートのC列に住所地リストを追加してみましょう。
県名シート改良後
とりあえずテスト用として左図のように、C2セルへ「世田谷区湧水町」とだけ入力しました。
朱色の D1セルは、コンボボックスを構成するリストボックスの「リンクするセル」で、任意のセルを指定することができますが、説明の都合上、ここにしました。
この D1セルを、[Dialog1]シートのリストボックスを右クリックして[オブジェクトの書式設定]ダイアログボックスを表示し、[コントロール]の[リンクするセル]へ入力しておきます。
こうしておけば、クリックされたリストが何行目にあるかを示す値が、D1セルに格納されるようになります。

上図のD1セルには「1」と格納されていますが、これはリストの1行目つまり「東京都」がクリックされたという意味ですから、リストの元データである「県名」シートのB列では 2行目に相当します。
これだけ分かれば、あとは何とかなりますね。
そうです、C2セルの値を取得してエディットボックスの値として設定すればよいことになります。がんばってトライしてください。

関連ページ
 ・
エディットボックスにセルの値を初期表示するには?
 ・
セルの値を取り出す

なお、拙著「Excel VBA マクロ組み方講座」では、さまざまな類似例をわかりやすく解説しています。よろしければ、ご覧ください。 2003年6月下旬に全国書店で発売開始です。

 

Excel VBA Macro

Excel DownLoad