
フォームで入力画面をつくっています。
あるコンボボックスのリストから項目が選択されたら、一覧からリンクさせてテキストボックスの内容を更新がしたいのです。
例えば「社員コード」のコンボボックスで「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も見ています
-
VBA コンボボックスとテキストボックスを連結させたい
Visual Basic(VBA)
-
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
-
4
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
5
ExcelのComboboxでマウスのスクロールを有効にしたい
Excel(エクセル)
-
6
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
7
入力した値をコンボボックスにすぐに反映させる方法
Excel(エクセル)
-
8
コンボボックスからテキストボックスに連続して値を出したい
Excel(エクセル)
-
9
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
10
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
11
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
12
コンボボックス内の文字サイズ変更
Excel(エクセル)
-
13
エクセルVBAでフォームのListboxをスクロールするには?
その他(Microsoft Office)
-
14
Accessのデータのインポートで重複分を排除
その他(Microsoft Office)
-
15
Accessコンボボックスとテキストボックス連携
Visual Basic(VBA)
-
16
VBAのユーザーフォームで、テキストボックスを連携させたいのですが。
Visual Basic(VBA)
-
17
エクセルVBA「リストボックスで選択した値をテキストボックスで変更してシート上セルに反映したい」
Excel(エクセル)
-
18
VBA リストボックス(複数条件)で検索し、転記方法についてご教示ください。
Visual Basic(VBA)
-
19
ExcelVBA No.を自動連番で設定をしながらデータ入力をしたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
VBAでの SendKeysの変数指定方法
-
マクロのデータ削除
-
(エクセルVBA)セルを左クリッ...
-
セルをクリックしたら色を変え...
-
IF関数で違う値もTRUEになる
-
ExcelVBAでセルの値利用してフ...
-
結合されたセルの移動 VBA
-
【EXCEL-VBA】特定の値の入った...
-
エクセル VBA アクティブセル...
-
エクセルマクロで「セルのサイ...
-
【マクロ】1つのセルから結合...
-
エクセルでスピンボタンとスク...
-
VBA Rangeの足し算
-
EXCEL(VBA) セルをクリックし...
-
VBA ボタンをセルの右側に合わ...
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
【Excel関数】UNIQUE関数で"0"...
-
excelのデータで色つき行の抽出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
エクセルでセルをクリックする...
-
VBAでの SendKeysの変数指定方法
-
Excel VBA:フォーム←→セルのア...
-
エクセルマクロで「セルのサイ...
-
Excelマクロ セルを行頭に移動
-
マクロのデータ削除
-
セルをクリックしたら色を変え...
-
IF関数で違う値もTRUEになる
-
Excel VBA で色付きのセルの値...
-
excel マクロでの特殊文字入力方法
-
【EXCEL-VBA】特定の値の入った...
-
(エクセルVBA)セルを左クリッ...
-
ロックされていないセル内をクリア
-
ダブルクリックでセルに色をつ...
-
ファイルサーバー上のexcelファ...
-
Excelでプルダウンからフィルタ...
-
VBA Rangeの足し算
-
【VBA】アクティブセルだけ背景...
-
ExcelVBA コンボボックスに入力...
おすすめ情報