1

ユーザー グループ タイプで構成される Excel ユーザーフォームにコンボ ボックスがあります。ユーザーのアクセス レベルに応じて、いくつかの Option\item を無効にしたり、非表示にしたりしたいと考えています。 毎回リストを再作成する必要があるため、Removeitem は使用したくありません。

sub ComboBox_Enter() 

accessLvl = 1

ComboBox.AddItem "0-Show"
ComboBox.AddItem "1-Hide or disable"
ComboBox.AddItem "2-Show"
ComboBox.AddItem "3-Show"

For i = 0 To 3
      if accessLvl = 1 Then ComboBox.List(1).Hidden = True ' This not does work!! ''
Next

End sub

無効にするかグレー表示するか、表示されないようにしたいだけですが、コンボボックスリストにはまだあります!*

4

1 に答える 1

0

私の知る限り、それはできませんが、別の方法があります。ユーザーは、特定のアイテム (指定したもの) が表示され、無効になっていない場合でも、そのアイテムを選択することはできません。

これについては、このコードを試してください

Dim boolC As Boolean

'~~> Add Sample data
Private Sub UserForm_Initialize()
    ComboBox1.AddItem "Please Choose Again"

    For i = 1 To 10
        ComboBox1.AddItem i
    Next i
End Sub

'~~> This will not let the user select items in 2nd
'~~> 3rd and 4th items
Private Sub ComboBox1_Change()
    If Not boolC Then
        boolC = True
        Select Case ComboBox1.ListIndex
            Case 1, 2, 3: ComboBox1.ListIndex = 0
        End Select
        boolC = False
    End If
End Sub

スクリーンショット

フォームの起動時にフォームがこのように見えるとしましょう。

ここに画像の説明を入力

2 番目、3 番目、または 4 番目のアイテムを選択した瞬間に、Please Choose Again

ここに画像の説明を入力

于 2013-10-16T13:33:16.017 に答える