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」は必要なく、このスレッドは適用されません。)