[VBA Outlook]新着メールがあるによって、動作を変更


・メールを送受信した際、①新着メールがなければ予定表画面にする、②新着メールがあればメール画面のままにする、マクロを教えて下さい。
イメージとしては下記のようなコードだと思いますが、書き方がわかりません。なお、メールの送受信(F9)がマクロ実行のトリガーとなるようにもしたいと考えております。
よろしくお願い致します。

If 新着メールがなければ then
SendKeys "^2" 'Ctrl+2で予定表画面になります
End if

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/07/18 15:41:43
  • 終了:2014/07/22 14:27:05

ベストアンサー

id:seto489 No.1

Take.Y回答回数12ベストアンサー獲得回数32014/07/19 16:26:01

ポイント200pt
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub test()
    INBOX_IDX = 6
    SCHEDULE_IDX = 9
    Set nsp = GetNamespace("MAPI")
    
    '送受信 (F9)
    Set oSyncs = nsp.SyncObjects
        For i = 1 To oSyncs.Count
        Set syc = oSyncs.Item(i)
        syc.Start
    Next
    
    '受信完了までの時間
    Sleep (1 * 1000)

    '受信トレイ未読数により画面移動
    Set mf = nsp.GetDefaultFolder(INBOX_IDX)
    If mf.UnReadItemCount > 0 Then
        Set Application.ActiveExplorer.CurrentFolder = nsp.GetDefaultFolder(INBOX_IDX)
    Else
        Set Application.ActiveExplorer.CurrentFolder = nsp.GetDefaultFolder(SCHEDULE_IDX)
    End If
End Sub

送受信がバックグラウンドで動くので受信終了までの待ち時間を長めに取らないと未読0として扱われることがあります。

id:consultation10

すいません。Outlookがアクティブな状態で、F9(なんらかのキー)を押すことで上記マクロが動作するようにしたかったのですが、私の説明がおかしかったです。もし、ショートカットキーでのマクロ実行が可能であれば、教えて頂けると幸いです。
現状は、AHKというソフトで右のWinキーを押すと、①OUtlookがアクティブになり、②Alt→H→Yを入力(リボンにマクロを登録して、キーボードによる実行)、というプログラムを作り、上記マクロを動かすことが出来ました。

2014/07/22 14:42:26

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません