Excel VBAでテキストボックスとコンボボックスの連動を作成する方法

このQ&Aのポイント
  • Excel VBAを使用して、テキストボックスとコンボボックスの連動を作成する方法をご教示いたします。
  • テキストボックスに語句が入力されると、右にコンボボックスが表示され、コンボボックスで選択された項目に応じて、さらに下にテキストボックスが表示される仕組みを作成します。
  • 具체的な手順としては、まずテキストボックスと実行ボタンを表示し、他の4つのコンボボックスとテキストボックスを非表示にします。テキストボックスに語句が入力されたら、コンボボックス1が表示され、コンボボックス1で選択された項目に応じてテキストボックス2が表示されるようにします。最終的には、テキストボックス3の表示までを実現することが目標です。ご参考までに、Excel VBAを使用してこのような連動を作成する方法を解説します。
回答を見る
  • ベストアンサー

テキストボックスに入力すると、コンボボックスが出現する

いつもお世話になっています。 ExcelVBAについてなのですが、あるシート上にテキストボックスを作っておきます。 で、それに何か語句が入力されたら、テキストボックスの右にコンボボックスが出現するというのを作りたいのです。 そのコンボボックスで何かが選ばれたら、更にその下にテキストボックスが現れるというのが理想です。 並び順は テキストボックス1   コンボボックス1 テキストボックス2   コンボボックス2 テキストボックス3   実行ボタン 最初にあるのは「テキストボックス1」と「実行ボタン」のみです。その他の4つは隠れています。 テキストボックス1→コンボボックス1→テキストボックス2→コンボボックス2→テキストボックス3の順で出現するのを作りたいのです。 そういうことって可能でしょうか? あらかじめ作っておき、各々のプライベートでvisibleでfalseにして作ったのですが、テキストで「入力したら」とか、コンボで「選んだら」というのができませんでした。 よろしければお知恵をお貸しください。よろしくお願いします。

  • quincy
  • お礼率90% (121/133)

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんな意味? Private Sub TextBox1_Change()  ComboBox1.Visible = TextBox1.Value <> "" End Sub Private Sub ComboBox1_Change()  TextBox2.Visible = ComboBox1.Value <> "" End Sub Private Sub TextBox2_Change()  ComboBox2.Visible = TextBox2.Value <> "" End Sub Private Sub ComboBox2_Change()  TextBox3.Visible = ComboBox2.Value <> "" End Sub

quincy
質問者

お礼

一発回答ありがとうございます。 「こんな意味」でした。仰るとおりです。 これで今日の仕事2時間ぐらいかかってできなかったのに・・・わかる人からしたら、あっという間なんですね。そうかそうか・・・今、ソースを貼り付けてみて、思った通りなので感動いたしました!ありがとうございました。

