• 締切済み

EXCEL コンボボックスのリスト設定

リストインデックスが複数ある場合は動くのですが、 インデックスが0 もしくは1個しかない場合は、どのように処理を追加したらいいでしょうか。。 実行時エラー381 Lisプロパティを設定できません。プロパティの配列のインデックスが無効です、と メッセージが出ます。 いろいろ試してるのですがわかりません。 コンボボックスの値は別シートで参照先を指定しています。 ----------- Private Sub ComboBox3_DropButtonClick() Dim lRow As Long Dim i As Long, myCnt As Long Dim myData With Worksheets("部門名") lRow = .Range("O" & Rows.Count).End(xlUp).Row ’O列の最終行を確認 myData = .Range("O2:O" & lRow).Value ’コンボボックスのリストデータ End With With ComboBox3 .ColumnCount = 1 .ColumnWidths = "50" .List = myData End With End Sub

みんなの回答

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

ListプロパティではなくRowSourceプロパティを使うとそのような現象は起きないですね Private Sub ComboBox3_DropButtonClick()   Dim lRow As Long   lRow = Worksheets("部門名").Range("O" & Rows.Count).End(xlUp).Row   With ComboBox3     .ColumnCount = 1     .ColumnWidths = "50"     .RowSource = Worksheets("部門名").Range("O2:O" & lRow).Address(External:=True)   End With End Sub

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

>リストインデックスが複数ある場合は動くのですが、 なら複数ある状態を作ってやれば如何でしょうか >lRow = .Range("O" & Rows.Count).End(xlUp).Row ’O列の最終行を確認  If lRow < 3 Then lRow = 3 >myData = .Range("O2:O" & lRow).Value ’コンボボックスのリストデータ