質問: ExcelのVBAで起動したOutlookのウィンドウを最大化する方法は? 仕事でExcelのVBAを活用して効率化をしようとしています。 その中でメールを送信するためにOutlookを使用する作業があります。 1.Outlookが起動しているか確認 2.Outlookが起動していなければ起動(起動していればなにもしない) 3.Outlookのウィンドウの状態を取得して最大化していなければ最大化 4.メールを作成(NamespaceやMAPIの処理は割愛) 5.メールを送信 という流れを考えています。1・2・4・5はできたのですが、3が実現できずにいます。 どのようなコードを記述すれば良いかご教示ください。 ※ExcelのVBAで参照設定の項目にOutlook Object Libraryを追加済みです。
回答: 試していたら、偶然に発見(!?)したようなものですが、 ``` まず oApp.ActiveWindow.WindowState = 2 'olNormalWindow を実行し、続けて oApp.ActiveWindow.WindowState = 0 'olMaximized を実行します。 ``` これで最大化されたのですが、環境の違いとかあるかもしれませんが、 こちらはWindows10、Outlook2016です。 どうも起動後初期状態のウインドウ状態が最大と認識していてそこからの最大化を無視しているかのような動きに見えます。 いったん最大以外に設定してから最大化を要求するとちゃんとやってくれるようです。 勘違いとかだったらごめんなさい。 試してみてください。