|
いつもお世話になっております。今回もアドバイスのほど宜しくお願い致します。
ユーザーフォームにオプションボタン11個とリストボックス1つを配置しています。選択されているオプションボタンを調べて、その選択されている項目をリストボックスに表示させるため、以下の様に書いたのですが、オプションボタンの判定の仕方のが、For〜Nextでいいのか?また、Select Caseではなくもっとすっきりとしたコードにならないものかと考えております。ListBox1の設定には、RowSourceではなく、Listでもかまいません。宜しくお願い致します。
Dim myRan As String
Dim i, myRow As Integer
With frmCBO
For i = 1 To 11
If .Controls("Opt" & i) = True Then Exit For
Next i
Select Case i
Case 1
myRow = Sheets("CBO").Range("M65536").End(xlUp).Row
myRan = "CBO!M2:M" & myRow
Case 2
myRow = Sheets("CBO").Range("N65536").End(xlUp).Row
myRan = "CBO!N2:N" & myRow
Case 3
myRow = Sheets("CBO").Range("O65536").End(xlUp).Row
myRan = "CBO!O2:O" & myRow
Case 4
myRow = Sheets("CBO").Range("P65536").End(xlUp).Row
myRan = "CBO!P2:P" & myRow
Case 5
myRow = Sheets("CBO").Range("Q65536").End(xlUp).Row
myRan = "CBO!Q2:Q" & myRow
Case 6
myRow = Sheets("CBO").Range("R65536").End(xlUp).Row
myRan = "CBO!R2:R" & myRow
Case 7
myRow = Sheets("CBO").Range("S65536").End(xlUp).Row
myRan = "CBO!S2:S" & myRow
Case 8
myRow = Sheets("CBO").Range("T65536").End(xlUp).Row
myRan = "CBO!T2:T" & myRow
Case 9
myRow = Sheets("CBO").Range("U65536").End(xlUp).Row
myRan = "CBO!U2:U" & myRow
Case 10
myRow = Sheets("CBO").Range("V65536").End(xlUp).Row
myRan = "CBO!V2:V" & myRow
Case 11
myRow = Sheets("CBO").Range("W65536").End(xlUp).Row
myRan = "CBO!W2:W" & myRow
End Select
With .ListBox1
.ColumnCount = 1 '列数の設定
.RowSource = myRan 'リスト
.ColumnWidths = "40 pt"
End With
End With
|
|