- 締切済み
オプションボタン選択でコンボボックス有効
ExcelVBAでユーザーフォームを作成しているのですが、昨日までうまく動作していたことが、突然動かなくなりました。 オプション1を選択 ↓ コンボボックス1有効 ※他のコンボボックスは無効 ↓ オプション2を選択 ↓ コンボボックス2有効 ※コンボボックス1も含め他のコンボボックスは無効 という感じで動作させたいです。 書いたコードはこんな感じです。 Private Sub OptionButton1_Click () Dim i As Long Dim lastRow As Integer lastRow = Cells(Row.Count, 1).End(xlUp).Row If OptionButton1.Value = True Then OptionButton1.Enabled = True With ComboBox1 If ComboBox1 = "" Then For i = 2 To lastRow .AddItem Worksheets("sheet1").Cells(i, 1).Value Next i End If End With ComboBox1.ListIndex = 0 ComboBox2.Enabled = False ComboBox3.Enabled = False End If End Sub コードの間違いや改善点などありましたら教えて下さい。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- watabe007
- ベストアンサー率62% (476/760)
>UserForme_Initializeに書いて、各コンボボックスにもコードを書いてみましたが、 書かれたコードをUPしてください。
- watabe007
- ベストアンサー率62% (476/760)
ComboBox1のデータは、Sheet1のA2~ ComboBox2のデータは、Sheet1のC2~ ComboBox3のデータは、Sheet1のE2~E列の最終行として取得しています。 参考に Private Sub UserForm_Initialize() With Worksheets("Sheet1") Me.ComboBox1.List = .Range("A2", .Cells(Rows.Count, "A").End(xlUp)).Value Me.ComboBox2.List = .Range("C2", .Cells(Rows.Count, "C").End(xlUp)).Value Me.ComboBox3.List = .Range("E2", .Cells(Rows.Count, "E").End(xlUp)).Value End With Me.ComboBox1.Enabled = False Me.ComboBox2.Enabled = False Me.ComboBox3.Enabled = False End Sub Private Sub OptionButton1_Click() Me.ComboBox1.Enabled = True Me.ComboBox2.Enabled = False Me.ComboBox3.Enabled = False End Sub Private Sub OptionButton2_Click() Me.ComboBox1.Enabled = False Me.ComboBox2.Enabled = True Me.ComboBox3.Enabled = False End Sub Private Sub OptionButton3_Click() Me.ComboBox1.Enabled = False Me.ComboBox2.Enabled = False Me.ComboBox3.Enabled = True End Sub
お礼
ありがとうございます。UserForme_Initializeに書いて、各コンボボックスにもコードを書いてみましたが、コンボボックスのリストが表示されなくなってしまいました。オプションボタンを選択したときに指定のコンボボックスは操作できない…ということは実現できています。コンボボックスにリストが表示されるようにするにはどうしたらよいですか?Sheetは別ファイルではなく、コードが書いてあるファイルと同じファイルにあります。