コンボボックス、及びリストボックスの使用方法

第二の入力作業の流れの場合の条件として、学生名を誰が入力しても完全に一致していなければなりません。理由は後々のプログラムを見て頂ければお分 かりになります。
日常における姓名の入力時の懸案事項:
1.文字変換間違い:
 例えば「おおた」の名前を「太田」、「大田」、「大多」などで
2.姓名表記の場合:
 苗字と名前の間にスペースを入れたり、入れなかったり。
3.間違えてスペースを書き込む:
 例えば「 大田」と前にスペースがあったり、「大田 」と後にスペースがあったりします。
 名前の後にスペースを間違えて入れているのが時々見られます。
これらが発生しますとプログラムでは同一姓名として判断できません。
従ってこれらの入力ミスを防ぐために名前を登録しておき、登録された表から名前を読み込むようにします。この働きを行なわせるコントロールが「コンボボッ クス」、又は「リストボックス」です。
今回は学生名の書込みにコンボボックス又はリストボックスを採用しますのでそれらのプロパティについて説明を行ないます。
コンボボックス、リストボックスのプロパティはほぼ同じです。
1.コンボボックス、リストボックスの働き:
 事前に登録された表からデータを読み込みリストを表示させるものです
1)コンボボックス:
主としては右端の▼をクリックして(ドロップダウン)リストを表示させ選択しますが、この選択方法だけでなくテキストボックスのように書込みを行なうこと もできます。
図22
2)リストボックス:
リストとして常時表示されており、このリストより選択する。
図23
貴方たちがマクロを組む上で使用勝手の良い方を利用ください。
この両者のプロパティの設定方法はほぼ同じなので同時に説明いたします。
1.学生名の登録を行ないます。
 1)新しいシートを追加します。
 2)シート名を「登録台帳」としましょう。ついでに最初の月別採点結果を書き込んでいたシート名を「採点表」としておきましょう
 3)「登録台帳」シートに次のように学生名を20名登録できる表を作成します。
図1
 4)表に名前を付けます。
 ①タブの「数式」→「名前の管理」をクリックします。図2
 ②「名前の管理」の登録画面が表示されます。
図3
③「新規作成」をクリックしますと「新しい名前」の設定画面が表示されます。
図4
④「名前」の項目に「学生名」と書込みます。
図5
⑤「参照範囲」の右端の図6をクリックすると表の範囲設定画面が表示されます。
図7
⑥学生名の表の範囲をドラッグして、指定します。
図8
⑦選択範囲が表示されます。
図9
⑧範囲の設定が終われば「Enter」キーを押しますと「新しい名前」の画面に戻りますので「OK」をクリックします。
⑨「学生名」の表が登録された「名前の管理」画面が表示されますので「閉じる」をクリックして終了です。
図10
2.コンボボックス、及びリストボックスを配置します。
図11
実際に使用する場合には、どちらか一方だけで良いのですが、プロパティの設定がほぼ同じなので一緒に説明致します。
3.プロパティの設定
1)RowSorce
 登録されている読み込み元データの設定
 先ほど「名前の管理」で設定した表の名前「学生名」と書き込むだけです。図12
同様にListBox1にもRowSourceの項目がありますので、「学生名」と書き込みます。
リストボックスには登録している学生名が表示されています。図13
コンボボックスについては右端の▼をクリックするとリストが表示されるのが分かるかと思います。
図14
2)ListWidth:この項目はコンボボックスのドロップダウンリストの幅を設 定できます。
例えば「学生名」の表の末尾に「あいうえおかきくけこ」と書き込んでください。図15
コードウィンドウのユーザーフォームでドロップダウンリストを表示させると完全に表示されていません。
図16
そこで「ListWidth」は初期には「0pt」となっているかと思いますが、プロパティの表の一番下にある「Width」の項目の数値より大きな数値 を書き込んで見てください。私の場合はWidth=78ptですので、ListWidthを「100」としてみました。
図18
単位「pt」は自動的に付与されま すので数値のみ書き込めば良いです。
「ListWidth」と「Width」は次図のようになっています。
但し、リストボックスには「ListWidth」はありませんので「Width」で調整します。
図17
3)ListRows:ドロップダウンリストに表示する行数の設定することができま す。
図19
リストボックスに関しては、この項はなく直接リストボックスの高さで調整することになります。
4)「Text」、「Value」 の説明:例えばコンボボックスで「大村」を選択した場合、図20
この「大村」の名前が「Text」、「Value」に表示されます。リストボックスも同様です。
コンボボックス内に表示されているのは「Text」に表示された文字です。
図21
【参照】今回はコンボボックス、リストボックスのRowSouceの表「学生名」は1列ですが、2列以上の表の場合にはプロパティの 「BoundColumn」、「TextColumn」でどの列を「Text」、又は「Value」に表示させるか設定できます。プログラム中で 「ComboBox1.Text」 と「ComboBox1.Value」の使い分けが必要となります。
2列以上の表についてのプロパティの説明は、後ほど行ないます。
5)TabIndexの設定:
最後に学生名のTabIndexが2でしたのでコンボボックスのTabindexを3、リストボックスを4としておきましょ う。それ以降のテキストボックスのTabIndexの書換え不要です。なぜなら挿入された番号に応じて自動に番号は繰り上げられます。
  
次ページへ

サイドバータイトル
inserted by FC2 system