人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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を追加済みです。

●質問者: keijun5145
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● pinkymonk

http://www.ken3.org/cgi-bin/group/vba_outlook.asp

にかいてある

'通常サイズ olNormalWindow=2 で表示(ほかに olMaximized=0,olMinimized=1)
oApp.ActiveWindow.WindowState = 0
とすればよいのでは?

試してません。ごめんね。


keijun5145さんのコメント
これでできなかったので質問しています。 on error resume next を使用して for文で-100000?100000を試してみましたが通常サイズで起動されるだけでした。

2 ● kimuram

試していたら、偶然に発見(!?)したようなものですが、

まず
oApp.ActiveWindow.WindowState = 2 'olNormalWindow
を実行し、続けて
oApp.ActiveWindow.WindowState = 0 'olMaximized
を実行します。

これで最大化されたのですが、環境の違いとかあるかもしれませんが、
こちらはWindows10、Outlook2016です。

どうも起動後初期状態のウインドウ状態が最大と認識していてそこからの最大化を無視しているかのような動きに見えます。
いったん最大以外に設定してから最大化を要求するとちゃんとやってくれるようです。
勘違いとかだったらごめんなさい。
試してみてください。

関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