• 締切済み

オプションボタンでリストボックスの表示を切り替え

VBAの初心者です。 知恵をお貸しください。 ユーザーフォーム内にオプションボタンを2つ、リストボックスが1つ配置してあります。オプションボタン1でデータ1がリストボックス内に表示。オプションボタン2でデータ2がリストボックスに表示されてます。この時、2つのデータが同時に表示されてしまいます。オプションボタン1の時は1のデータ、オプションボタン2の時は2のデータだけを表示させるにはコードをどのように書けばいいかご教授ください。宜しくお願い致します。

みんなの回答

回答No.2

複数のアイテムをリストボックスに登録するには・・ 例えば、おっしゃる  データ1 ⇒ A1:A3 の範囲  データ2 ⇒ B1:B3 の範囲 に用意されているとして。 Private Sub OptionButton1_Click()   ListBox1.Clear   For Each a In Range("A1:A3")     ListBox1.AddItem a.Value   Next End Sub Private Sub OptionButton2_Click()   ListBox1.Clear   For Each a In Range("B1:B3")     ListBox1.AddItem a.Value   Next End Sub こんな書き方もあります。 データの範囲に名前がついていれば、例えば Private Sub OptionButton1_Click()   ListBox1.Clear   For Each a In Range("データ1")     ListBox1.AddItem a.Value   Next End Sub こんな書き方もできますよ。 後々を考えるとこちらの方が便利かもです。

  • HohoPapa
  • ベストアンサー率65% (454/690)
回答No.1

なぜListBoxを使うのかわかりませんが こんなカンジでしょうか。 Private Sub OptionButton1_Change()  If OptionButton1.Value = True Then   ListBox1.Clear   ListBox1.AddItem "ABCDE"  End If End Sub Private Sub OptionButton2_Click()  If OptionButton2.Value = True Then   ListBox1.Clear   ListBox1.AddItem "FGHI"  End If End Sub

