![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?a65a0e2)
フォームで入力画面をつくっています。
あるコンボボックスのリストから項目が選択されたら、一覧からリンクさせてテキストボックスの内容を更新がしたいのです。
例えば「社員コード」のコンボボックスで「3」が選択されたら、「社員名」のテキストボックスに別シートに作成してある社員一覧から「太郎」が表示されるというようにです。
セルA1とコンボボックスをリンクさせ、セルB1にVLOOKUP(A1,一覧,2)で一覧から名前を抽出しました。コンボボックスのChangeイベントでB1の内容をテキストボックスへ送っているのですが、カーソルを別の項目へ移動するまではテキストボックスの内容が更新されません。
コンボボックスのリストを選択した時点でテキストボックスを更新する方法はないでしょうか?
No.2ベストアンサー
- 回答日時:
こんばんは。
今は、Form というのは、UserForm のことだと思います。Excelには、フォームツールもありますが、レガシーツールですから、割愛します。
>セルA1とコンボボックスをリンクさせ、セルB1にVLOOKUP(A1,一覧,2)で一覧から名前を抽出しました。
UserForm で、なぜ、ComboBox で、A1 にリンクさせるのでしょうか?
リンクというのは、ControlSource のことだと思います。それでは、出来ませんね。
Change イベントに組み込まないといけません。そのような方法をしなくても可能です。
'-------------------------------------------
たとえば、ワークシートのセルに社員コードと社員名を入れたもの書かれてあるとします。
次に、ComboBox のプロバティの「RowSource」に少なくとも、2列を登録します。
なお、ComboBoxは、2列も入れることが可能です。
ColumnCount | 2 ,ColumnWidth | 20 pt; 20 pt (pt は省略可)のようにすることが可能です。
そうして、以下のようにすれば、テキストボックスに出てくるはずです。
.ListIndex + 1 と+1しているのは、初期値が -1 で、最初が、0 からだからです。
'-------------------------------------------
Private Sub ComboBox1_Change()
Dim ret As Variant
With ComboBox1
ret = Application.VLookup(.ListIndex + 1, ActiveSheet.Range(.RowSource), 2)
If Not IsError(ret) Then
TextBox1.Value = ret
End If
End With
End Sub
'-------------------------------------------
ActiveSheet よりも、Worksheets(____) と入れたほうがよいです。
知識がないために出来る範囲でやろうとして、まったく無駄なことをしていたようです。
勉強不足を痛感いたしました。
教えていただいた記述で思ったとおりの処理が出来ました。
ありがとうございました。
No.1
- 回答日時:
同じことを試して見ましたが、コンボボックスの選択イベントでテキストボックスの値は更新されました。
駄目だったコードを提示して見てください。
あと、Excelのバージョンも。
この回答への補足
コンボボックス社員コードのChangeイベントで
Sheets("一覧表").Range("A1") = Int(社員コード)
社員名 = Sheets("一覧表").Range("B1")
B1のセルには「=VLOOKUP(A1,一覧,2)」という関数が入っています。
Excelは2003を使用しています。
よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Visual Basic(VBA) EXCEL VBA データベースの内容をユーザーフォームに表示したい。 5 2023/02/14 11:40
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) EXCEL VBA ユーザーフォームの内容をループでデータベースに登録したい。 2 2023/02/02 10:22
- Visual Basic(VBA) VBA ComboBoxについて 2 2022/10/21 12:15
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Excel(エクセル) Excel コンボボックス バックカラー 1 2023/02/18 08:06
- Visual Basic(VBA) ExcelVBA ドロップボックスで月を選択するとそれ以降のデータが残るようにしたい。 3 2022/12/16 14:53
- Visual Basic(VBA) Vba テキストボックスの文字列をボタンで入力するとテキストボックスの端の文字列が更新されない 2 2022/05/21 23:32
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】大変な警告
【大喜利】「今このパソコンは大変危険な状態です」という警告メッセージを無視してパソコンを開いたら、こんなことが起こった
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
もし10億円当たったら何に使いますか?
みなさんの10億円プランが知りたいです!
-
あなたなりのストレス発散方法を教えてください!
自分なりのストレス発散方法はありますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
VBA コンボボックスとテキストボックスを連結させたい
Visual Basic(VBA)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
-
4
VBAのユーザーフォームで、テキストボックスを連携させたいのですが。
Visual Basic(VBA)
-
5
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
6
エクセルVBA 別シートからのコンボボックス連動
Visual Basic(VBA)
-
7
【Excel VBA】コンボボックスで選択した値の取得
Excel(エクセル)
-
8
Excel VBAのフォーム_ラベルの縦位置
その他(パソコン・スマホ・電化製品)
-
9
UserForm1.Showでエラーになります。
工学
-
10
VBA コンボボックスで選んだものを各テキストボックスに反映
Visual Basic(VBA)
-
11
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
12
エクセルVBAでコンボボックスの非表示について
iOS
-
13
ExcelのComboboxでマウスのスクロールを有効にしたい
Excel(エクセル)
-
14
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
15
ユーザーフォームのラベルに日付を表示させる方法があればお願いします。出来ればコード書いていただけると
Visual Basic(VBA)
-
16
TextBoxから数字が文字として入力される?
Visual Basic(VBA)
-
17
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
18
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
19
コンボボックスからテキストボックスに連続して値を出したい
Excel(エクセル)
-
20
VBAコンボボックスの内容が反映されない
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
VBAでの SendKeysの変数指定方法
-
Excelでプルダウンからフィルタ...
-
Excelマクロ セルを行頭に移動
-
マクロ:エクセルVBAでのワーク...
-
Excel VBA で色付きのセルの値...
-
ダブルクリックでセルに色をつ...
-
Excel VBA:フォーム←→セルのア...
-
IF関数で違う値もTRUEになる
-
【マクロ】1つのセルから結合...
-
マクロの記録で任意の文字を検...
-
ファイルサーバー上のexcelファ...
-
セルをクリックしたら色を変え...
-
excel マクロでの特殊文字入力方法
-
(エクセルVBA)セルを左クリッ...
-
選択されたセルが赤くなる方法...
-
マクロのデータ削除
-
エクセル:セルの色のコード番...
-
Excelのマクロ貼り付けについて
-
エクセルでスピンボタンとスク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
エクセルでセルをクリックする...
-
VBAでの SendKeysの変数指定方法
-
Excelマクロ セルを行頭に移動
-
IF関数で違う値もTRUEになる
-
(エクセルVBA)セルを左クリッ...
-
Excel VBA:フォーム←→セルのア...
-
Excel VBA で色付きのセルの値...
-
ファイルサーバー上のexcelファ...
-
セルをクリックしたら色を変え...
-
Excelでプルダウンからフィルタ...
-
エクセル:セルの色のコード番...
-
エクセルマクロで「セルのサイ...
-
VBA Rangeの足し算
-
マクロのデータ削除
-
【VBA】アクティブセルだけ背景...
-
excel マクロでの特殊文字入力方法
-
【EXCEL-VBA】特定の値の入った...
-
結合されたセルの移動 VBA
-
ExcelVBA コンボボックスに入力...
おすすめ情報