ExcelVBA コンボボックスリストのリセット

このQ&Aのポイント
  • ExcelVBAのコンボボックスリストのリセット方法についてヘルプが必要です。
  • ユーザーフォームでオプションボタンとコンボボックスをレイアウトしましたが、コンボボックスのリストをオプションボタンによって変えたいです。
  • 具体的には、コンボボックス(1)で選ばれた文字によってコンボボックス(2)のリストを変更したいです。方法を教えてください。
回答を見る
  • ベストアンサー

ExcelVBA コンボボックスリストのリセット

4月からマクロを勉強し始めて、壁にぶつかっています。 ユーザーフォームでオプションボタンの下にコンボボックス(1)を、そのさらに下にもうひとつコンボボックス(2)をレイアウトしました。 コンボボックス(1)は選ばれたオプションボタンによって、異なるリストを表示させるようにしてあります。 わからないのは、コンボボックス(2)のリストをコンボボックス(1)で選ばれた文字によって変えたいのです。 たとえば、コンボボックス(1)で"A"と選択されたら、コンボボックス(2)にはリストA'が、(1)で"B"と選択されたら、(2)にはりすとB'が…、というように、場合分けさせたいのです。 方法をご存知の方がいらっしゃいましたら、ご教示ください。よろしくお願いいたします。

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

  • ベストアンサー
noname#11856
noname#11856
回答No.3

Private Sub ComboBox1_Click() With Me.ComboBox2 .Clear Select Case Me.ComboBox1.Text Case "a" .AddItem "A" .AddItem "B" Case "b" .AddItem "C" .AddItem "D" End Select End With End Sub Private Sub UserForm_Activate() With Me.ComboBox1 .AddItem "a" .AddItem "b" End With End Sub #1ではAddItemをAddと間違えていましたが 上記コードでうまくいきましたけど・・・。 前後のコードがなにか邪魔しているとか? ちなみに上記ではコンボ1のClickイベントを使用していますが、Changeイベントでもうまくいきました。

romiromi
質問者

お礼

あ!できていました! ありがとうございました。 Me.と入れただけで動くようになるなんて。 お手数おかけしました。これからもっと勉強をしていきます。

その他の回答 (2)

  • junijuni
  • ベストアンサー率25% (12/48)
回答No.2

NO.1の方の回答でほぼ合ってますが、 Combobox1_Clickではなくて ComboBox1_Changeに同じコードを書けばいいですね。

noname#11856
noname#11856
回答No.1

