2013-08-02 2 views
0

잘 작동하는 사용자 지정 리본이 있지만로드 할 때 통합 문서 제목을 확인하고 Invalidate 메서드를 사용하려고 할 때만 특정 통합 문서를 표시하도록 추가하고 싶습니다. 조건은 거짓입니다. 불행히도 커스텀 리본 탭은 여전히 ​​보이지 않습니다. Excel VBA 사용자 지정 리본 탭 숨기기

다음

내 하위입니다 : 내가 코드가 알 수 있도록 내있는 MsgBox 메시지가 화면에 표시 참조 Microsoft Documentation

: 방법 문서를 읽고 나에게 올바른 것

Public Sub loadMyRibbon(ribbon As IRibbonUI) 

    Set RibUI = ribbon 

    If Not workbookTitle = "My Workbook" Then 
     If Not RibUI Is Nothing 
      RibUI.Invalidate 
      MsgBox "Not Working" 
     End If 
    End If 

End Sub 

그 시점까지 올바르게 실행되지만 RibUI.Invalidate는 내 탭을 숨기지 않습니다. 모든 포인터를 감사하십시오!

RibUI.InvalidateControl "myTag" 

을하지만이 또한 리본이 표시되지 않습니다 것을 의미하지 않는다

답변

2

Ribbon.Invalidate 작동하지 않습니다

나 또한 노력했다. 무효화 기능은 리본에 기본값/동적 속성으로 리본 컨트롤을 무효화하고 다시 초기화하도록 지시합니다.

사용자가 인증을 통과 할 수없는 경우 클라이언트가 리본 항목을 숨기려고하는 몇 개의 추가 기능으로 작업했습니다. 그래서 이러한 경우에, 나는 내 컨트롤의 모두 "GetVisible"속성을 사용하고 난

Sub GetVisible(control As IRibbonControl, ByRef Visible) 
    On Error Resume Next 

    Visible = shouldShowOrNot 
End Sub 

shouldShowOrNot는 사용자가 인증을 통과하면 내가 참으로 리본로드에서 설정 부울 변수이며,이 코드를 사용했다. 다음 이미지보기 :

Ribbon with Failed Authentication

지금 위의 이미지는 인증을 실패한 경우 사용자에 리본의 표현이다. 그것을하는 더 좋은 방법이 있을지도 모르지만, 나는 그것이 지금까지 가장 좋은 방법 인 것을 알았다.

호프이 도움이 되길, Vikas B

관련 문제