フォームで入力画面をつくっています。
あるコンボボックスのリストから項目が選択されたら、一覧からリンクさせてテキストボックスの内容を更新がしたいのです。
例えば「社員コード」のコンボボックスで「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)
-
【Excel VBA】コンボボックスで選択した値の取得
Excel(エクセル)
-
UserForm1.Showでエラーになります。
工学
-
-
4
VBAのユーザーフォームで、テキストボックスを連携させたいのですが。
Visual Basic(VBA)
-
5
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
6
VBA コンボボックスで選んだ値を取得するには
その他(Microsoft Office)
-
7
VBA コンボボックスで選んだものを各テキストボックスに反映
Visual Basic(VBA)
-
8
EXCEL VBAのコンボボックスに取り込むリストについて
Excel(エクセル)
-
9
コンボボックス内の文字サイズ変更
Excel(エクセル)
-
10
EXCEL VBA コンボボックス、テキストボックスが未入力のときメッセージを表示する方法
Excel(エクセル)
-
11
VBAでシートからコンボボックスにデータを設定する方法
Visual Basic(VBA)
-
12
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
13
エクセル ユーザーフォームにオートシェープ(図形)を貼り付けるこは可能なのでしょうか?
Excel(エクセル)
-
14
EXCELのコンボボックス 配置の縦位置の変更はどうすれば?
Windows Vista・XP
-
15
VLOOKUP関数とテキストボックスの連携
Excel(エクセル)
-
16
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
17
コンボボックスの文字によるif文の作成
Visual Basic(VBA)
-
18
i=cells(Rows.Count, 1)とi=cells(Rows.Count, 2)の違い
Visual Basic(VBA)
-
19
Excel VBA ユーザーフォーム内のラベルにテキストボックスの計算結果を出す方法
Visual Basic(VBA)
-
20
[エクセルVBA] コンボボックスのリストの更新方法について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBA:フォーム←→セルのア...
-
IF関数で違う値もTRUEになる
-
VBAでの SendKeysの変数指定方法
-
マクロ:エクセルVBAでのワーク...
-
エクセルでセルをクリックする...
-
エクセルマクロで「セルのサイ...
-
Excelでプルダウンからフィルタ...
-
Excel UserForm の表示位置
-
vba 2つの条件が一致したら...
-
VBAマクロ実行時エラーの修正に...
-
VLOOKUPの列番号の最大は?
-
エクセル マクロ オートフィ...
-
フォルダ内にある全ファイルの...
-
特定の文字がある行以外を削除...
-
VBA シートをコピーする際に Co...
-
EXCELVBAでリストボックス複数...
-
VBAでユーザーフォームにセル値...
-
Excel VBAでCheckboxの名前を変...
-
「段」と「行」の違いがよくわ...
-
VBA 複数条件の分岐処理の上手...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
エクセルでセルをクリックする...
-
VBAでの SendKeysの変数指定方法
-
Excel VBA:フォーム←→セルのア...
-
Excelマクロ セルを行頭に移動
-
【VBA】アクティブセルだけ背景...
-
IF関数で違う値もTRUEになる
-
エクセルマクロで「セルのサイ...
-
Excel VBA で色付きのセルの値...
-
ダブルクリックでセルに色をつ...
-
excel マクロでの特殊文字入力方法
-
マクロのデータ削除
-
ExcelVBA コンボボックスに入力...
-
ファイルサーバー上のexcelファ...
-
VBA Rangeの足し算
-
Excelのマクロで選択している行...
-
(エクセルVBA)セルを左クリッ...
-
エクセル:セルの色のコード番...
-
セルをクリックしたら色を変え...
-
EXCEL(VBA) セルをクリックし...
おすすめ情報