2013-08-02 113 views
0

我有一個自定義功能區,工作正常,但我只想啓用它,並有我添加顯示某些工作簿,所以我檢查加載工作簿標題並嘗試使用Invalidate方法if條件是錯誤的。不幸的是,自定義功能區選項卡仍然顯示不出來。Excel VBA隱藏自定義功能區選項卡

以下是我的子:

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 

這似乎是正確的把我從通過方法的文檔閱讀: Microsoft Documentation

我看到屏幕上顯示我的MSGBOX消息,所以我知道的代碼是正確執行到該點,但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

相關問題