[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『コンボボックスの値に応じてテキストボックスの値を取得』(フィロ)
お世話になります。
調べても(検索のやり方が悪いからなのか)納得行くものが
得られなかったので質問させて頂きます。
UserFormのコンボボックスから値を選択 ←ここまでは出来てます。
値を選択後、それに紐付けられる値をテキストボックスに表示(入力)したいです。
例えば以下のようになります。
「酒」を選択後、そのコード番号である「1」をテキストボックスに反映させたい。
同様に、「フード」を選択後、「2」という具合です。
なお、コンボボックスのデータはシートから参照しており、その項目数は15程度あります。
その点も考慮して何かいい方法などありましたら、併せてご教授頂ければ幸いです。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
if文で出来る事は確認済みです。
しかしながら、項目数が多いという点で困っております。
何かいい方法はありませんでしょうか?
Private Sub cbShu_Change()
If frmHinshu.cbShu.Value = "酒" Then tbCode.Value = "1" End If
End Sub
(フィロ) 2016/09/24(土) 20:52
Changeイベントは、扱いにくいのでやめたほうがいいのですが、それはさておき。
アップされたような構えだと If文を15個ほど書かなければいけませんね。 将来、項目の追加・削除・変更があれば、その都度、コードをいじらなければいけないですねぇ。 これは、絶対に避けるべきです。
現在のシートの 例えば 酒 のデータ(行)のどこかに 1 といったコードを記入した列はないのでしょうか。 もし、ないのであれば、追加してでも、そういった列を設けましょう。
で、ComboBox には (表示は1列でも)その2列の内容を登録しておき、選択されれば、そのリスト内のコード列を参照します。
あるいは、ComboBox ではなく ListBox にして、表示を2列にしておけば、わざわざ tbCode というTextBox を作らなくてもいいと思います。
いずれにしても、具体的なお手伝いが必要なら
・シートのレイアウト ・ユーザーフォームでCOmboBoxのリストをセットしている部分のコード
この2つが知りたいですね。
(β) 2016/09/24(土) 21:16
(マナ) 2016/09/24(土) 21:24
DATAシートにリスト項目を入れ、コンボボックス等では参照しています。
従って、酒の隣行に項目を入れる事は可能な状態です。
今回のUserFormに記入されたデータを下に示すように、セル別に反映させたいのです。
シートは、3列構成です。
種類 | コード | 名称
'----------------------------------------------------------------------------------------
Private Sub UserForm_Initialize() ' DATAシートからコンボボックスにデータを反映
With Worksheets("DATA")
cbShu.List = .Range("F2", .Range("F" & Rows.Count).End(xlUp)).Value
End With
End Sub '---------------------------------------------------------------------------------------- (フィロ) 2016/09/24(土) 21:40
シートの 種類、コード、名称 は、それぞれ、どの列ですか?
現在、F列をコンボボックスのリストにしていますが、これは 種類 ですか 名称ですか?
(β) 2016/09/25(日) 00:18
上記質問の回答をもらってからのほうがいいかと思いますが、推測で。 種類が F列。隣のG列にコード番号が記載されているという前提です。
Private Sub UserForm_Initialize() With Sheets("DATA") cbShu.List = .Range("F2", .Range("F" & Rows.Count).End(xlUp)).Resize(, 2).Value End With End Sub
Private Sub cbShu_Change() tbCode.Value = "" If cbShu.ListIndex < 0 Then Exit Sub '未選択・入力途中 tbCode.Value = cbShu.List(cbShu.ListIndex, 1) End Sub
(β) 2016/09/25(日) 00:35
途中のマナさんから頂いたリンクも有益に使わさせて頂いたのですが、
コンボボックスへの2列表示の問題など(参照は出来るが、選択時には1列いずれか問題)などの壁に当たりました。
しかしながら、素人の思考でも理解し易い内容であったことから大きな感謝です。
βさんからの提供コードを参考にまた1つ前進出来そうです。
動作は出来てるが理解出来ない構文もあるので、調べながら進めていきたい所存です。
御二方、誠に有難うございました。
P.S. 当該サイトは募金システムとかないのでしょうか。どこにこの感謝を表現すれば...
(フィロ) 2016/09/25(日) 18:36
推測があたって、よかったです。
>>どこにこの感謝を表現すれば
いずれ、フィロさんが、この学校サイトで、回答者として活躍される、それが 学校への貢献になると思います。
(β) 2016/09/25(日) 18:48
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.