2016-05-19 4 views
-3

どのようにするのですか?PowerPointでリボンをプログラムでカスタマイズする

旧式のCommandBars.AddControls.Addは廃止され、最初のものはまったく機能しません。

一方、SetCustomUIは存在しないようです。

This解決策は私にとって非常にうまくいきましたが、私はもうVisioを持っておらず、コードを見ることができません。誰かがリンクされたvsdからVBAコードを投稿することができればいいですね。ここで

がコールバック getContent

Option Explicit 

Private Sub dynamicMenu_getContent(control As IRibbonControl, ByRef content) 

    Dim RibbonXML As String 

    Stop 

    RibbonXML = "<menu xmlns=""http://schemas.microsoft.com/office/2006/01/customui"">" 
    RibbonXML = RibbonXML + " <button id=""dynaButton"" label=""Button"" " 
    RibbonXML = RibbonXML + "  onAction=""OnAction"" imageMso=""FoxPro""/>" 
    RibbonXML = RibbonXML + " <menuSeparator id=""div2""/>" 
    RibbonXML = RibbonXML + "  <dynamicMenu id=""subMenu"" label=""Sub Menu"" getContent=""getContent"" />" 
    RibbonXML = RibbonXML + "</menu>" 

    content = RibbonXML 

End Sub 
+0

リボンXMLでは、アプリケーションの外部で実行されているプロセスからインターフェイスを制御する方法がありません。 #2は、* MS PROJECT *に固有のもので、Word、Excel、PowerPoint、Accessなどの「コア」Officeアプリケーションには適用されません。これらのファイルにはリボンXMLが組み込まれています。また、COM/VSTOアドインの場合は、アドインによって読み込まれます。 –

+0

リボンXMLの便利なドキュメントのリストは、https://social.msdn.microsoft.com/Forums/office/en-US/ba8c9d0b-7312-4503-8167-f2ef86f17435/information-on-theにあります。私はあなたが "開発者のために2007 Office Fluent Ribbonをカスタマイズする"の記事から始めることをお勧めします –

+0

@CindyMeister私は(私はしたくない)ドキュメント全体を読んでください。私は単に解決策が必要です。 –

答えて

1

ヴァレリーを経由しての試みで、あなたが代わりに失礼との否定であることのいくつかの敬意を示すならば、無料で自分の時間をあきらめる人から助けを得るために多くの可能性が高くなります寄稿者が助けます。さあ、それを一方の側に置いてみましょう。

ダイナミックUIを追加するために使用できるリボンベースのソリューションの1つは、新しいタブ、グループ、およびダイナミックメニューコントロールをPPTMプロジェクトのXMLのリボン定義(ハードコードされた部分)に追加し、そのメニューにそのgetContentコールバックを介して渡します。 getVisibleコールバックで定義した条件の下で、タブ/グループ/コントロールを表示/非表示することもできます。

Scroll down to "dynamicMenu"

これはあなたがする必要があるXMLである:あなたが役立ちます。このアプローチが、シンディの答えに含まれ、このページを実現するために、いくつかの読書を行う必要がありますので、これは単純な二、三行のコード例ではありません開始:

<menu xmlns="http://schemas.microsoft.com/office/2006/01/customui"> 
    <button id="dynaButton" label="Button" 
    onAction="OnAction" imageMso="FoxPro"/> 
    <toggleButton id="dynaToggleButton" label="Toggle Button" 
    onAction="OnToggleAction" image="logo.bmp"/> 
    <menuSeparator id="div2"/> 
    <dynamicMenu id="subMenu" label="Sub Menu" getContent="GetSubContent" /> 
</menu> 

次に、VBAコールバックのサブセットGetSubContentを使用してUIコードを注入する必要があります。

関連する問題