Ausführen von VBA in einem freigegebenen Postfach Outlook 365

1348
Madter

Ich habe diesen Code zum Speichern von Anhängen aus E-Mails mit einem bestimmten Absender und Thema auf meiner Festplatte. Es funktioniert gut, wenn es nur für meine persönliche Mailbox funktioniert. Aber ich brauche es, um mit dem gemeinsamen Postfach zu arbeiten, das ich mit meinen Kollegen habe.

Ich habe diesen Code in der "ThisOutlookSession":

Private WithEvents olInboxItems As Items  Private Sub Application_Startup() Dim objNS As NameSpace Set objNS = Application.Session  Set olInboxItems = GetFolderPath("name of the shared mailbox\Inbox").Items Set objNS = Nothing End Sub   Private Sub Items_ItemAdd(ByVal item As Object)  On Error GoTo ErrorHandler  'Only act if it's a MailItem Dim Msg As Outlook.MailItem If TypeName(item) = "MailItem" Then Set Msg = item  'Change variables to match need. Comment or delete any part unnecessary. If (Msg.SenderName = "Sender name") And _ (Msg.Subject = "test") And _ (Msg.Attachments.Count >= 1) Then  'Set folder to save in. Dim olDestFldr As Outlook.MAPIFolder Dim myAttachments As Outlook.Attachments Dim Att As String  'location to save in. Can be root drive or mapped network drive. Const attPath As String = "U:\TESTING\"  ' save attachment Set myAttachments = item.Attachments Att = myAttachments.item(1).DisplayName myAttachments.item(1).SaveAsFile attPath & Att  ' mark as read Msg.UnRead = False End If  End If  ProgramExit: Exit Sub ErrorHandler: MsgBox Err.Number & " - " & Err.Description Resume ProgramExit End Sub 

Dann habe ich diese GetFolderPath-Funktion in meinem Modul:

' Use the GetFolderPath function to find a folder in non-default mailboxes Function GetFolderPath(ByVal FolderPath As String) As Outlook.Folder Dim oFolder As Outlook.Folder Dim FoldersArray As Variant Dim i As Integer  On Error GoTo GetFolderPath_Error If Left(FolderPath, 2) = "\\" Then FolderPath = Right(FolderPath, Len(FolderPath) - 2) End If 'Convert folderpath to array FoldersArray = Split(FolderPath, "\") Set oFolder = Application.Session.Folders.item(FoldersArray(0)) If Not oFolder Is Nothing Then For i = 1 To UBound(FoldersArray, 1) Dim SubFolders As Outlook.Folders Set SubFolders = oFolder.Folders Set oFolder = SubFolders.item(FoldersArray(i)) If oFolder Is Nothing Then Set GetFolderPath = Nothing End If Next End If 'Return the oFolder Set GetFolderPath = oFolder Exit Function  GetFolderPath_Error: Set GetFolderPath = Nothing Exit Function End Function 

Haben Sie Vorschläge, warum es nicht funktioniert? Danke vielmals

0
Welche Version von Outlook verwenden Sie und haben Sie dieses freigegebene Postfach als primäres Postfach verbunden oder haben Sie es automatisch erhalten, nachdem Sie die Rechte dazu erworben haben? LPChip vor 6 Jahren 0
Outlook 2016 und ich bin mir dessen eigentlich nicht sicher. Ich erhielt meine Arbeitspost und alles war da, denke ich. sowohl meine "persönliche" Arbeitsmail als auch die freigegebene Mail. Madter vor 6 Jahren 0
@LPChip Outlook 2016 Madter vor 6 Jahren 0
Wenn Sie in Outlook zu Datei, Kontoeinstellungen, Kontoeinstellungen wechseln. Sehen Sie auch das freigegebene Postfach in der Liste? Oder nur dein eigenes Konto? LPChip vor 6 Jahren 0
@LPChip Nur mein eigener Account Madter vor 6 Jahren 0
Deshalb funktioniert Ihr Code nicht. Sie müssen dieses freigegebene Postfach als zweites Konto hinzufügen, damit VBA es finden kann. LPChip vor 6 Jahren 0

1 Antwort auf die Frage

0
LPChip

Der Grund dafür ist, dass es nicht funktioniert, weil Sie das freigegebene Postfach als zweites Konto hinzufügen müssen. Nur dann kann VBA die Mailbox finden und damit arbeiten.

Sie können das Postfach einfach hinzufügen, indem Sie die E-Mail-Adresse und ein falsches Kennwort angeben. Geben Sie nach der Anmeldeaufforderung Ihre eigene E-Mail-Adresse / Ihren Benutzernamen und Ihr Passwort ein. Diese wird als zweite E-Mail-Adresse hinzugefügt.

Beachten Sie, dass Sie Outlook schließen und erneut öffnen müssen (möglicherweise zweimal), bevor beide Konten als ein Konto zusammengeführt werden. Ansonsten sehen Sie es zweimal.

Ich habe das jetzt gemacht, aber der Code funktioniert noch nicht. Der Anhang wird immer noch nicht im gewünschten Ordner gespeichert: / Ist der Code Ihrer Meinung nach falsch? Madter vor 6 Jahren 0
Wenn der Code mit Ihrem eigenen Konto funktioniert, ist der Code in Ordnung. Ich weiß nicht, warum es nicht funktioniert. VBA in Outlook verhält sich manchmal sehr seltsam. Sie können versuchen, ein neues Outlook-Konto zu erstellen. Fügen Sie zuerst das freigegebene Postfach und dann Ihr eigenes hinzu. Prüfen Sie, ob dies funktioniert. LPChip vor 6 Jahren 0
Okay, gibt es keinen anderen Weg? Weil ich gerade gesehen habe, dass das Hinzufügen des freigegebenen Postfachs einige Probleme im Postfach verursacht. Zum Beispiel jedes Mal herunterfahren, wenn ich eine Regel erstellen möchte. Madter vor 6 Jahren 0
Nicht meines Wissens. Andererseits weiß ich viel, aber nicht alles. LPChip vor 6 Jahren 0