Office2007/2010フレームワークのFluentRibbon/RibbonUIシステムの理解の限界を押し広げようとしています。
これを、WPF / SilverlightのXAML設計に関する知識と理解と組み合わせて、以下で説明するOfficeメニュー項目を動的に表示/非表示にできるかどうかを確認したいと思いました。
どこがうまくいかなかったのか、どこをさらに発展させる必要があるのかを教えてください。
CustomUI.xml
<group id="grpITOfficeMenu"
label="Office Menu">
<button id="btnShowOffice"
label="Show"
onAction="ShowOfficeTabs"/>
<button id="btnHideOffice"
label="Hide"
onAction="HideOfficeTabs" />
</group>
<group id="grpITContextualTabs"
label="Contextual Tabs" >
<button id="btnShowContext"
label="Show"
onAction="ShowContextualTabs"/>
<button id="btnHideContext"
label="Hide"
onAction="HideContextualTabs"/>
</group>
...
<officeMenu>
<button idMso="FileNew"
getVisible="OfficeGetVisible" />
<button idMso="FileOpen"
getVisible="OfficeGetVisible" />
</officeMenu>
<contextualTabs>
<tabSet idMso="TabSetSmartArtTools"
getVisible="ContextualGetVisible" />
<tabSet idMso="TabSetChartTools"
getVisible="ContextualGetVisible"/>
<tabSet idMso="TabSetDrawingTools"
getVisible="ContextualGetVisible" />
<tabSet idMso="TabSetPictureTools"
getVisible="ContextualGetVisible" />
<tabSet idMso="TabSetPivotTableTools"
getVisible="ContextualGetVisible" />
<tabSet idMso="TabSetHeaderAndFooterTools"
getVisible="ContextualGetVisible" />
<tabSet idMso="TabSetTableToolsExcel"
getVisible="ContextualGetVisible" />
<tabSet idMso="TabSetPivotChartTools"
getVisible="ContextualGetVisible" />
<tabSet idMso="TabSetInkTools"
getVisible="ContextualGetVisible" />
</contextualTabs>
VBA:
'Method to Refresh the RibbonUI object
Sub RefreshRibbon(tag As String)
'Check if Ribbon variable has been initialized with Ribbon Object from Excel
If Not (Rib Is Nothing) Then
'Ribbon variable has been initialized.
MyTag = tag
Rib.Invalidate
End If
End Sub
'Flip OfficeMenu Tabs visible based on @OffVisible value
Sub OfficeGetVisible(control As IRibbonControl, ByRef returnVal)
returnVal = OffVisible
End Sub
'Flip Contextual Tabs visible based on @ContVisible value
Sub ContextualGetVisible(control As IRibbonControl, ByRef returnVal)
returnVal = ContVisible
End Sub
...
'Show/Hide ContextualTabs in the IT Mode
Sub ShowContextualTabs(Optional ctrl As Variant)
ContVisible = True
RefreshRibbon tag:=MyTag
End Sub
Sub HideContextualTabs(Optional ctrl As Variant)
ContVisible = False
RefreshRibbon tag:=MyTag
End Sub
'Show/Hide OfficeMenu Tabs in the IT Mode
Sub ShowOfficeTabs(Optional ctrl As Variant)
OffVisible = True
RefreshRibbon tag:=MyTag
End Sub
Sub HideOfficeTabs(Optional ctrl As Variant)
OffVisible = False
RefreshRibbon tag:=MyTag
End Sub
アップデート:
詳細なテストを行い、技術的には機能しますが、最終的に完了しようとしているのはHome, Insert, Page Layout, Formulas, Data, Review, View, Developer, etc.
、リボンからタブを表示/非表示にする機能です。startfromscratch
要素内の属性の必要性、または必要性を削除しようとしていcustomui
ます。