1

これが私の問題です。

10個のコンボボックスを持つユーザーフォームがあります。これらのコンボボックスを 1 つずつ選択する代わりに、バックカラーやフォントカラーなどの複数のコンボボックスのプロパティを変更するスマートな方法はありますか?

たとえば、次のようになります。

Sub ChangeMultipleComboBoxes()
Dim comboB as control

For Each comboB In Me.Controls
If TypeName(comboB) = "ComboBox" Then
comboB.BackColor = vbRed
End If
Next comboB

End Sub

問題は、comboB の場合、背景色などを変更するためのプロパティが見つからないように見えることです。

誰か助けてくれませんか?

4

1 に答える 1

0

ザイダーが言うように、あなたのコードは機能します。コードで行ったようにプロパティを使用できますが、ComboBoxとして宣言されている場合、特定のプロパティの IntelliSense を取得できません。Control(たとえば、すべてのコントロールに共通のプロパティCaptionが利用可能であることに注意してください。)

すべてのプロパティの Intellisense を取得するには、それが何であるかを判断したら、を としてComboBox再宣言します。ControlComboBox

Private Sub UserForm_Click()
Dim ctl As MSForms.Control
Dim comboB As MSForms.ComboBox

    For Each ctl In Me.Controls
        If TypeName(ctl) = "ComboBox" Then
        're-declare it as a ComboBox
        Set comboB = ctl
            'Now you get IntelliSens
            comboB.BackColor = vbRed
        End If
    Next ctl
    End Sub
于 2013-05-17T18:42:38.480 に答える