コンボボックスでDBへ入力するには?

Question 10.2 Previous Next
県名シート 前ページのQ5.4の中にあるエディットボックスの一つを、「コンボボックス」にした場合、モジュールでは、どんな書き方(プロシージャ)になるのか、ご教示いただけると嬉しいです。

(ダイアログボックスのイメージ)
コンボボックス 例えば、EditBoxes(1)を「コンボボックス」にして、右図の「県名」シートのテーブルから抽出できるようにする。

「リストボックス」としない理由は、たまにテーブルにはない「北海道」とか「鹿児島県」なんてのも、あるかもしれないから。
Answer   Copyright (C) 1998.5.26 永井善王
comboを辞書で引いてみたら「コンボ(小編成のジャズ楽団)」となっていました。 コンボボックスとはエディットボックスとリストボックスが合わさった上図のようなコントロールです。
上図で県名の見出しのすぐ右に「東京都」と表示されている部分がエディットボックス。その下に「東京都、埼玉県…」とある部分がリストボックスです。
書式設定
コンボボックスの仕組みは、リストボックスに表示されている県名のどれかをクリックすると、その県名がエディットボックスに表示されます。リストボックスに希望の県名がない場合は、直接エディットボックスに入力することが可能です。
マクロでは、このエディットボックスに入っている値を、セルに取り出すことになります。
感の良い方は、ここまでの説明で、わかってしまったかも知れません。そうです、マクロの書き方は前ページのQ5.4と同じです。

ただし、コンボボックスの一部分であるリストボックスは、エディットボックスよりもプロパティの設定がやや複雑ですので、簡単に要点を説明しておきます。

ダイアログシートのデザイン画面で、リストボックスの上にマウスを位置付けて右クリックすると、右図のようなショートカットメニューが表示されるので「オブジェクトの書式設定」をクリックする。
オブジェクトの書式設定ダイアログ
左図のようなダイアログボックスが表示されるので「入力範囲」を入力する。
この場合、県名シート(冒頭の図)を表示してB2セルからB8セルをマウスで選択すれば、簡単に入力できます。
コンボボックスに入力された値をセルに写すためのマクロを、2通り作っておきました。
  1) 入力されたデータを直接にDBへ書き込む方法
  2) 一旦、入力シートに書いてからDBシートにコピー貼り付けする方法
詳細は、サンプルマクロ「
コンボボックス」を見てください。
サンプルマクロ
コンボボックス」をダウンロード すれば実際に動かしながら見れます。
関連ページ
 ・
コンボボックスで選択されたリストに対応する情報をエディットボックスに表示するには?

 

Excel VBA Macro