コンボボックスの読み込み元の表が複数列の場合のプロパティの説明

今回は複数列の表を読み込み元としています。そのため追加のプロパティの設定が必要となります。
設定に必要なプロパティの項目は次の9項目です。
「BoundColumn」、「ColumnCount」、「ColumnHeads」、「ColumnWidths」、「ListRows」、 「ListWidth」、「TextColumn」、「Text」、「Value」です。
前のページで「登録台帳」シートにコンボボックスの読み込み元の表の名前付けを下記のように行ないました。
図3発注先会社名のコンボボックス1で説明を進めて行きます。
前ページのプロパティの設定で、ComboBox1のRowSourceに「会社名」と書き込んでいるためコンボボックス1の右端の図19をクリックすると、下図のように登録されている会社名の一覧が表示されます。
図2
1)「ColumnCount」:リストに表示を行なわせたい列数を設定。
「会社名」表は、「正式会社名」と「商品名範囲名前」の2列の範囲を選択していました
ので、「2」と書き込みます。
図3
コンボボックスの右側の▼を再度クリックすると、リストが2列表示されているのがわかります。
図
2)「ColumnWidths」:リストの列幅の設定
上記のように列幅が狭くて完全に表示されていないのを調整する項目です。
設定の仕方は「数値;数値」でセミコロン(;)で区切って指定します。
全体が表示できるよう数値を適当に書き込みながらコンボボックス右端の▼をクリックしてその表示を見ながら調整します。
目安は「会社名」表中の文字サイズが10ptで最長の文 字数が10文字なので、100の値を目安として調整を行うと良いかと思います。
今回の場合は、「110;40」と書き込むと表示が完全になります。
単位「pt」は自動的 に表示されます。
図5
 列の表示は完全になりましたが、リストの幅が狭いために下部のスクロールバーで
 左右にスクロールさせなければなりません。このリストの幅を設定するのが次の項目です。
3)「ListWidth」:リストの幅設定
この幅の設定を行います。
図6
実際作業では数値を書き込み、リストの幅を確認しながら行いますが、ここでは「180」と書き込むとよいでしょう。
図7
4)「ListRows」:リストで表示したい列数の設定。
 初期設定は「8」となっていますので「会社名」の表の8行が表示されています。設定を変えたければ数値を書き換えます。
リスト右端のスクロールバーを使用したくなければ、会社名の表の最大行数は10社としていますので、初期設定の「8」を「10」に書き換えると良いでしょ う。
5)「ColumnHeads」:表の表題をリストに表示するかどうかを設定。
 False:非表示、True:表示
 右端の▼でTrueを選択すると下図のように各列の表題が表示されます。図15
今回はFalseで進めます。
図8
 リストの見やすさの問題だけですので、今後のプログラム上には何も問題はありません。
6)「Text」:このTextで表示された文字がコンボボックスに表示されます。
 例えばリストから「株式会社中村工業」を選択した場合、「Text」に「株式会社中村工業」が書き込まれまれ、コンボボックス内に表示されます。
図9

図10
 ではコンボボックス内に中村工業の隣の列の「会社名3」を表示させたい場合はどうするか。
 それを指示するのが次の「TextColumn」で設定を行います。
7)「TextColumn」:「Text」に書き込ませたい表の列番号を設定。
 初期設定は「-1」に設定されていますが、表の2列目「会社名3」を表示させたい場合は、「-1」を「2」に書き換えます。
「Text」には「会社名3」が書き込まれます。
図11
コンボボックスにはこの「会社名3」が表示されます。図16
今から作成するプログラムでは正式会社名をコンボボックスに表示させたいため、「1」に設定しなおしていてください。
8)「Value
」:Textと同様に読み込み元の表の指定された列 の文字を読み込みます。
 現在は株式会社中村工業が表示されて「Text」と同じかと思います。
この先のプログラム内でこのValueには「商品範囲名前」の列を表示させたいので変更する必要があります。
どの列の表示を行なわせるか指定できるのが次のBoundColumnです。
9)「BoundColumn」:「Value」に書き込む列を設定します。
 初期設定では「1」の状態になっています。この値を「2」に書き変えてみましょう。
図12
プロパティの「Value」の値が「株式会社中村工業」から「会社名3」に変わっているのがわかると思います。
図13
 以上で会社名のコンボボックスのプロパティの説明をおわります。
10)「Text」及び「Value」の表示を設定する理由:
プログラムを組む中で「会社名」の表の「正式会社名」と「商品範囲名」とを使用します。
どのように指定するかと言いますと「正式会社名」は「ComboBox1.Text」、「商品範囲名」は「ComboBox1.value」で表すことが できます。
10)商品名のコンボボックス2から6のプロパティの設定を以下の表のように行って おきましょう。
図14
 ここで設定しています「ColumnWidth」、「ListWidth」は、前述しましたように「RowSource」に暫定的に「会社名1」と書い て、リストの表示状況を見ながら調整されたものです。
 BondColumn、TextColumnの設定により、Textの値には「商品名」を、 「Value」の値には「単価」を書き込むようにしています。
設定が完了したら「RowSource」に暫定的に書き込んだ「会社名1」を消去しておいてください。
 「RowSource」を設定していないのは、もうお分かりかもしれませんが、発注先会社名によって変更する必要があるためです。
 例えば会社名(コンボボックス1)で「株式会社中村工業」を指定した場合、「RowSource」に「商品名範囲名前」列の「会社名3」を、また他の会 社を選択すればそれに応じた表の「商品名範囲名前」列の「会社名X」を設定しなければなりません。
そのために事前にRowSourceを設定しておくことができません。
 商品名のコンボボックスの「RowSource」指定の仕方は次のページで説明を行ないます。
以上でユーザーフォーム上の コントロールの設定が終わりましたので、次のページからプログラムを組んでゆきましょう。
リストボックスのプロパティの項目もほぼ同様の働きをしていますのでここでは省略いたします。

次 ページへ


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