2017-03-31 5 views
1

Outlookを開始したい場合、Outlookには未読メールがあるすべてのメールボックスのみが表示されます。Outlook 2010 - VBA MsgBox未読のメールが10個以上ある場合

現時点では、私のVBAスクリプトはすべてのメールボックスフォルダ/アカウントを展開します。 しかし、このリストは残念ながら長すぎます。

未読の要素をチェックする方法を探しています。 私は単純なMsgBoxで試しましたが、うまくいきません。

Private Sub Application_Startup() 
    'Folder-Variable definieren 
    Dim objFolderIMAP01 As Outlook.Folder 
    Dim objFolderIMAP02 As Outlook.Folder 
    Dim objFolderIMAP03 As Outlook.Folder 

    'IMAP-Folder zuweisen (hier in Klammern mit Anführungszeichen den Namen der IMAP-Datendatei eintragen) 
    Set objFolderIMAP01 = Outlook.Session.Folders("MailBox1") 
    Set objFolderIMAP02 = Outlook.Session.Folders("MailBox2") 
    Set objFolderIMAP03 = Outlook.Session.Folders("MailBox3") 

    'Alle Unterordner selektieren (und damit aufklappen) 
    Call selectAllFolderRec(objFolderIMAP01) 
    Call selectAllFolderRec(objFolderIMAP02) 
    Call selectAllFolderRec(objFolderIMAP03) 

    'Posteingang als Startordnder auswählen 
    Call Outlook.ActiveExplorer.SelectFolder(objFolderIMAP01.Folders("Posteingang")) 
    Call Outlook.ActiveExplorer.SelectFolder(objFolderIMAP02.Folders("Posteingang")) 
    Call Outlook.ActiveExplorer.SelectFolder(objFolderIMAP03.Folders("Posteingang")) 

    'Info wenn mehr als 10 Emails ungelesen 
    If objFolderIMAP01.UnReadItemCount > 10 Then 
     MsgBox "Mailbox 1 ist voll!" 
    End If 
    If objFolderIMAP01.UnReadItemCount > 10 Then 
     MsgBox "Mailbox 2 ist voll!" 
    End If 
    If objFolderIMAP01.UnReadItemCount > 10 Then 
     MsgBox "Mailbox 3 ist voll!" 
    End If 
End Sub 

Sub selectAllFolderRec(objFolder As Outlook.Folder) 
    Dim lngCounter As Long 
    Dim bolSkipSelect As Boolean 
    bolSkipSelect = False 
    For lngCounter = 1 To objFolder.Folders.Count 
     If objFolder.Folders(lngCounter).Folders.Count > 0 And objFolder.Folders(lngCounter).Folders.UnReadItemCount > 10 Then 
      Call selectAllFolderRec(objFolder.Folders(lngCounter)) 
      Else 
      If bolSkipSelect = False Then 
       Call Outlook.ActiveExplorer.SelectFolder(objFolder.Folders(lngCounter)) 
       bolSkipSelect = True 
      End If 
     End If 
    Next lngCounter 
End Sub 
+0

エラーメッセージ、間違った結果、何も起こらないという意味ですか? – June7

+0

私はちょっと混乱しているので、Outlookを開いて「未読アイテム」のあるアカウントだけを見たいと思っていますか?そして何? – 0m3r

+0

私はこれを試しました: 'If objFolderIMAP01.UnReadItemCount> 10 Then MsgBox" Mailbox "&objFolderIMAP01&" ist voll! " & "("&objFolderIMAP01.UnReadItemCount& ")" End If'ただし、未読アイテムは常に0とカウントされます。 –

答えて

0

「MailBox1」という名前のフォルダにメールはありません。

Mailbox1の受信トレイで未読メールを確認する場合は、objFolderIMAP01.Folders("Posteingang")を指定する必要があります。

'Info wenn mehr als 10 Emails ungelesen 
'Info if more than 10 mails unread 
If objFolderIMAP01.Folders("Posteingang").UnReadItemCount > 10 Then 
    MsgBox "Inbox of Mailbox 1 is full! - Posteingang von Mailbox 1 ist voll!" 
End If 
関連する問題