VB.NET 3.5の実験アセンブリをCOMから公開し、ExcelのVBAコードから呼び出して、いくつかのExcelイベントをトラップし、Excelでアクティブなワークブックでいくつかの機能を実行するクラスです。BackgroundWorker経由でExcelとやり取りする.NET COMアセンブリ
クラスを開始するには、Excelアプリケーションへの参照がVBAから渡されます(アセンブリでExcel用PIAを使用しています)。
私のアセンブリからアクティブなワークブックで時間のかかる操作を実行する必要があったので、操作がバックグラウンドで完了している間に操作の進捗ダイアログを表示できるように、BackgroundWorker
をWinFormで使用することに決めました。
この方法でバックグラウンドワーカーを使用してCOM経由でExcelと対話する際に問題があるかどうかを知りたいですか?理由は、アセンブリのメインクラスがExcelアプリケーションオブジェクトへの参照を保持しているため、アクティブなワークブックを特定してその上でいくつかの操作を実行できるように、これがBackgroundWorker
に渡されるということです。私は1つの手順でワークブック自体(他のオブジェクトではない)にアクセスしています。
何らかの理由で、私はExcelがこれを好まないかもしれないということを私の頭に入れています - そうですか?
閉じる投票がいくつかあります。なぜこれが「本当の疑問」ではないのかわかりません。質問者は何かが合法であるかバグかを尋ねています:「この方法でバックグラウンドワーカーを使ってCOM経由でExcelとやりとりする際の問題はありますか?」 –
はい、そうです、何か問題がありますか、Excelと対話する良い方法がありますか? おそらく、私は質問をよりよく表現していたはずです...! –