10年ほど前から、楽しく自動化を始めて、仕事にしています。

vba

エクセルVBAのフォームで選んだオプションボタンでコンボボックス(プルダウンメニュー)を変える。

フォームを追加して設定します

パーツを配置。

シートには、フォームからの情報を残す欄、プルダウン用の文字を作ります。

Private Sub OptionButton1_Change()

    ThisWorkbook.Worksheets("Sheet1").Range("A2") = OptionButton1.Value
    'オプションボタンの結果をA2セルに入れる
            
    If ThisWorkbook.Worksheets("Sheet1").Range("A2") = True Then
        '付け合わせする
        Me.ComboBox1.RowSource = "D2:D6"

    End If
    
End Sub

Private Sub OptionButton2_Change()

    ThisWorkbook.Worksheets("Sheet1").Range("B2") = OptionButton2.Value
    'オプションボタンの結果をB2セルに入れる
            
    If ThisWorkbook.Worksheets("Sheet1").Range("B2") = True Then
        '付け合わせする
        Me.ComboBox1.RowSource = "E2:E6"

    End If
    
End Sub

フォームのコードにVBAコードを入力します。

これで、フォームを立ち上げると、ボタンを押しかえると、下のリストが変わります。

これを、発展させて、フォームを立ち上げた時に前回の、値を表示させたいときは、

UserForm_Initializeする時に、

Me.ComboBox1.RowSource = “”
をしないと、エラーになります。

コメント

この記事へのコメントはありません。

ランキング
開発・運営ランキング
にほんブログ村 IT技術ブログへ
にほんブログ村 IT技術ブログ Tipsへ
にほんブログ村 IT技術ブログ JavaScriptへ
にほんブログ村 IT技術ブログ VBAへ
PAGE TOP