問題タブ [ribbonx]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vba - Ribbon.InvalidateControl が PPT 2010 で機能しない
PPT 2010 の挿入リボン内にアドインがあります。基本的にやりたいことは、コンボ ボックスで選択を行い、マクロを実行して、コンボ ボックスを空白に設定することです。残念ながら、選択をクリアできませんでした。
さまざまな方法でウェブ全体を検索しましたが、何も役に立ちません。誰かが助けてくれることを願っています。
私のXML
VBA コード:
vba - カスタム (VBA) Excel コンテキスト メニュー ボタンを動的に無効にしますか?
シナリオ
こんにちは、この MSDN ページにある手順を使用して、Excel ワークブックのセル コンテキスト メニュー (リボンではなく) にいくつかのカスタム コントロールを追加しようとしています。私が抱えている唯一の問題は、特定の列/セル範囲に対してのみアイテムを有効にする必要があることです。
私は周りを見回しましたが、これのための手順を見つけることができませんでした.VSTO開発(C#で書かれています)のためのものがありますが、それは私が必要とするものではありません. Office に組み込まれている VBA IDE を使用してこれを記述し、カスタム UI エディターを使用して XML を少し記述する予定です。
質問
したがって、基本的には、コンテキスト メニューが呼び出されたとき (つまり、右クリックしたとき) に、選択を検証して適切な列にあることを確認する関数を実行する方法を探しています。そうでない場合は、カスタム ボタンをグレー表示にしたいと思います。注:これは検証機能ではまったく行われない可能性があります。正直なところ、手がかりがありません。より良い方法があれば、遠慮なく共有してください (私は提案を受け付けています)。
PS
私のコードを書くように頼んでいるとは思わないでください。これらのボタンの作成は非常に簡単です。これまでに多くのボタンを作成してきました (すべてリボン アイテムでしたが)。
前もって感謝します!
dynamics-crm-2011 - Dynamics CRM 2011 RibbonXML - yes/no フィールドの ValueRule
条件が真の場合にボタンを表示する必要が<ValueRule>
ある で使用するために、2 つのオプション (はい/いいえ) フィールド用に RibbonXMLを作成しようとしています。<DisplayRule>
ただし、思い通りに動作させることはできません。
<ValueRule Field="somefield" Value="(what do I put here to represent "yes"?)" />
1
、true
、およびその他のケーシングのバリエーションを試しましたがYes
、何を入力しても、ルールは false と評価され、ボタンは非表示になります。どうすればこれを機能させることができますか?
excel - RibbonMenu のネストが 5 レベルに制限されているのはなぜですか? そして、どうすればこれをオーバーライドできますか?
Excel 2010 アドインでは、複数レベルのRibbonMenuにデータベースのアイテムをプログラムで設定します。ただし、 5 つ以上のレベルを持つRibbonMenuを表示することは不可能のようです。(一部) クライアントは、最大 5 つのネスト レベルのみがサポートされていることを示す実行時例外を受け取ります (逐語的には、「Maximal 5 geschachtelte Menüs sind zulässig.」 )。ダイアログ ウィンドウを閉じると、メニューが表示されて機能しますが、5 レベルよりも深いメニュー項目が表示されず、レベル <= 5 の一部の項目が無効になります (たとえば、RibbonMenus にレベル 5 のリボン ボタンが表示されません)。
メニューがコード (C# を使用) で作成されているか、宣言 (XML) で作成されているかは問題ではありません。
- 入れ子に制限があるのはなぜですか? それはどこかに文書化されていますか?
- この制限を無効にするためにできることはありますか? メッセージの数字 '5' は疑わしいように見えます。どこかに魔法の int 値が設定されているようです...
- Excel リボン内に複数レベルのネストされたメニューを表示するために使用できる他のコントロールはありますか?
ありがとう、よろしく、
トーマス
vsto - ContextMenuListRange VSTO c# のコンテキスト メニューを作成する方法
VSTO で ContextMenuListRange を作成したいのですが、ContextMenuCell 用にもう 1 つの xml を既に作成しています。リスト範囲をもう 1 つのタグに追加すると、リボンに「オブジェクト参照がオブジェクトのインスタンスに設定されていません。ここに xml タグがあります。
vba - PowerPoint アドインで RibbonUI が失われる
約 40 人のエンド ユーザーに配布されている PPT アドインのエラーの原因を特定するのに苦労しています。
問題:リボンの状態が失われるか、ribbonUI オブジェクトが失われます。
一部のユーザーにとって、最終的にRib
オブジェクトは になりNothing
ます。
ユーザーは、実行時エラーやスクリプト エラー (このアドインを介して呼び出す COM オブジェクトから) が発生していないことを保証します。End
ユーザーのヒットによって状態が失われることが予想される場合は、未処理のエラー。
観測された障害の原因となったシナリオを確実に再現できたユーザーはいません。これが、トラブルシューティングを非常に困難にしている原因です。私が見逃している、または予期していなかった明らかな何かがあるという希望に逆らって望んでいます。
現在の損失またはRibbonUIの処理方法
これに対抗するために、リボンへのオブジェクト ポインターを 3 つの場所に保存します。これはやり過ぎのように思えますが、まだ十分ではないようです。
- 呼び出されたクラス オブジェクトには、割り当てられ
cbRibbon
たプロパティがあります。リボンのコールバック手順中。したがって、オブジェクト自体のコピーがあります。リボンが何もない場合、理論的には可能であり、オブジェクトも範囲外でない限り、これは機能します。.RibbonUI
Set cbRibbon.RibbonUI = Rib
onLoad
byRef
Set rib = cbRibbon.RibbonUI
cbRibbon
cbRibbon
オブジェクトには次のプロパティ.Pointer
が割り当てられています:cbRibbon.Pointer = ObjPtr(Rib)
。CustomDocumentProperty
「RibbonPointer」という名前も、オブジェクト ポインターへの参照を格納するために使用されます。(注: これは、状態が失われた後も持続します)
したがって、Excel の非表示のワークシート/範囲に格納する方法と同じように、このポインターを格納する方法を複製しようとして、これについて考えてみたことがわかります。
追加情報
堅牢なクライアント側のログから、このエラーは通常発生するように見えますが、リボンとそのコントロールを更新/無効化するために使用される以下の手順中に常に発生するとは限りません。
このプロシージャは、リボンまたはそのコントロールの一部を動的に更新する必要があるたびに呼び出されます。
エラーは、次のように呼び出される完全な更新中に発生するようです (時々、これを十分に強調することはできません: エラーはオンデマンドで複製できません)。
これは、無効化を行う手順です。
ご覧のとおり、この手順で最初に行うことは、Rib
オブジェクトのNothing
-ness をテストすることです。これが と評価される場合True
、RibbonUI オブジェクトは何らかの理由で失われています。
次に、エラー関数はリボンの再インスタンス化を試みます。最初に からcbRibbon.RibbonUI
、次に から、cbRibbon.Pointer
両方が失敗した場合はCustomDocumentProperties("RibbonPointer")
値から。どちらも成功しない場合は、致命的なエラーが表示され、ユーザーは PowerPoint アプリケーションを閉じるように求められます。これらのいずれかが成功した場合、リボンはプログラムによって再読み込みされ、すべてが引き続き機能します。
その手順のコードは次のとおりです。コードを含めていない他のいくつかのプロシージャを呼び出すことに注意してください。これらはヘルパー関数またはロガー関数です。この.GetPointer
メソッドは実際に WinAPICopyMemory
関数を呼び出して、ポインター値からオブジェクトをリロードします。
これらはすべて理論上は完全にうまく機能し、実際には(ステートメントを呼び出すなどして) ランタイムを直接強制終了することができ、これらの手順によって期待どおりにリボンがリセットされます。End
それで、私は何が欠けていますか?