フォームで入力画面をつくっています。
あるコンボボックスのリストから項目が選択されたら、一覧からリンクさせてテキストボックスの内容を更新がしたいのです。
例えば「社員コード」のコンボボックスで「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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
つい集めてしまうものはなんですか?
人間誰もは1つ「やたらこればかり集めてしまう」というものがあるもの。 あなたにとって、つい集めてしまうものはなんですか?
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
VBA コンボボックスとテキストボックスを連結させたい
Visual Basic(VBA)
-
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
【Excel VBA】コンボボックスで選択した値の取得
Excel(エクセル)
-
-
4
UserForm1.Showでエラーになります。
工学
-
5
任意で選択したセルをテキストボックスに表示
Excel(エクセル)
-
6
コンボボックスの文字によるif文の作成
Visual Basic(VBA)
-
7
Excel VBAのフォーム_ラベルの縦位置
その他(パソコン・スマホ・電化製品)
-
8
VBA コンボボックスで選んだものを各テキストボックスに反映
Visual Basic(VBA)
-
9
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
10
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
11
VBAコンボボックスの内容が反映されない
その他(プログラミング・Web制作)
-
12
エクセルVBA 別シートからのコンボボックス連動
Visual Basic(VBA)
-
13
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
14
VBAのユーザーフォームで、テキストボックスを連携させたいのですが。
Visual Basic(VBA)
-
15
ユーザーフォームのラベルに日付を表示させる方法があればお願いします。出来ればコード書いていただけると
Visual Basic(VBA)
-
16
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
17
[エクセルVBA] コンボボックスのリストの更新方法について
Excel(エクセル)
-
18
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
19
TextBoxから数字が文字として入力される?
Visual Basic(VBA)
-
20
コンボボックスからテキストボックスに連続して値を出したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロ セルを行頭に移動
-
セルをクリックしたら色を変え...
-
【VBA】アクティブセルだけ背景...
-
Excel VBA で色付きのセルの値...
-
VBA Rangeの足し算
-
エクセルマクロで「セルのサイ...
-
ExcelVBA コンボボックスに入力...
-
エクセルで離れた列を選択して...
-
エクセル マクロ オートフィ...
-
B列の最終行までA列をオート...
-
VBAで、離れた複数の列に対して...
-
VBAマクロ実行時エラーの修正に...
-
エクセルVBAで内容変更のたびに...
-
Excelのシート上のShapeにイベ...
-
特定の文字がある行以外を削除...
-
Excel UserForm の表示位置
-
【Excel関数】UNIQUE関数で"0"...
-
【VBA】【ユーザーフォーム_Lis...
-
エクセルのマクロについて教え...
-
Excel VBAでのWorksheet_Change...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
エクセルでセルをクリックする...
-
Excel VBA:フォーム←→セルのア...
-
Excelマクロ セルを行頭に移動
-
VBAでの SendKeysの変数指定方法
-
エクセルマクロで「セルのサイ...
-
マクロのデータ削除
-
セルをクリックしたら色を変え...
-
ファイルサーバー上のexcelファ...
-
Excel VBA で色付きのセルの値...
-
IF関数で違う値もTRUEになる
-
Excelでプルダウンからフィルタ...
-
【VBA】アクティブセルだけ背景...
-
【マクロ】1つのセルから結合...
-
excel マクロでの特殊文字入力方法
-
ダブルクリックでセルに色をつ...
-
(エクセルVBA)セルを左クリッ...
-
VBA Rangeの足し算
-
ExcelVBA コンボボックスに入力...
-
【EXCEL-VBA】特定の値の入った...
おすすめ情報