(XMLではなく)VBAを使用してすべての標準Excelリボンタブを非表示および表示するにはどうすればよいですか。リボン全体を非表示にしたくない(ここで尋ねられるように ExcelでVBAリボンを最小化する )タブのみ。 XMLを使用してstartFromScratchを使用する方法を知っているので、それや他のXMLソリューションを提案しないでください。
これまでのところ、私は広範なGoogle検索を実行し、次のことを検討しました。
私が言っていることは、私はすでに広範囲の検索を行っており、結果を得ることなく多くのことを試みました。
(XMLではなく)VBAを使用してすべての標準Excelリボンタブを非表示および表示する方法
答えは "YOU CA N'T"です。
AFAIK、VBAを使用してそれを行うことはできません。残念ながら、VBAはタブを公開していません。あなたが持っている唯一のオプションは、以下の画像に示されているとおりです
したがって、コマンドバー、コマンドバーボタン、コマンドバーコンボボックスなどを操作できます...
Set cbar = Application.CommandBars("Ribbon")
と言うこともできますが、その後の問題は、タブのハンドルを取得する方法です。
VBAを使用してリボンでできること:
VBAを使用してリボンで実行できないこと:
ただし、XMLを使用して必要なことを実現できます。例えば
<customUI xmlns="http://schemas.Microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab idMso="TabReview" visible="false" />
</tabs>
</ribbon>
</customUI>
しかし、XMLルートを経由したくないと思います。
確かに、VBAを使用してリボンを非表示/表示できます。次に例を示します。
_<ribbon startFromScratch="false">
<tabs>
<!-- Excel BUILT-IN TABS -->
<tab idMso="TabDeveloper" getVisible="GetVisible">
<group idMso="GroupCode" visible="true"/>
<group idMso="GroupAddins" visible="true"/>
<group idMso="GroupControls" visible="true"/>
<group idMso="GroupXml" visible="true"/>
<group idMso="GroupModify" visible="true"/>
</tab>
</tabs>
</ribbon>
_
XMLファイルを設定します。
VBAスクリプトを設定します。 Sub GetVisible(control As IRibbonControl, ByRef MakeVisible) Select Case control.ID Case "TabDeveloper": MakeVisible = True Case "TabHome": MakeVisible = True Case "TabInsert": MakeVisible = True Case "TabPageLayoutExcel": MakeVisible = True Case "TabFormulas": MakeVisible = True Case "TabData": MakeVisible = True Case "TabReview": MakeVisible = True Case "TabView": MakeVisible = True Case "TabAddIns": MakeVisible = True Case "TabBackgroundRemoval": MakeVisible = True End Sub
ヒント:XMLリボンファイルを編集する前に、編集中のリボンを含むExcelブックを必ず閉じてください。 VBAコードが消去されることがあることがわかりました(理由はわかりませんが、消去されるだけです)。
特定のタブをアクティブにするには
Microsoft Office 2010では、IRibbonUIオブジェクトのActivateTabメソッドを使用してカスタムタブをアクティブにします
組み込みのタブにはActivateTabMsoメソッドを使用し、複数のアドイン間で共有されるタブにはActivateTabQを使用します。
ActivateTabQには、アドインの名前空間を指定する追加のString型パラメーターも必要です。
XMLで指定
customUI onLoad="RibbonOnLoad" xmlns=etc
VBA
Public gRibbonUI As IRibbonUI
Sub RibbonOnLoad(ribbon As IRibbonUI)
Set gRibbonUI = ribbon
End Sub
次にコードで
gRibbonUI.ActivateTab "MyTabID"
gRibbonUI.ActivateTabMso "TabHome"
まず、リボンタブを非表示にするExcelシートを開き、次にを押します Alt+F11。新しいコードモジュールを挿入し、次のコードを追加します。
Private Sub hide()
Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",False)
End sub
次のようなXMLで使用できます。
<リボンstartFromScratch = "true">
このリンクを確認してください:
私がテストしたこのExcel for XMLを試してください:
<customUI xmlns="http://schemas.Microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab idMso="TabHome" visible="false" />
<tab idMso="TabInsert" visible="false" />
<tab idMso="TabFormulas" visible="false" />
<tab idMso="TabData" visible="false" />
<tab idMso="TabReview" visible="false" />
<tab idMso="TabView" visible="false" />
<tab idMso="TabDeveloper" visible="false" />
</tabs>
</ribbon>
</customUI>