3

Excelファイルのリボンを変更して、すべてのデフォルトタブとコンテキストタブを非表示にしますが、自分のタブのみを表示します。ただし、独自のタブを備えたアドインをインストールすると、対処方法がわからないため、これらのタブは引き続き表示されます。

を使用してすべてのタブを削除できることは知っていますが<ribbon startFromScratch="true">、そのままにしておく必要があります(実際には、getVisibleコールバックを使用してユーザーからタブを非表示にしますが、管理者には表示します)。

したがって、次の質問:

  1. 不明なすべてのタブに「デフォルト」のgetVisibleコールバックを適用する方法はありますか(答えはノーだと思います)
  2. 他のアドインタブのtabIDを把握するにはどうすればよいですか
  3. PowerPivotがますます普及していることを考えると(特にExcel 2013では)-このタブのtabIDは何ですか?
4

2 に答える 2

3

これは素晴らしい質問です。サード パーティのリボンの操作に関するドキュメントや例はほとんどありません。私は多くのことを掘り下げてきましたが、あなたが望むもののほとんどを助けることができます. 少し順不同で質問に答えますが、ここに行きます。

3) PowerPivot アドインのタブ ID は修飾子 ID (したがって、idQ と共に使用する必要があります) であり、tabGemini. 名前空間で使用する必要があります: Microsoft.AnalysisServices.Modeler.FieldList。これは、名前空間をスキーマに追加することで確認できます。

xmlns:x1="Microsoft.AnalysisServices.Modeler.FieldList"

次に、タブの ID を宣言するときに、次を使用して PowerPivot タブの前にタブを挿入します。

insertBeforeQ="x1:tabGemini"

2) PowerPivot は VSTO COM アドインであるため、.xlam ファイルのように XML にアクセスできないため、PowerPivot のタブ ID を見つけるのに苦労しました。答えは簡単ですが、Office 2010 以降が必要です。Excelを開いて、興味のあるアドインも開いた状態で、[ファイル]メニューから[オプション]に移動します。[リボンのカスタマイズ] を選択し、上部のウィンドウの右側にある [リボンのカスタマイズ: メイン タブ] を選択します。関心のあるアドインのチェックを外し、一番下の [インポート/エクスポート] をクリックして XML スキーマをエクスポートします。このファイルをテキスト エディタで開くと、タブ ID がどのように宣言されているかがわかります。

1) getVisible コールバックで発生した問題は、XML をどのようにマークアップしても、後で誰かがアドインをロードした場合に、あなたが行ったことを上書きしてしまうことだと思います。以下は、Fluent Ribbon for Developers FAQ (http://msdn.microsoft.com/en-us/library/office/aa722523%28v=office.12%29.aspx#a16c7df5-93f3-4920-baa8-7b7290794c15_FAQ) からのものです。 )

2 つのアドインが同じ組み込みコントロールを再利用しようとするとどうなりますか? コントロールの再利用を試みる最後のアドインが、アクティブなアドインになります。

これ以上は行っていませんが、このボード スキーマを Office にインポート/エクスポートできる場合、これがインポートされた場所を見つけることができれば、filescripting オブジェクトを使用して VBA で手動で上書きすることができます。明らかに、テキストとして保存されている場合のみです。少し遠いショットですが、さらに見てみる価値はありますか? 幸運を!

于 2013-01-24T23:37:50.753 に答える
1

PowerPivot タブは COM アドインです。それと他の COM アドインの progID を表示するには、次を使用します。

Sub ListCOMAddins()
Dim lngRow As Long, objCOMAddin As COMAddIn
lngRow = 1
With ActiveSheet
      For Each objCOMAddin In Application.COMAddIns
         .Cells(lngRow, "A").Value = objCOMAddin.Description
         .Cells(lngRow, "B").Value = objCOMAddin.Connect
         .Cells(lngRow, "C").Value = objCOMAddin.progID
         lngRow = lngRow + 1
      Next objCOMAddin
End With
End Sub`

私の場合、PowerPivot タブの progID は "Microsoft.AnalysisServices.Modeler.FieldList" です。タブを閉じるには、次のようにします。

Private Sub Workbook_Open()

   Application.COMAddIns("Microsoft.AnalysisServices.Modeler.FieldList").Connect = False

End Sub
于 2015-03-13T04:41:05.840 に答える