重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Outlook2007のVBAマクロを使用して、新着メッセージを受信した場合に確認メッセージダイアログを表示させようとしています。
ダイアログのOKボタンを押すと、Outlookが最小化されていた場合は元の状態に戻し、Outlookのウインドウを表示したいのですが、うまくいきません。
どうすれば実現可能でしょうか。よろしくお願いします。

A 回答 (2件)

WindowStateじゃ無くて Activateを使ったらうまく行くのではないでしょうか



Private Sub Application_NewMail()
  MsgBox "新着メッセージが届きました"
  ActiveExplorer.Activate
End Sub

お試しください
    • good
    • 0
この回答へのお礼

ありがとうございます。
Activateを使用すれば実現できました。
的確なご回答ありがとうございました。

ちなみに、マクロは次の様な形で落ち着きました。

Private Sub Application_NewMail()
  If MsgBox("新着メッセージが届きました", vbMsgBoxSetForeground + vbOKCancel) = vbOK Then
    ActiveExplorer.Activate
  End If
End Sub

お礼日時:2008/06/02 11:16

Outlook自体のウィンドウなら ActiveExplorerのWindowStateを操作すればいいようですよ



' アイコン化マクロ
Sub Normal2Icon()
  ActiveExplorer.WidnowState = olMinimized
End Sub

' ノーマルウインドウ化マクロ
Sub Icon2Normal()
  ActiveExplorer.WindowState = olNormalWindow
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。やってみました。
確かにoutlookのウインドウが表示されている時は、ノーマルでもアイコン化でも可能みたいですが、アイコン化している場合にノーマル状態に戻そうとするとエラー(エクスプローラまたはインスペクタのWindowStateを設定できません。)が発生しました。

ちなみにソースは次のとおりです。
新着メッセージのイベントに記述しているのが間違いなのかもしれないですが・・・
Private Sub Application_NewMail()
MsgBox "新着メッセージが届きました"
ActiveExplorer.WindowState = olNormalWindow
End Sub

お礼日時:2008/05/30 20:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!