- ベストアンサー
最小化したoutlook元に戻すマクロ
Outlook2007のVBAマクロを使用して、新着メッセージを受信した場合に確認メッセージダイアログを表示させようとしています。 ダイアログのOKボタンを押すと、Outlookが最小化されていた場合は元の状態に戻し、Outlookのウインドウを表示したいのですが、うまくいきません。 どうすれば実現可能でしょうか。よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
WindowStateじゃ無くて Activateを使ったらうまく行くのではないでしょうか Private Sub Application_NewMail() MsgBox "新着メッセージが届きました" ActiveExplorer.Activate End Sub お試しください
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
Outlook自体のウィンドウなら ActiveExplorerのWindowStateを操作すればいいようですよ ' アイコン化マクロ Sub Normal2Icon() ActiveExplorer.WidnowState = olMinimized End Sub ' ノーマルウインドウ化マクロ Sub Icon2Normal() ActiveExplorer.WindowState = olNormalWindow End Sub
お礼
ありがとうございます。やってみました。 確かにoutlookのウインドウが表示されている時は、ノーマルでもアイコン化でも可能みたいですが、アイコン化している場合にノーマル状態に戻そうとするとエラー(エクスプローラまたはインスペクタのWindowStateを設定できません。)が発生しました。 ちなみにソースは次のとおりです。 新着メッセージのイベントに記述しているのが間違いなのかもしれないですが・・・ Private Sub Application_NewMail() MsgBox "新着メッセージが届きました" ActiveExplorer.WindowState = olNormalWindow End Sub
お礼
ありがとうございます。 Activateを使用すれば実現できました。 的確なご回答ありがとうございました。 ちなみに、マクロは次の様な形で落ち着きました。 Private Sub Application_NewMail() If MsgBox("新着メッセージが届きました", vbMsgBoxSetForeground + vbOKCancel) = vbOK Then ActiveExplorer.Activate End If End Sub