テストしていないので間違っていたらごめんなさい(^-^; コンボ(1)が切り替えられたら(Clickイベントでいいかな・・・?)、 コンボ(2)のAdd前にClearメソッドで一旦リストを消去。 それから改めてコンボ(1)の内容に対応するリストを追加します。 例えば、Combobox1_Clickイベント内にて With Combobox2  .Clear  Select Case Combobox1.Text   Case "A"    .Add "あ"    .Add "い"   Case "B"    .Add "か"    .Add "き"  End Select End With 上記コードで、Combobox1で"A"が選択されていれば"あ"、"い"を "B"が選択されていれば"か"、"き"を表示することができます。

romiromi
質問者

お礼

早々のお返事、ありがとうございました。 実は、SelectCaseを使ったプログラムは先に試していて、エラーにはならないもののコンボボックス(2)のリストには何も出て来ませんでした。 ほかの方法をご存知でしたら、お手数ですがお知らせください。

関連するQ&A

  • テキストボックスのデフォルト設定とコンボボックスの更新について

    テキストボックスのデフォルト設定とコンボボックスの更新について エクセルのVBAで、ユーザーフォームを使用しています。 ユーザーフォームの中にはコンボボックスとテキストボックスとボタンがあります。 コンボボックスには「ABCDEFGHIJKLM」と合計13のリストがあります。 ユーザーフォーム起動時に、コンボボックスには最初のリスト(A)が表示 されていて、「次へ」ボタンと「戻る」ボタンの2つを用意しています。 (1)ユーザーフォーム起動時にテキストボックスに「0」を入れる方法を教えていただけないでしょうか。 コンボボックスで「A」が選択された状態で「次へ」ボタンをおしたら「B」が選ばれる。 「D」が選択された状態で「次へ」ボタンをおしたら「E」が選ばれる。 「M」が選択された状態で「次へ」ボタンをおしたら「A」が選択される。(リストの最初に戻る。) というのは、次のVBAで上手くいきました。 If Combobox1.ListIndex < Combobox1.ListCount - 1 Then Combobox1.Text = Combobox1.List(Combobox1.ListIndex + 1) Else Combobox1.Text = Combobox1.List(0) End If (2)しかし「E」が選択された状態で「戻る」ボタンをおしたら「D」が選ばれる。 「G」が選択された状態で「戻る」ボタンをおしたら「F」が選ばれる。 「A」が選択された状態で「戻る」ボタンをおしたら「M」が選ばれる。(リストの最後に戻る。) といった内容のマクロがうまく組めません。 教えていただけると助かります。

  • エクセル マクロ コンボボックスリスト

    sheet1の場所でボタンクリックでフォーム表示。その中でコンボボックスリストを作成。 sheet3にデーターをA列に作りました。 1)フォームの中のコンボボックスをクリックしてリスト表示させた い。マクロの記述を教えてください。 2)コンボボックスリストに表示した文字をsheet2に記録するボタンを作ったがマクロの記述を教えてください。

  • 【Access2010】 コンボボックスのリセット

    オプションボタンとコンボボックスの連携(再クエリ)はできています。 オプションボタンや選択(1)~選択(3)を選んだ後にどれか1つでも選び直した場合、選択(1)~選択(3)をリセット(空欄)にする方法はありますか?  <やりたいこと>   ・オプションボタンを選び直したら選択(1)~選択(3)すべてリセット   ・選択(1)を選び直したら選択(2)と(3)をリセット   ・選択(2)を選び直したら選択(3)をリセット 尚、コンボボックスをリストボックスにした場合、選び直すと自動的にリストが変更されるのは確認できましたが、次ページに移るとリストボックスの部分が前ページの内容がそのまま表示されてしまいました。さらには、次ページの内容を変更後前ページに戻るとリストボックスの部分が次ページの内容が表示されてしまうので、リストボックスの使用はあきらめました。 リストの件数が少ないので本当はリストボックスを使用したいです・・・

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

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

  • ExcelVBAでコンボボックスを選択不可にする

    ExcelVBAで初期表示させたときにコンボボックスが選択できないようにするにはどうしたらいいか教えて下さい。 オプションボタンが4個あり、コンボボックスが3個あります。配置のイメージは以下の通りです。 <配置イメージ> ○オプションボタン1 ○オプションボタン2【コンボボックス1】 ○オプションボタン3【コンボボックス2】 ○オプションボタン4【コンボボックス3】 <今の状態> (1)初めに開いたときはどのコンボボックスもクリックできる (2)「オプションボタン1」を選択すると、全てのコンボボックスがクリックできない (3)「オプションボタン2」を選択すると、コンボボックス1が選択できるが、他のコンボボックス2と3は選択できない。 (4)「オプションボタン3」を選択すると、コンボボックス2が選択できるが、他のコンボボックス1と3は選択できない。 (5)「オプションボタン4」を選択すると、コンボボックス3が選択できるが、他のコンボボックス1と2は選択できない。 今の状態の(1)を改善したく、どなたか教えていただきたくお願い致します。

  • ExcelVBA コンボボックスの表示

    お世話になります。 VBAユーザフォームのコンボボックスのリストにソースから追加しています。 ColumnCountを2に設定しているので、コンボボックスから選択するときにはちゃんと2列表示されるのですが、選択したあとにコンボボックスの表示に残るのは1列目だけなのです。 どのプロパティを変更したらいいのか見つかりません。 ご存知の方がいらっしゃいましたら、教えてください。 よろしくお願い致します。

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

    excelVBAのコンボボックスについて質問です。 ユーザーフォームに設置したコンボボックスに違うシートの特定範囲を設定するには どのようにプログラムすればよろしいでしょうか? 自分なりにいろいろ調べてみたのですが解決できませんでした。 要約すると ユーザーフォームはsheet1からボタンで起動させ(ここまでは苦もなくできました)、でてきたユーザーフォームにあるコンボボックスにsheet2にある特定範囲 また、この特定範囲をデータのある範囲だけ(データが追加されれば自動でそれを取得する)に設定することは可能ですか?

  • [Access2003]コンボボックスとリストボックスの違い

    今、Access2003のフォームのコントロールの作成について勉強しています。『コンボボックス』と『リストボックス』を見て、コンボボックスは、「ドロップダウン形式でスペースを節約できる点」、リストボックスは、「一覧がすべて表示される」という意味がよく分かりませんでした。 インターネットでいろいろ調べて見たのですが…. 例えば・・・・ 店名ID 店名 A A店 B B店 C C店 と『コンボボックス』と『リストボックス』が表示され、ボックスの上の選択の矢印があるかないかの違いしか分かりませんでした。 (1)Access初心者なので『コンボボックス』と『リストボックス』について簡潔に教えてくださったら助かります。もしホームページで『コンボボックス』と『リストボックス』について一目で見たら違いが分かるというものが掲載されていたら教えてください。 (2)コンボボックスの「ドロップダウン形式」がよく分からないです。

  • 既存のマクロをコンボボックスのプルダウンで選択できるようにしたいです。

    マクロ1、マクロ2、マクロ3を コンボボックスのプルダウンで選択できるようにしたいです。 ユーザーフォーム上でコンボボックスの三角の矢印を選択したら 下の白い部分にマクロ1、マクロ2、マクロ3を選択できて 選んだマクロを実行できるようにしたいです。 よろしくお願い致します。

  • コンボボックスで

    コンボボックスで、あるテーブルを参照してリストを出す場合、リスト中になかった場合に、コマンドボタンを押せばテーブルの追加フォームが出てきて入力できるようにしています。この場合に、入力フォーム内で終了(保存)ボタンを押せば、自動的にコンボボックスの中に入り、かつもう一度選択しなくても表示されているような操作はできないものでしょうか?

専門家に質問してみよう