問題タブ [ms-office]

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.

0 投票する
2 に答える
2322 参照

vb.net - Microsoft Office 用 .NET アドインの単体テスト

マネージド アプリケーション アドイン for Office の単体テストに関する提案はありますか? 私は NUnit を使用していますが、MSTest でも同じ問題がありました。

問題は、Office アプリケーション (私の場合は Word) 内に読み込まれた .NET アセンブリがあり、.NET アセンブリのそのインスタンスへの参照が必要なことです。オブジェクトをインスタンス化することはできません。これは、実行する Word のインスタンスがないためです。

これで、Application.COMAddIns("Name of addin").Object インターフェイスを使用して参照を取得できますが、これは RequestComAddInAutomationService を通じて返される COM オブジェクトを取得します。これまでの私の解決策は、テストしたい実際の.NETオブジェクトのすべてのメソッドに対して、そのオブジェクトにプロキシメソッドを持たせることです(すべて条件付きコンパイルで設定されているため、リリースされたバージョンでは消えます)。

COM オブジェクト (VB.NET クラス) には、実際には実際のアドインのインスタンスへの参照がありますが、それを NUnit に返そうとしたところ、適切な p/Invoke エラーが発生しました。

System.Runtime.Remoting.RemotingException : このリモート プロキシにはチャネル シンクがありません。これは、リッスンしている登録済みサーバー チャネルがサーバーにないか、このアプリケーションにサーバーと通信するための適切なクライアント チャネルがないことを意味します。System.Runtime.Remoting.Proxies.RemotingProxy.InternalInvoke (IMethodCallMessage reqMcmMsg、ブール値の useDispatchMessage、Int32 callType) で(MessageData& msgData、Int32型)

メインのアドイン COM を表示できるようにしてみましたが、エラーは次のように変化します。

System.InvalidOperationException : オブジェクトの現在の状態のため、操作は有効ではありません。System.RuntimeType.ForwardCallToInvokeMember (文字列 memberName、BindingFlags フラグ、オブジェクト ターゲット、Int32 [] aWrapperTypes、MessageData & msgData) で

回避策はありますが、面倒で、テスト プロジェクトではなく実際のプロジェクトに多くのテスト コードを配置します。これは、NUnit が実際に動作する方法ではありません。

0 投票する
3 に答える
43836 参照

vba - PowerPoint でのオブジェクトの名前変更

おそらく非常にばかげた質問ですが、PowerPoint でオブジェクトの名前を変更する方法がわかりません。たとえば、すべてのグラフはデフォルトで「Graph 1」などと呼ばれています。ありがとう!

0 投票する
2 に答える
375 参照

javascript - Office 2007 からコピーして貼り付け