質問

私c#アントレプレナーシップとして書き込む値excel範囲の特定のワークシート.私のインスタンスを生成しExcelの場合、お申込みが存在しないものが存在する場合はiを設定したい活動でインスタンスの場合のなかで活用することができ私のコードです。

その結果が、先ほど任天堂さんのコードを新規作成し申し込み:

Microsoft.Office.Interop.Excel app = 
   new Microsoft.Office.Interop.Excel.Application();
app.Visible = true;

の取扱いのexcel画面を使っているこのapi

[DllImportAttribute("User32.dll")]
private static extern int FindWindow(String ClassName, String WindowName);

方法を教えてくださいインスタンスのexcel用すか?

int hWnd = FindWindow(null, "Microsoft Excel - MySheet.xlsx");
Microsoft.Office.Interop.Excel app = ....(hWnd)
役に立ちましたか?

解決

以下のコードを取得し運動生理学に基づくトレーニングのインスタンスExcel:

oExcelApp =  (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");

public Excel.Application StartExcel()
{
    Excel.Application instance = null;
    try
    {
       instance = (Excel.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
    }
    catch (System.Runtime.InteropServices.COMException ex)
    {
       instance = new Excel.ApplicationClass();
    }

    return instance;
}

他のヒント

実行している複数のExcelインスタンスがあるかもしれません。

GetActiveObject(...)実行中のオブジェクトテーブル(ROT)に見えますし、あなたに開かれた最後のExcelのインスタンス与えるだろう - 。必ずしもあなたが持っているウィンドウハンドルに対応するものを

あなたはAccessibleObjectFromWindow(..)を探しています。 アンドリュー・ホワイトチャペル他の回答ににリンクされているポストには、この機能を使用する方法を示します。

別のリンク - http://blogs.officezealot.com /whitechapel/archive/2005/04/10/4514.aspxするます。

あなたはMarshal.GetActiveObjectを使用することができ、詳細については、このブログ記事を参照してください。

HTTP ://blogs.msdn.com/andreww/archive/2008/11/30/starting-or-connecting-to-office-apps.aspxする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top