- 締切済み
Access→Excelを起動した際の挙動について
Access2000VBAの件で質問です。 このたび、OSをXPからVistaにVerUpしまして、AccessVBAからExcelブックをオープンした際に、Excelの挙動に異変が… 具体的には (1)XP :エクセルが最前面に起ち上がる (2)Vista:エクセルがタスクバーに最小化した状態で起ち上がる(で、オレンジ色に点滅する) と、OSによって挙動が違うのですが、なんとかXP側の挙動に合わせたいです。 実現する方法は無いでしょうか? 注意事項としては以下のとおりです。 ・レジストリは変更できない ・Excel側にマクロを仕込んでもOK 要件としては、起動したエクセルがタスクバーに最小化されずに、デスクトップの最前面に表示されればOKです。 皆様のアイディアをお待ちしております。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- MARU4812
- ベストアンサー率43% (196/452)
フォアグラウンドウィンドウ(ForegroundWindow)に関する仕様だと 思います。メニュー選択や文字の入力中に、勝手にウィンドウが 切り替えられてしまい、作業中の処理が中断してしまうことを防ぐ ためかと。 Win2000あたりからたびたび問題として出てくることがあり、 OS によって微妙に挙動が違う話は聞きます。 API の ShowWindow SetForeGroundWindow SetWindowPos あたりをキーワードにして調べてみて下さい。
- gokigen2525
- ベストアンサー率28% (2/7)
起動した後にAppActivate関数を使用してみてはどうでしょうか? 引数はウィンドウタイトルですので、起動したエクセルオブジェクトのcaptionを指定するようにして。
補足
ご回答ありがとうございます。MSDNにてAppActivate関数を調べてみましたが、この関数では、ウィンドウの状態は変化せず、要件を満たせないのではないでしょうか? <MSDN抜粋> AppActivate 関数は、指定したアプリケーションやウィンドウにフォーカスを移します。このとき、フォーカスが移っても、指定したウィンドウの状態は変化しません。たとえば、最小化されているウィンドウにフォーカスを移しても、そのウィンドウは最小化されたままです。 せっかく回答していただいて申し訳ありませんが、引き続き、ご回答お待ちしております。
お礼
情報のご提供ありがとうございます。 Shell "excel [ワークブックのパス]", vbMaximizedFocus で解決してしまいました。