1

特定の ViewType が維持されていないと失敗する可能性のある PPT アドインがあります。

変更をトラップして防止できる PPTEvent が見当たりません (ただし、これが可能である場合は、アドバイスしてください!)。そのため、ViewType に関連する特定のコントロールを無効化または非表示にしようとして、Ribbon/CommandBars で遊んでいます。

コントロールを で特定し、それらのプロパティを、または代わりにIdに設定しようとしましたが、どちらも影響を与えていないようです。コントロールは引き続き表示され、クリックしても実行されます。.VisibleFalse.Enabled = False

Slide Sorterこの例では、コントロールを無効にしようとします。これにより、ボタンからの VBE が防止されますが、ユーザーがボタンをクリックする可能性がある限り、ボタンのアクションは無効にExecuteなりません。ボタンは引き続き実行されます。

Sub DisableViewChange()

    Dim cBar As CommandBar
    Dim ctrl As CommandBarControl

    Set cBar = CommandBars("View")

    Set ctrl = cBar.FindControl(Id:=738)
        ctrl.Visible = True
        ctrl.Enabled = False
    Set btn = ctrl
        btn.Execute



    Set cBar = Nothing
    Set btn = Nothing
    Set ctrl = Nothing

End Sub

無効/非表示/削除したい要素の写真を含めるように更新します。

ここに画像の説明を入力

4

2 に答える 2

0

上記のレッドの提案は非常に役に立ちました。いくつかの (エラー...たくさんの) 試行錯誤の結果、リボンに微調整を加えることができました。私の試行錯誤が、同様に XML に不慣れな他の誰かに役立つことを期待して、この回答を提示します。

無効にしようとしていたいくつかのコマンドを無効にしましたが、これは比較的簡単でした。

<commands>
    <command idMso="ViewSlideSorterView" enabled="false"/>
    <command idMso="ViewNotesPageView" enabled="false"/>
    <command idMso="ViewSlideShowReadingView" enabled="false"/>
    <command idMso="ViewSlideMasterView" enabled="false"/>
    <command idMso="ViewHandoutMasterView" enabled="false"/>
    <command idMso="ViewNotesMasterView" enabled="false"/>
    <command idMso="WindowNew" enabled="false"/>
</commands>

私は XML に悩まされているので、アドインのコマンドをレガシーCommandBar([アドイン] タブ グループの下) からカスタム リボン タブに移行することにしました。そのため、この XML には新しいタブの実際の例も含まれています。グループ、メニュー、およびそのメニュー内のいくつかのボタンで構成されます。

無効なコマンドカスタム タブ メニューを含む検証済みの XML を次に示します。

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <commands>
        <command idMso="ViewSlideSorterView" enabled="false"/>
        <command idMso="ViewNotesPageView" enabled="false"/>
        <command idMso="ViewSlideShowReadingView" enabled="false"/>
        <command idMso="ViewSlideMasterView" enabled="false"/>
        <command idMso="ViewHandoutMasterView" enabled="false"/>
        <command idMso="ViewNotesMasterView" enabled="false"/>
        <command idMso="WindowNew" enabled="false"/>
    </commands>
    <ribbon startFromScratch="false">
        <tabs>
            <tab idMso="TabView">
                <group idMso="GroupPresentationViews" visible="true"/>
                <group idMso="GroupMasterViews" visible="true"/>
            </tab>
            <tab id="MyNewTab" label="My Tab Label">
                <group id="MyGroupMain" label="My Group Label">
                    <menu id="MyMenu" imageMso="HappyFace" size="large">
                        <button id="MyLaunchButton" label="Launch Tiger" onAction="macro1" />
                        <button id="MyInfoButton" label="Info" onAction="macro2" />
                        <button id="MyVersionButton" label="Version" onAction="macro3" />
                        <button id="MyHelpButton" label="Help" onAction="macro4" />
                    </menu>
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

サブルーチン/マクロをこれらのボタンに接続していませんが、それほど難しくはありません。

このリンクに出くわすことなく、これをやり遂げることはできなかったでしょう。このリンクには、すべてのメニュー項目をタイプ、ID、他の項目との関係などごとに一覧表示する Excel ファイルのバッチが含まれています (アプリケーションごとに)。

http://www.microsoft.com/en-us/download/details.aspx?id=6627

于 2013-06-04T03:05:29.787 に答える