問題タブ [comaddin]
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.
.net - Office COM アドインの IDTExtensibility2 インターフェイスを正しく実装するにはどうすればよいですか?
Outlook 用の COM アドインを実装しています。IDTExtensibility2 を使用しています。これが COM アドインを実行する最良の方法かどうかはわかりませんが、それを変更することはできません。
このインターフェイスは、OnConnection、OnStartupComplete、OnAddInsUpdate、OnBeginShutdown、OnDisconnection の 5 つのメソッドを定義します。
次の操作を実行する必要があります。
- ファイルから構成データをロードする
- レジストリ データのロード
- 新しいセッションを開始
- *.pst ファイルの作成
- エクスプローラー イベントにサブスクライブする
- Internet Server に接続してデータを取得する
- メイン メニューにメニュー項目を作成する
- ツールバーを作成する
- Outllok でいくつかのものを追加/削除します (*.pst ファイル レベルで)
アドバイスしてください、いつ何をすればいいですか?
- OnConnection メソッドで何を実行する必要がありますか?
- OnStartupComplete が呼び出されたときにのみ何が許可されますか?
- OnBeginShutdown / OnDisconnection 中に解放するために必要なリソースは何ですか?
excel - Excel OLE - Excel がアプリケーションに埋め込まれている場合、.NET COM アドインの動作が異なる
COM Shim dll を使用してそれ自体を Excel に読み込む .NET (C#) アドインがあります。Excel が正常に実行されている場合、アドインは問題なく正常に動作します。アドインは、さまざまなコマンドを実行するために使用される独自のカスタム ツールバーを Excel に表示します。
Excel を別のアプリケーション (DSOFramer など) に埋め込むと、アドインの動作がおかしくなり始めます。ツールバーのボタンを無効にすると、Visible プロパティを設定した後に再び有効にならないようです。また、Application::Selection オブジェクトが NULL であるため、「オブジェクト参照が設定されていません」というエラーが多数発生します。これは、Excel が正常に実行されている場合には発生しません。Application::GetAddIns() メソッドが呼び出されると、パーミッション エラーが発生することもあります。
ここで何が起こっているのかわからず、Excel が他のアプリケーション内に埋め込まれている場合の Excel COM アドインの動作を説明する記事を見つけることができませんでした。
vb.net - Visio マクロを Visio COM アドインにエクスポートする
VB でいくつかのマクロと関数を作成しましたが、すべてのコードはドキュメントの背後で正常に動作します。コードを保存して他のユーザーが利用できるようにするために、VIsio 用の COM アドインを作成したいと考えています。Visual Studio 2008 を購入したので、自分のコードをそれにインポートしたいと考えています。
エクスポートした .cls ファイルを Visual Studio COM アドオン プロジェクトに含めることはできますか?
outlook-addin - Outlook COM アドインから Windows エラー報告を手動でトリガーする
Visual Studio 2008 と VSTO を使用して Outlook COM アドインを作成しています。アドインで例外が処理されない場合、Windows エラー報告 (WER) をトリガーしたいと考えています。当社は WinQual にアクセスできるため、プログラムで発生したユーザーからの WER レポートのレポートを取得できます。これを行う方法はありますか?
私が知る限り、これは不可能ですが、方法があるかどうかを確認したかったのです。WER は、アプリケーションが未処理の例外を生成した場合にのみトリガーされます。Outlook で実行される Outlook アドインと Outlook には、COM アドインへの呼び出しの周りに例外ハンドラーがあり、COM アドインが原因で Outlook がクラッシュするのを防ぎます。Outlook はクラッシュしないため、WER はトリガーされません。
excel - Excel Chartオブジェクトが埋め込まれている場合、Powerpointは「アプリケーションを起動できません」というエラーを表示します
これは、ExcelワークシートまたはグラフがWordまたはPowerpointに埋め込まれている場合に非常に一般的な問題です。WordとPowerpointの両方でこの問題が発生しており、Excelに接続されているCOMアドインが原因であると思われます。COMアドインは、C#(.NET)で記述されています。エラーダイアログについては、添付の画像を参照してください。
アドインをデバッグしたところ、非常に奇妙な動作が見つかりました。COMアドインのOnConnection(...)、OnDisConnection(...)などのメソッドは、コードにイベントハンドラーを追加するまで正常に機能します。つまり、Worksheet_SheetChange、SelectionChange、またはExcelで使用可能な同様のイベントを処理します。イベントハンドラーを1つでも追加すると(コードには複数ありますが)、WordとPowerpointは文句を言い始め、埋め込みオブジェクトをアクティブ化しません。
インターネット上のいくつかの投稿では、オフィス用のアンチウイルスアドインを削除するように求められているため(私の場合はなし)、この問題は、ホストアプリがアクティブ化されたときに読み込まれるCOMアドインに関連していると思われます。オブジェクト。
2010年6月21日更新
イベントとComAddInsコレクションへの変更の両方が、埋め込みオブジェクトがアクティブ化されたときに問題を引き起こすことがわかりました。これで、Excel :: Application :: UserControlプロパティを使用して、Excelが埋め込み状態にあるかどうかを確認し、OnConnection(...)およびOnDisconnection(...)コードをスキップしました。
イベントの問題に対する1つの解決策は、すべてのアプリケーションレベルのイベントをVBAコードに移動し、.NETを呼び出すことです。これにより、.NETコードからすべてのイベントハンドラーが削除されます。
埋め込みオブジェクトが初期化に失敗する可能性があるシナリオがさらにある可能性があるため、COMアドインを無効にすることを選択します。つまり、OnConnection(...)メソッドとOnDisconnection(...)メソッドのコードを完全にスキップします。
excel - 埋め込みOfficeアプリケーション-アプリが実行されているか、オブジェクトが埋め込まれているかを知る方法
Word内にExcelワークシートオブジェクトを追加しています。ExcelにはCOMアドインがアタッチされています。Excelが独立して実行されているのか、埋め込みオブジェクトとして実行されているのかを知る方法はありますか?
埋め込まれたExcelオブジェクトがWord内でアクティブ化(ダブルクリック)されると、ExcelにアタッチされたCOMアドインが読み込まれます。OnConnection(...)またはExcelオブジェクトの状態を伝えることができる他のメソッドで、ある種のプロパティまたはパラメーターを探しています。
c# - Excelアドイン-ログオフ時にOnDisconnection/OnBeginShutdownが呼び出されない
VisualStudio2008でExtensibilityIDTExtensibility2インターフェイスを使用してExcel用の共有アドインを開発しました。
機能的には非常に基本的です。ワークブックを開くと、開いているワークブックのリストに保存されます。閉じると、アドインは新しいテキストファイルを作成し、ファイルにXMLを書き込みます。次に、このファイルは別のプロセスによって読み取られ、XMLが逆シリアル化されます。 。
アドインは通常の操作で機能します。したがって、ユーザーがファイルを開いたり閉じたりすると、アドインは本来の動作を実行し、開いているワークブックでExcelを終了すると、本来の動作を実行します。
問題は、ユーザーが開いているワークブックでExcelを開いて、ログオフを実行する場合です。OnDisconnectionとOnBeginShutdownの2つのメソッドは、まったく呼び出されていないようです。
私はこれをテストするために2つのことをしました:
これらの2つのメソッドが呼び出されたときにログファイルに書き込むTextWriterTraceListenerを作成しました。Excelが正常に終了すると、それらはヒットし、情報がログファイルに記録されますが、ユーザーがログオフすると、ログファイルには何も記録されません。
File.CreateText(filename)を使用してこれらの両方のメソッド内で、空のファイルを作成しました。ユーザーが通常Excelを終了すると、これらのファイルが作成されますが、再度、ログオフによってExcelを閉じると、これらのファイルは作成されません。
誰かが私がこの問題を回避する方法について何かアイデアを持っていますか?ユーザーがマシンからログオフしているときにExcelが閉じられているときにキャプチャする必要があります...
c# - COMアドインはWord2007で廃止されません
2つの異なるCOMアドインがあります。1つはWord2003用で、もう1つはWord2007用です。
Word 2003は毎回チャームのように機能し、問題はありません...しかし、Word 2007を開くと、Word2003のボタンがWord2007リボンに表示されます。これは、アドインを無効にしたり、プロジェクトをクリーンアップした後でも発生します... Word 2003アドインのすべての.dllを削除するなど、すべてを試しましたが、問題は解決しません...
問題が何であるかについての提案はありますか?
乾杯
excel-interop - エクセル相互運用-エクセルコムアドインコードを実行する方法
作成したExcelアドインがあります。私がやりたいのは、c#(ASP.NET)でExcelドキュメントを開き、アドインでコードを実行してから、ExcelドキュメントをHTMLページとして返すことです。
これはできますか?
c# - C#MSAccessCOMAddInからのMSAccessフォームでのイベントの発生/メソッドの呼び出し
VS 2008 C#MS Accessアドインがあり、MSAccessフォームでイベントを発生させたりメソッドを呼び出したりする方法を知りたいと思いました。簡単に言うと、C#内からMicrosoft.Office.Interop.Access.Formオブジェクトでイベントを発生させたり、メソッドを呼び出したりして、MSAccess側で実行するVBAコードを取得するにはどうすればよいですか。誰か、そのようなことが可能かどうか、そしてどのように私に知らせてください。