2013-05-17 2 views
1

여기 내 문제가 있습니다.작은 코드로 여러 콤보 상자를 변경하는 방법

10 개의 콤보 상자가있는 사용자 폼이 있습니다. Select Case 대신 하나씩 Combobox를 하나씩 콤보 상자의 속성을 backcolor 또는 fontcolor와 같이 바꿀 수 있습니까? 그래서 예를 들면

:

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 위해 나는 그것이 무엇이든지 배경색 또는의 변화를 위해 어떤 속성을 찾을 수 없습니다 것입니다.

누군가 나를 도와 줄 수 있습니까?

+1

해당 코드를 실행 해 보셨습니까? 그렇다면 어떤 오류가 발생 했습니까? 일반 컨트롤에 액세스 할 때 속성이 목록에 표시되지 않는다고해서 속성이 표시되지 않는다는 것을 의미하지는 않습니다. 접근 가능한 속성 목록을 보려면'nameOfComboBox.'를 사용해보십시오. 제공 한 코드를 실행하면 나를 위해 combobox의 배경을 바꿀 수 있습니다. – Zaider

답변

0

자이더 (Zaider)가 말했듯이 코드가 작동합니다. Control으로 선언 된 경우 ComboBox 특정 속성에 대한 IntelliSense를 얻지 못합니다. 코드에서 수행 한 것처럼 속성을 사용할 수는 있습니다. (예 : 모든 컨트롤, 공통 속성, Caption을 사용할 수 있습니다.)

모든 ComboBox 속성에 대한 인텔리을 얻기 위해, ComboBoxControl을 재-선언이 결정 나면 그 그것이 무엇 :

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 
+0

감사합니다. LOL은 내가 가지고있는 것보다 잘 코드를 점검하지 못했습니다. : p. VBA 편집기가 Excel에서 사용하는 Intellisens가 싫습니다. 차라리 Xcode가 objective-c에 사용하는 것을 가지고 싶습니다. 다시 한 번 감사드립니다. 스크립트 공간을 많이 절약 할 수 있습니다. 인사말 피다 지, – Pidaji

관련 문제