web-dev-qa-db-ja.com

Excelでカスタムタブを除くリボンのすべてのタブを非表示/表示

(XMLではなく)VBAを使用してすべての標準Excelリボンタブを非表示および表示するにはどうすればよいですか。リボン全体を非表示にしたくない(ここで尋ねられるように ExcelでVBAリボンを最小化する )タブのみ。 XMLを使用してstartFromScratchを使用する方法を知っているので、それや他のXMLソリューションを提案しないでください。

これまでのところ、私は広範なGoogle検索を実行し、次のことを検討しました。

私が言っていることは、私はすでに広範囲の検索を行っており、結果を得ることなく多くのことを試みました。

10
Brett

(XMLではなく)VBAを使用してすべての標準Excelリボンタブを非表示および表示する方法

答えは "YOU CA N'T"です。

AFAIK、VBAを使用してそれを行うことはできません。残念ながら、VBAはタブを公開していません。あなたが持っている唯一のオプションは、以下の画像に示されているとおりです

enter image description here

したがって、コマンドバー、コマンドバーボタン、コマンドバーコンボボックスなどを操作できます...

Set cbar = Application.CommandBars("Ribbon")と言うこともできますが、その後の問題は、タブのハンドルを取得する方法です。

VBAを使用してリボンでできること:

  • 特定のコントロールがEnabled/Visible/Pressed(Toggleboxes/CheckBoxes)かどうかを判別します
  • コントロールのラベル、画面のヒント、またはスーパーヒントを取得するコントロールに関連付けられた画像を表示します。
  • 特定のコントロールを実行します。

VBAを使用してリボンで実行できないこと:

  • 現在選択されているタブを確認します。
  • 特定のタブをアクティブにします。
  • 特定のタブを非表示にする
  • 新しいタブを追加します。
  • 新しいグループをタブに追加します。
  • 新しいコントロールを追加します。
  • コントロールを削除/無効化/非表示にします。

ただし、XMLを使用して必要なことを実現できます。例えば

<customUI xmlns="http://schemas.Microsoft.com/office/2006/01/customui">
    <ribbon>
        <tabs>
            <tab idMso="TabReview" visible="false" />
        </tabs>
    </ribbon>
</customUI>

しかし、XMLルートを経由したくないと思います。

11
Siddharth Rout

確かに、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>_
  1. XMLファイルを設定します。

  2. 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

  3. MS OfficeのコントロールIDのリストについては、このファイルをダウンロードしてください。 http://www.Microsoft.com/en-us/download/details.aspx?displaylang=en&id=6627

ヒント:XMLリボンファイルを編集する前に、編集中のリボンを含むExcelブックを必ず閉じてください。 VBAコードが消去されることがあることがわかりました(理由はわかりませんが、消去されるだけです)。

7
user6620568

特定のタブをアクティブにするには

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"
4
sysmod

まず、リボンタブを非表示にするExcelシートを開き、次にを押します Alt+F11。新しいコードモジュールを挿入し、次のコードを追加します。

Private Sub hide()
    Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",False)
End sub
3
Seshadri

次のようなXMLで使用できます。

<リボンstartFromScratch = "true">

このリンクを確認してください:

http://www.rondebruin.nl/win/s2/win012.htm

1
Evert

私がテストしたこの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>

XML Code

結果:
ExcelApp

1
PatricK