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

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

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

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

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

▽最新の回答へ

1 ● Take.Y
●200ポイント ベストアンサー
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として扱われることがあります。


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

●質問をもっと探す●



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