• 締切済み

オプションボタン選択でコンボボックス有効

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 コードの間違いや改善点などありましたら教えて下さい。 よろしくお願いします。

みんなの回答

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>UserForme_Initializeに書いて、各コンボボックスにもコードを書いてみましたが、 書かれたコードをUPしてください。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

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

minminwamidori
質問者

お礼

ありがとうございます。UserForme_Initializeに書いて、各コンボボックスにもコードを書いてみましたが、コンボボックスのリストが表示されなくなってしまいました。オプションボタンを選択したときに指定のコンボボックスは操作できない…ということは実現できています。コンボボックスにリストが表示されるようにするにはどうしたらよいですか?Sheetは別ファイルではなく、コードが書いてあるファイルと同じファイルにあります。

関連するQ&A