문제

사용자가 조건별로 개발자 메뉴를 통해 삽입 된 일부 Excel 2007 Combobox 컨트롤에서 값을 선택하는 것을 금지해야합니다. 이제 나는 컨트롤을 보여 주거나 숨기는 것만 관리했습니다.

ActiveWorkbook.Worksheets("summary").Shapes("months").Visible = year <> ""

대신 활성화/비활성화 할 수 있습니까?

도움이 되었습니까?

해결책

이로 인해 Combobox 양식 대신 ActiveX Combobox를 사용하는 경우 얻을 수있는 "일반적인"활성화/비활성 컨트롤이 발생하지는 않지만 사용자가 액세스하지 못하게합니다.

Sub ChangeState()

    Dim shp As Shape
    Set shp = ActiveWorkbook.Worksheets("summary").Shapes("months")
    shp.ControlFormat.Enabled = Not shp.ControlFormat.Enabled

End Sub

다른 팁

MS 액세스와 동일한 문제가있었습니다.

상태 (활성화 / 비활성) 프레젠테이션과 다릅니다 (배경색 = 회색)

내가 이것을 돌아 다니던 방식은 다음과 같습니다.

Dim enabled As Boolean
enabled = year <> ""

ActiveWorkbook.Worksheets("Sheet1").Shapes(1).Enabled = enabled

If enabled Then
    ActiveWorkbook.Worksheets("Sheet1").Shapes("months").BackColor = rgbGrey
Else
    ActiveWorkbook.Worksheets("Sheet1").Shapes("months").BackColor = rgbWheat
End If

Combobox 컨트롤이 비활성화 될 수있는 것을 발견했습니다.

ActiveWorkbook.Worksheets("summary").DropDowns("months").Enabled = year <> ""

그러나 불행히도 상태를 시각적으로 보여주기 위해 회색이되지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top