関連するQ&A

  • テキストボックスとコンボボックス

    こんにちは、Accessのフォームにテキストボックスとコンボボックスを設置して、以下のような事ができないかと悩んでおります。 フォーム内には、テキストボックスとコンボボックスが設置してありまして、コンボボックス内にDB(会社名テーブル)から取得した全ての会社名が入っています。 しかし、そのレコード数が300件近くあるため、コンボボックス内から探し出すのに手間が掛かります。 そこで、コンボボックスの隣にテキストボックスを設置し、テキストボックス更新後に会社名テーブルの検索を行い、条件に合った会社名だけをコンボボックス内に入れることを考えているのですが、上手く行きません。 動作のイメージとしては下記のようになります。 (1)初期表示時はテキストボックス内に何も入力されていないので、全レコードがコンボボックス内に表示される。 (2)テキストボックスに「有限」と入力して、テキストボックスからフォーカスを移動させると、コンボボックス内に「有限」が会社名に含まれているレコードのみが入っている。 (3)テキストボックスを空白に戻すと、コンボボックス内には全レコードが表示 以上、どなたかご教授よろしくお願いします。

  • コンボボックスでデータ入力

    Access 2000 フォームにコンボボックスとテキストボックスを配置しています。 コンボボックスには種別[A][B][C]を選択できるようにし、 テキストボックスには納期日の「年」「月」「日」の3つのテキストボックスを 配置しました。 「種別」「納期日」を入力後、実行ボタンをクリックすると テーブル「T_商品」の種別フィールド、納期日フィールドに NULL値のフィールドに一括でデータを入力したいと考えております。 どのようにすればいいのでしょうかよろしくお願いします。

  • 【C#】コンボボックスに任意の数字を入力し、それをテキストボックスに表

    【C#】コンボボックスに任意の数字を入力し、それをテキストボックスに表示させる方法 C#初心者です。 コンボボックスの処理につまずいています。 <処理> 1.コンボボックスに任意の数字を入力できるようにしておく。 2.そして、任意の数字を入力する。 3.ボタンを押したら、その入力した数字がテキストボックスに表示される。 1と2はできるのですが、3がよくわかりません。 どなたかご教授いただけると幸いです。 宜しくお願いいたします。

  • テキストボックスからコンボボックスへ自動入力したい

    AccessVBA初心者です。 Access2003を使用しています。 formAフォーム上の非連結textBテキストボックスに英字を入力 して、exe実行ボタンをクリックしたら、Cテーブルに連結した cmbCコンボボックスに該当文字列を表示したいです。 Private Sub exe_Click() If Me.textB.Value = "A" Then Me.cmbC.Value = 1 Else Me.cmbC.Value = 2 End If End Sub 実行ボタンをクリックしても、コンボボックスの内容は変わり ません。 if文にブレークポイントを設定してステップインで一行ずつ実 行するとコンボボックスに数字にあった文字列が表示できます。 うまく表示できるように、よろしくお願い致します。

  • コンボボックスの自動更新について

    コンボボックスの自動更新について エクセルのVBAで、ユーザーフォームを使用しています。 ユーザーフォームの中には「入力」ボタンとコンボボックスと テキストボックスがあります。 コンボボックスは、「ABCDEF」と6つのリストがあります。 ユーザーフォーム起動時には、コンボボックスは空欄で コンボボックスから、入力したい商品を選んで、入力ボタンを押して コンボボックスとテキストボックスの内容を入力・コンボボックスを 空欄に戻しています。 これを、「A」を選んで入力ボタンをおしたら「B」が選ばれる。 「B」を選んで入力ボタンをおしたら「C」が選ばれるといったように コンボボックスに表示されるリストを自動で更新することは できないでしょうか? Select case などを利用して組み立てようとしたのですが、 数時間以上調べても出来ません。 教えていただけると助かります。

  • コンボボックス 1文字入力できてしまう VBA

    お世話になっております。 Excel2003を使用しております。 コマンドボタンを押したときにコンボボックスをいじられては困るので、 コンボボックスの設定を Me.ComboBox1.Locked = True にしているのですが、 1文字入力できてしまい、 自動的にリストの内部を探してしまいます。 これを防ぐ方法(入力も選択もできないようにする方法)はありませんか? Enable=False にするしかないでしょうか?

  • Access テキストボックスとコンボボックス

    Access初心者で、勉強がてらデータ登録フォームを作成しています。 フォーム上にコンボボックスを設置し、 テーブルに保存されているデータを検索できるようにしたのち、 テキストボックスのコントロールソースには簡単に 「=[コンボボックス].[column](2)」としています。(それぞれの名前は仮称です) 後から、テキストボックスひとつで 「コンボボックスからの検索結果を表示させる」と 「テキスト入力も可能とする」 を共存させたいと思い始めたのですが、可能になりますでしょうか。 ただし「コンボボックスからの検索結果表示」をしたテキストボックスに対し、 その情報をフォーム上で書き換えたとしても、テーブル側のデータ書き換えは行いたくありません。 よろしくお願いいたします。

  • ACCESSのコンボボックスについて

    ACCESSのコンボボックスに「012/015/028/125」等が設定されているて、 コンボボックスのプロパティの「入力チェック」は「はい」の設定になっております。 そういった場合、「12」と入力した場合、「012」とすることは可能でしょうか? テキストボックスの場合には、そのテキストボックスの更新後処理で Me.コード = Format(Me.コード, "000") のように記述し変更していたのですが・・・。 コンボボックスでは、「指定した値はリストにありません」と表示され、更新後処理がが実行されません。

  • ExcelVBA コンボボックスに入力があったらリンクしてテキストボックスを更新したい

    フォームで入力画面をつくっています。 あるコンボボックスのリストから項目が選択されたら、一覧からリンクさせてテキストボックスの内容を更新がしたいのです。 例えば「社員コード」のコンボボックスで「3」が選択されたら、「社員名」のテキストボックスに別シートに作成してある社員一覧から「太郎」が表示されるというようにです。 セルA1とコンボボックスをリンクさせ、セルB1にVLOOKUP(A1,一覧,2)で一覧から名前を抽出しました。コンボボックスのChangeイベントでB1の内容をテキストボックスへ送っているのですが、カーソルを別の項目へ移動するまではテキストボックスの内容が更新されません。 コンボボックスのリストを選択した時点でテキストボックスを更新する方法はないでしょうか?

  • コンボボックスからテキストボックスに連続して値を出したい

    エクセルVBAのユーザーフォームで、コンボボックスで選択したものをコマンドボタンを押すことで、同じフォーム上のテキストボックスに表示するところまではできたのですが、同じテキストボックスに追記する形でコンボボックスで選択したものを表示したいのですが、可能でしょうか。テキストボックスは複数行表示できるようにプロパティのMultiLineはTlueに設定することはしたのですが、2回目以降コンボボックスで選択した後コマンドボタンを押してもそのまま上書きするようなコードしかわかりません。 テキストボックスに、20回目まで選択項目を追加表示し、最後にはエクセルのシートにそのデータをコピーしたいのです。果たして、そのようなことは可能でしょうか。可能であればどのように記述すればよいのでしょうか。ぜひ諸先輩方のお知恵をお貸しください。よろしくお願いします。

専門家に質問してみよう