1

com 相互運用機能を介して Excel と対話する私の winforms アプリでは、

既存の Excel プロセスがある場合は、それにアタッチしようとしています。オブジェクトの取得はうまくいっているように見えますが、Excel アプリケーションが最小化されている場合 (私の使用例ではかなりそうです)、ウィンドウを復元して前面に表示することができません。

私は次のステートメントを試しました:

try
    app = (Excel.Application)Marshal.GetActiveObject("Excel.Application");
catch (Exception) { /* ignore */ }

if (app == null)
{
    app = new Excel.Application();
    app.Visible = true;
}

if (app.ActiveWindow.WindowState == Excel.XlWindowState.xlMinimized)
    app.ActiveWindow.WindowState = Excel.XlWindowState.xlNormal;

wb = ...

wb.Activate();

これらのどれも効果がありませんでした。どうすればそれを達成できますか?

注:私の問題既存のインスタンスがある場合に関連しているため、「Visible = true」は必要なく、このスレッドは適用されません。

4

1 に答える 1

2

アプリケーション インスタンスのメイン ウィンドウではなく、現在のシートをそのまま使用しapp.WindowState = xlNormalます。app.ActiveWindow

于 2010-05-07T13:42:37.490 に答える