Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。587件0ExcelのVBAをC#で実行しようと考えています。現状、ExcelからボタンクリックでVBAを実行すると1時間かかる処理が、C#側から「Microsoft.Office.Interop.Excel」を使ってxlApp.Run("Sheet1.Btn_Calc_Click");で同じマクロを実行すると3時間かかってしまします。Interop.ExcelでExcel処理を行うと遅いというのは聞きますが、Excel側のマクロ実行にも影響するものでしょうか。原因や、処理速度の短縮方法がありましたらご教授ください。指定されていない場合、スレッドはマルチスレッドアパートメントとして初期化されます。マルチスレッドアパートメントからシングルスレッドアパートメントのオブジェクトを操作する場合、マーシャリングが必要となり、それによって処理が遅延しているのかもしれません。シングルスレッドアパートメントの要件としてGUIなどのメッセージループを回す必要があります。個の銅バッジご回答いただきありがとうございます。Mainにて[STAThread]の定義はされていました。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。