2009-03-11 15 views
3

J'ai deux boîtes aux lettres dans mon Outlook.Accéder à un autre maibox dans Outlook en utilisant vba

Un qui est à moi et il me connecte automatiquement lorsque je me connecte à mon PC et un autre que j'ai pour le courrier rebondit.

J'ai vraiment besoin d'accéder à la boîte de réception du compte de la messagerie, mais je ne peux pas sembler le faire.

Et il n'y a aucun moyen que je peux faire la boîte aux lettres du compte de courrier à ma boîte aux lettres par défaut

Voici le code que j'ai jusqu'à présent:

Public Sub GetMails() 

    Dim ns As NameSpace 
    Dim myRecipient As Outlook.Recipient 
    Dim aFolder As Outlook.Folders 

    Set ns = GetNamespace("MAPI") 

    Set myRecipient = ns.CreateRecipient("[email protected]") 
    myRecipient.Resolve 
    If myRecipient.Resolved Then 
     MsgBox ("Resolved") 
     Set aFolder = ns.GetSharedDefaultFolder(myRecipient, olFolderInbox) 
    Else 
     MsgBox ("Failed") 
    End If 

End Sub 

Le problème que je reçois est à le

Set aFolder = ns.GetSharedDefaultFolder(myRecipient, olFolderInbox)

je reçois le msgbox Résolu donc je sais que fonctionne, mais après que je reçois une erreur:

Run-Time Error

qui ne dit pas grand-chose sur l'erreur elle-même.

Quelqu'un peut-il m'aider s'il vous plaît? Merci

Répondre

3

Si le dossier auquel vous souhaitez accéder n'est pas un dossier Exchange, vous devrez le trouver, s'il s'agit d'un dossier Exchange, essayez de vous connecter à l'espace de noms.

Connectez-vous namespace

Set oNS = oApp.GetNamespace("MAPI") 
    oNS.Logon 

Trouver un dossier Pour autant que je me souvienne, ce code est de Sue Mosher.

Public Function GetFolder(strFolderPath As String) As Object 'MAPIFolder 
' strFolderPath needs to be something like 
' "Public Folders\All Public Folders\Company\Sales" or 
' "Personal Folders\Inbox\My Folder" '' 

Dim apOL As Object 'Outlook.Application ' 
Dim objNS As Object 'Outlook.NameSpace ' 
Dim colFolders As Object 'Outlook.Folders ' 
Dim objFolder As Object 'Outlook.MAPIFolder ' 
Dim arrFolders() As String 
Dim I As Long 

On Error GoTo TrapError 

    strFolderPath = Replace(strFolderPath, "/", "\") 
    arrFolders() = Split(strFolderPath, "\") 

    Set apOL = CreateObject("Outlook.Application") 
    Set objNS = apOL.GetNamespace("MAPI") 


    On Error Resume Next 

    Set objFolder = objNS.Folders.Item(arrFolders(0)) 

    If Not objFolder Is Nothing Then 
     For I = 1 To UBound(arrFolders) 
      Set colFolders = objFolder.Folders 
      Set objFolder = Nothing 
      Set objFolder = colFolders.Item(arrFolders(I)) 

      If objFolder Is Nothing Then 
       Exit For 
      End If 
     Next 
    End If 

    Set GetFolder = objFolder 
    Set colFolders = Nothing 
    Set objNS = Nothing 
    Set apOL = Nothing 


End Function 
+1

wow! Merci pour le code. J'ai réussi à résoudre mon problème en créant un nouveau profil et en ne spécifiant que le compte que je voulais, donc le code fonctionne sur ce compte :) Merci – AntonioCS

Questions connexes