[リストへもどる]
一括表示

投稿時間:2003/10/02(Thu) 09:33
投稿者名:マーティー
URL :
タイトル:
コンボボックスの表示
コンボボックスにデータを表示するときに、3つの項目を横に表示したいと思っています。
(→ "部品番号" "部品名称" "メーカー"  のように。)
そして、データを選択したら、部品番号のみをコンボに表示させる。
ドロップダウンリスト上は複数項目で、選択後は1つの項目を表示するということです。
このようなことは可能でしょうか?

どなたかレスお願いします。ヘンな質問だったらすみません。なにせ初心者なもので・・・

投稿時間:2003/10/02(Thu) 10:46
投稿者名:nobu
Eメール:
URL :
タイトル:
Re: コンボボックスの表示
> コンボボックスにデータを表示するときに、3つの項目を横に表示したいと思っています。
> (→ "部品番号" "部品名称" "メーカー"  のように。)
> そして、データを選択したら、部品番号のみをコンボに表示させる。
> ドロップダウンリスト上は複数項目で、選択後は1つの項目を表示するということです。
> このようなことは可能でしょうか?

「可能」ですね。

NEC001 PC-9801  NEC

とかの様に各項目を空白で区切り並べたらどうでしょうか? 桁あわせをして。
選択・指定されたら Left 関数を使ってでも NEC001 は抜き出せます。


例えば簡単には下記みたいではどうですか?

Option Explicit

Private Sub Form_Load()

Combo1.AddItem "NEC001  PC-9801   NEC"
Combo1.AddItem "IBM001  Aptiva770 IBM"
Combo1.AddItem "DEL001  8200      DEL"

Combo1.Text = Combo1.List(0)

End Sub

Private Sub Combo1_Click()

Label1.Caption = Left(Combo1.List(Combo1.ListIndex), 6)

End Sub

 

投稿時間:2003/10/02(Thu) 11:04
投稿者名:マーティー
URL :
タイトル:
Re^2: コンボボックスの表示
> > コンボボックスにデータを表示するときに、3つの項目を横に表示したいと思っています。
> > (→ "部品番号" "部品名称" "メーカー"  のように。)
> > そして、データを選択したら、部品番号のみをコンボに表示させる。
> > ドロップダウンリスト上は複数項目で、選択後は1つの項目を表示するということです。
> > このようなことは可能でしょうか?
>
> 「可能」ですね。
>
> NEC001 PC-9801  NEC
>
> とかの様に各項目を空白で区切り並べたらどうでしょうか? 桁あわせをして。
> 選択・指定されたら Left 関数を使ってでも NEC001 は抜き出せます。
>
>
> 例えば簡単には下記みたいではどうですか?
>
> Option Explicit
>
> Private Sub Form_Load()
>
> Combo1.AddItem "NEC001  PC-9801   NEC"
> Combo1.AddItem "IBM001  Aptiva770 IBM"
> Combo1.AddItem "DEL001  8200      DEL"
>
> Combo1.Text = Combo1.List(0)
>
> End Sub
>
> Private Sub Combo1_Click()
>
> Label1.Caption = Left(Combo1.List(Combo1.ListIndex), 6)
>
> End Sub
>
>  

レスありがとうございます。
上記の方法でやってみたところうまくいきました。

しかし、選択後一つの項目がコンボに表示されるのはいいのですが、
それ以降、ドロップダウンリストの表示も一つになってしまいます。

選択すると一つの項目が表示され、再度選択するときの”ドロップダウンリストの表示は
3項目”というふうにはできないでしょうか?

投稿時間:2003/10/02(Thu) 11:29
投稿者名:nobu
Eメール:
URL :
タイトル:
Re^3: コンボボックスの表示
まず、不要な引用はしないで適切に削除して下さい。
私の提示した説明、サンプルコードを全て引用する必要はないでしょう。

> 上記の方法でやってみたところうまくいきました。
> しかし、選択後一つの項目がコンボに表示されるのはいいのですが、
> それ以降、ドロップダウンリストの表示も一つになってしまいます。

選択後、再度 Combo1 の右側の下向きの黒い三角をクリックすれば
こちらでは、全項目が表示されますが....。(今回は NEC から DEL まで)

ListBox は縦幅を大きくすれば一度の複数表示しますが
Combo1 は普通は1ケ表示では無いのでしょうか? (私が知っている範囲では)
プロパティ・ウインドウで Style で変更出来ますが....。

> 選択すると一つの項目が表示され、再度選択するときの”ドロップダウンリストの表示は
> 3項目”というふうにはできないでしょうか?

こう言う事はまずはHELPで調べましょう。

プロパティ・ウインドウで Style で
0 から2まである、1なら複数表示されるようです。

投稿時間:2003/10/02(Thu) 12:27
投稿者名:Lantern
Eメール:
URL :
タイトル:
Re^4: コンボボックスの表示
予想ですが・・・
Label1.Caption = Left(Combo1.List(Combo1.ListIndex), 6)

Combo1.Text = Left(Combo1.List(Combo1.ListIndex), 6)
としてやってるんじゃないかな?

それと、意図はCombBoxで選択時のみCombBoxに3項目表示で、選択後はCombBoxに
先頭項目だけ表示なのだと思うので、下の様にしてみたら?

Option Explicit

Private Sub Combo1_KeyPress(KeyAscii As Integer)

KeyAscii% = 0

End Sub

Private Sub Form_Load()

Combo1.AddItem "NEC001  PC-9801   NEC"
Combo1.AddItem "IBM001  Aptiva770 IBM"
Combo1.AddItem "DEL001  8200      DEL"

Combo1.Text = Left(Combo1.List(0), 6)

End Sub

Private Sub Combo1_Click()

Combo1.Text = Left(Combo1.List(Combo1.ListIndex), 6)

End Sub

投稿時間:2003/10/02(Thu) 12:38
投稿者名:nobu
Eメール:
URL :
タイトル:
Re^5: コンボボックスの表示
なるほど、納得です。
「ドロップダウンリスト上は複数項目で、選択後は1つの項目を表示する」を
良く理解していませんでした。 Label1 は無いのですね。

投稿時間:2003/10/02(Thu) 14:54
投稿者名:マーティー
URL :
タイトル:
Re^6: コンボボックスの表示
> なるほど、納得です。
> 「ドロップダウンリスト上は複数項目で、選択後は1つの項目を表示する」を
> 良く理解していませんでした。 Label1 は無いのですね。

ありがとうございます。
その方法使わせてもらってやってみます。

またお願いします。