関連するQ&A

  • MS Accessでオプショングループのトルグボタンを利用してリストボックスのデータを絞り込む

    MS Accessでシステムを作っています。 フォームにはリストボックスがあり。人名及びコードを選択するようになってます。 コード 名前 読み(非表示) 1111 山本 ヤマモト 2222  安藤 アンドウ など200人位あります。 リストボックスの下にはオプショングループを設置して"あ","か"・・ というトルグボタンを10個配置しました。 やりたい処理はオプショングループ内のトルグボタン"あ"を押した時にはリストボックスに表示されるデータは読み(非表示)の頭文字"あ~お"のデータを抽出したいです。 やれそうでやれなくて困っています。どなたかよいアドバイスお願いします。

  • リストボックス内の表示

    エクセル2000VBAです。 ユーザーフォームのリストボックスに複数列(No,日付,氏名,金額,摘要)のデータを表示させています。 リストボックス内で、日付が“1/2/2004”と表示され, 金額には千円単位の“,”表示されません。 この日付を“2004/2/1”と表示させ、金額に“,”を表示させる方法はないでしょうか?

  • エクセル VBAのリストボックス

    エクセルのVBAでユーザーフォーム上のリストボックスに文字を入力すると候補がドロップダウンリストに表示され、候補から一つを選択するとドロップダウンリストをとじるといったコードを教えてください。ただし、最終的にリストボックスの値はリストから選ぶのみで、文字を入力するのは候補を表示するためだけに使いたいのです。どなたか、ご教授願います。

  • ユーザーフォームにあるチェックボックスやオプションボタンなどの選択結果保存

    VBA初心者で恐縮です・・・ ユーザーフォームにあるチェックボックスやオプションボタンなどの選択して作業を終えファイルやユーザーフォームを閉じると、次にファイルやユーザーフォームを開いたら、前回にチェックボックスやオプションボタンにチャックをいれたものが外れています。 このように、チェックボックスやオプションボタンにチェックをいれたのを、次回ユーザーフォームを開いたときに残しておくことは可能でしょうか? 可能なら、その方法をお教えください。 よろしく、お願いいたします。

  • コマンドボタン選択でリストボックス内容変更

    ユーザーフォーム内のあ~たコマンドボタンをクリックするたびにリストボックス内のリスト内容が変更する。 "あ"のコマンドボタンをクリックしたらsheetの氏名頭文字あ列の氏名がリストボックスに反映するようなコードがわかりません。どなたかご教授のほどよろしくお願いします。

  • リストボックスについて

    ユーザーフォームで使うリストボックスですが、項目が少ないので三角マークをなくしたいのです。 リストボックスを大きくするとなくなるみたいですが、必要以上に大きくしないとダメです。 設定できるところはあるのでしょうか? また、縦ではなく横長にリストを表示させることはできますか? オプションの、ロウソースのところで、シート!A2:A5みたいな感じでしていますが、A2:C2とかにしてもダメです・・ よろしくご教授くださいませ。

  • リストボックスについてです。

    リストボックスについてです。 B列をダブルクリックするとリストボックスが立ち上がり、データを選択してB列に表示できるように設定されていますが、困った現象が起こっています。 例えば、sheet1のB10にダブルクリックでリストボックスを表示し、そこから「あいうえお」という名前を表示させて、sheer1編集が終わったとします。 次のsheet2でB1をダブルクリックしているのに、sheet2のB10に勝手に「あいうえお」と表示されてしまいます。 コードは以下になってます。 VBA初心者なのでエクセルのサイト等からコピペ等して作ったコードです。 どこかおかしな箇所があると思うのですが、何処がおかしいのかがわかりません。 お分かりになる方、教えていただければ助かります。 ' ◆Worksheetのコード◆ '---------------------------------------------------- '選択範囲を変更したときに実行される Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) UserForm1.ListBox1.RowSource = "データ!A1:A100"  '表示するデータ範囲 UserForm1.ListBox1.Font.Size = 12    'フォントサイズ If Target.Column = 2 Then 'B列なら 行 = Target.Row '行番号を取得する UserForm1.Show 'ユーザーフォームを表示する End If End Sub '=================================================================================== ' ◆UserForm1のコード◆ '-------------------------------------------------------------------------- Private Sub ListBox1_Click() 'クリックされたときに実行される If 行 <> 1 Then '1行目でなければ Cells(行, 2) = ListBox1.Value 'リストボックスの値をセルにセットする End If UserForm1.Hide 'ユーザーフォームを非表示にする End Sub Private Sub UserForm_Deactivate() '非アクティブになったときに実行される Unload Me 'ユーザーフォームをメモリから削除する End Sub '========================================================================================= '============================== ' ◆標準モジュールのコード◆ Option Explicit Public 行 As Variant '行番号 Sub auto_open() Load UserForm1 'ユーザーフォームをメモリに読み込む End Sub '==============================

  • コンボボックスかリストボックスの使い方

    VB2008でプログラミングしています。 コードと値がセットになっているDBからデータを取得して フォームに表示させるように作成しています。 フォームに表示するのは値で、実行ボタンを押したときには コードを取得したいのですが この場合は、コンボボックスでしょうか?リストボックスでしょうか? 複数選択はできません。 選ばれたコードを元にDBを検索するプログラムが実行されます。

  • 'ユーザーフォーム右上隅の[×]ボタンを表示しない

    Excell VBA にて ユーザーフォーム内に[コマンドボタン]を配置し、このボタンにてユーザーフォームの消去およびその他の作業を行うコードを書い動作させています ユーザーフォームの右上隅に表示されている[×]ボタンを表示しない(又は消去する)方法をおしえてください

  • リストボックスのリストを削除する

    リストボックスのリストを削除する アドバイスをお願いします。 下の構文でユーザーフォーム内のリストボックスに リストを表示させるようにしました。 Private Sub UserForm_Initialize()  With ListBox1 .RowSource = "データー!B3:B33" End With End Sub 表示されたリスト内で、不要になったリストをコマンドボタンの押下したときに データーシートのB3からB33の中から選択したリストと同じデーターを 探して削除する方法をお教えください。

専門家に質問してみよう