2010-11-18 10 views
4

私はC#アプリケーション(.Net 1.1)を使用していますが、いくつかのreoprtを表示するためにinteropを使用します。 Excelのワークブックを開くとき、XLSTARTのファイルは読み込まれませんが、/ automationコマンドラインスイッチが実行されているかのように見えます。Excel XLSTART C#/の問題

C#からXLSシートを起動するときにXLSTARTを有効にする方法はありますか?

答えて

0

interopを使用するため、オートメーションサーバーとしてExcelを開きます。/automationスイッチを使用するのと同じことです。このようにExcelを開くと、自動的に開いたファイルと自動実行マクロはすべて無効になります。

2

この動作は仕様です。あなたは、マイクロソフトによって記載されているように自分自身をフォル​​ダXLSTARTにアドインを読み込むことができます。

Add-ins do not load when using the CreateObject command in Excel

あなたが持っている別のオプションからProcess.Startを使用してExcelを起動し、オートメーションオブジェクトです実行中のインスタンスにはAccessibleObjectFromWindow関数を呼び出します。 C#やVBでこれを行うにはどのようにコードが関連する質問で見つけることができます

サンプル:

How to use use late binding to get excel instance?

は、あなたのように遅延バインディングを使用する必要はありませんので、予めご了承ください与えられた例では、このようなサンプルを変更すると、強く型付けされたExcel.Applicationオブジェクトが得られます。

Excel.Application xlApp = ptr.GetType().InvokeMember("Application", 
    BindingFlags.GetProperty, null, ptr, null);