Outlook mit geöffneten Konten starten.
Hallo,
habe mir mal Outlook aus meinem Office 2010-Paket installiert und möchte es eigendlich durch Thunderbird ersetzten. Das einrichten meiner vier E-mail Konten, das exportieren meiner e-mails ins Outlook-Format usw. klappte alles wunderbar. Habe also jetzt nach dem Outlook-Start in der linken Spalte "Meine Ordner" und darunter meine vier Konten, jedes bezeichnet mit meiner E-mail Adresse.
Meine Frage: Wie kann ich Outlook so einstellen, das nach dem Outlook-Start meine vier Konten immer direkt aufgeklappt sind (also auch immer die Unterordner "Posteingang","Gesendete Elemente","Papierkorb","Drafts","Entwürfe","Junk" zu sehen sind) ?
Auch wenn ich in ANSICHT , ANSICHT ÄNDERN , AKTUELLE ANSICH FÜR ANDERE E-MAIORDNER ÜBERNEHMEN... und da alle Ordner meiner vier E-mail Adressen markiere sind meine E-mail Konten nach einem Outlook Neustart immer wieder zugeklappt und ich muss sie jedesmal wieder von Hand aufklappen. Was mache ich da Falsch ?
habe mir mal Outlook aus meinem Office 2010-Paket installiert und möchte es eigendlich durch Thunderbird ersetzten. Das einrichten meiner vier E-mail Konten, das exportieren meiner e-mails ins Outlook-Format usw. klappte alles wunderbar. Habe also jetzt nach dem Outlook-Start in der linken Spalte "Meine Ordner" und darunter meine vier Konten, jedes bezeichnet mit meiner E-mail Adresse.
Meine Frage: Wie kann ich Outlook so einstellen, das nach dem Outlook-Start meine vier Konten immer direkt aufgeklappt sind (also auch immer die Unterordner "Posteingang","Gesendete Elemente","Papierkorb","Drafts","Entwürfe","Junk" zu sehen sind) ?
Auch wenn ich in ANSICHT , ANSICHT ÄNDERN , AKTUELLE ANSICH FÜR ANDERE E-MAIORDNER ÜBERNEHMEN... und da alle Ordner meiner vier E-mail Adressen markiere sind meine E-mail Konten nach einem Outlook Neustart immer wieder zugeklappt und ich muss sie jedesmal wieder von Hand aufklappen. Was mache ich da Falsch ?
Please also mark the comments that contributed to the solution of the article
Content-ID: 211459
Url: https://administrator.de/contentid/211459
Printed on: December 2, 2024 at 13:12 o'clock
37 Comments
Latest comment
Moin moin,
Outlook 2010? 2013? OS?
Ich habe hier Outlook 2013 (auf Windows 7) laufen und habe auch mehrere Konten eingebunden. Outlook startet i.d.R. so, wie du es verlassen hast, soll heissen: Klappe ich alle Konten auf schließe Outlook, startet es beim nächsten Start mit "geöffneten" Konten.
Cheers,
jsysde
Outlook 2010? 2013? OS?
Ich habe hier Outlook 2013 (auf Windows 7) laufen und habe auch mehrere Konten eingebunden. Outlook startet i.d.R. so, wie du es verlassen hast, soll heissen: Klappe ich alle Konten auf schließe Outlook, startet es beim nächsten Start mit "geöffneten" Konten.
Cheers,
jsysde
Hallo didistei,
das ist bei IMAP-Konten in Outlook ein normales Verhalten. Diesen, leider lästigen Umstand, kannst du nur mit einem Script folgendermaßen beheben:
Mit ALT-F11 in Outlook den VBA-Editor starten und diesen Code in "ThisOutlookSession" einfügen. In der zweiten Zeile musst du noch den Namen des Accounts angeben den du Standardmäßig geöffnet haben willst.
das ganze kannst du natürlich auch für mehrere Accounts machen, so dass auch diese geöffnet sind wenn du Outlook startest:
Und wenn dann noch alle Unterordner des Posteingangs mit aufgeklappt werden sollen, nehme man folgendes Rezept:
Wenn deine Accounts alle mit der jeweiligen E-Mail-Adresse benannt sind könntest sie alternativ auch wie folgt in einer Schleife nacheinander öffnen:
Grüße Uwe
das ist bei IMAP-Konten in Outlook ein normales Verhalten. Diesen, leider lästigen Umstand, kannst du nur mit einem Script folgendermaßen beheben:
Mit ALT-F11 in Outlook den VBA-Editor starten und diesen Code in "ThisOutlookSession" einfügen. In der zweiten Zeile musst du noch den Namen des Accounts angeben den du Standardmäßig geöffnet haben willst.
Private Sub Application_MAPILogonComplete()
strNameOfStore = "NAME_DEINES_ACCOUNTS"
Set fldrPosteingang = Session.Stores.item(strNameOfStore).GetDefaultFolder(olFolderInbox)
ActiveExplorer.SelectFolder fldrPosteingang
End Sub
Private Sub Application_MAPILogonComplete()
arrNameOfStores = Array("NAME DES ERSTEN ACCOUNTS","NAME DES ZWEITEN ACCOUNTS","NAME DES DRITTEN ACCOUNTS")
For i = 0 to UBound(arrNameOfStores)
Set fldrPosteingang = Session.Stores.item(arrNameOfStores(i)).GetDefaultFolder(olFolderInbox)
ActiveExplorer.SelectFolder fldrPosteingang
Next
End Sub
Private Sub Application_MAPILogonComplete()
arrNameOfStores = Array("NAME DES ERSTEN ACCOUNTS","NAME DES ZWEITEN ACCOUNTS","NAME DES DRITTEN ACCOUNTS")
For i = 0 to UBound(arrNameOfStores)
Set fldrPosteingang = Session.Stores.item(arrNameOfStores(i)).GetDefaultFolder(olFolderInbox)
OpenFolders fldrPosteingang
ActiveExplorer.SelectFolder fldrPosteingang
Next
End Sub
Sub OpenFolders(ByVal fldr As Folder)
For Each f In fldr.Folders
If f.Folders.count > 0 Then
OpenFolders f
Else
ActiveExplorer.SelectFolder f
End If
Next
End Sub
Private Sub Application_MAPILogonComplete()
For Each store In Application.Session.Stores
If InStr(1, store.DisplayName, "@") > 0 Then
ActiveExplorer.SelectFolder store.GetDefaultFolder(olFolderInbox)
End If
Next
End Sub
Grüße Uwe
Zitat von @didistei:
OE immer nur 1 Konto offen und die anderen drei müssen dann immer erst von Hanf geöffnet werden.
Hanf bekommst du hier nicht, da musst du schon in Nachbars Keller nachsehen...OE immer nur 1 Konto offen und die anderen drei müssen dann immer erst von Hanf geöffnet werden.
Das heisst für mich: OE echt die letzte Krücke. Bleibe da lieber bei Thunderbird. Das geht da nähmlich einwandfrei.
Wer nämlich mit h schreibt ...Spaß beiseite, du hast meinen oben geposteten Code in deinem VBA Projekt wahrscheinlich nicht mit einer Code-Signatur versehen (Menü Extras) und im Sicherheitscenter nicht eingestellt das nur signierter Code ausgeführt werden darf. Standard in Outlook ist nämlich: keinen VBA-Code auszuführen. Wenn du das korrigiert hast kommt beim nächsten Start von Outlook die Abfrage ob du der Codesignatur mit der du das VBA-Projekt signiert hast vertraust. Danach läufts einwandfrei ...
Hallo chgs2011.
Wenn du also alle Stores vor dem Beenden schließt (zwingende BEDINGUNG!! damit die seit dem letzten Beenden von Outlook geöffneten Stores geschlossen bleiben) geht das mit folgendem Code:
Damit werden in der Ordnerstruktur eines Stores alle Knoten aufgeklappt die mindestens eine ungelesene Mail enthalten
Grüße Uwe
Zitat von @chgs2011:
Wir könnte man dies umbauen, dass NUR Ordner/Postfächer aufgeklappt werden, wenn ungelesene Mails enthalten sind?
Das ist nur möglich wenn du vor dem Schließen von Outlook alle Stores komplett zu klappst, denn es gibt keine VBA-Methode im Outlook-Objektmodell um einmal geöffnete Stores wieder programmatisch zu schließen (Sendkeys etc. ist unzuverlässig und funktioniert nicht überall).Wir könnte man dies umbauen, dass NUR Ordner/Postfächer aufgeklappt werden, wenn ungelesene Mails enthalten sind?
Wenn du also alle Stores vor dem Beenden schließt (zwingende BEDINGUNG!! damit die seit dem letzten Beenden von Outlook geöffneten Stores geschlossen bleiben) geht das mit folgendem Code:
Private Sub Application_MAPILogonComplete()
Dim hasUnread As Boolean
arrNameOfStores = Array("Persönlicher Ordner", "user@domain.net")
For Each Store In arrNameOfStores
Set fldrPosteingang = Session.Stores(Store).GetDefaultFolder(olFolderInbox)
OpenFolders fldrPosteingang
Next
End Sub
Sub OpenFolders(ByVal fldr As Folder)
If fldr.UnReadItemCount > 0 Then
ActiveExplorer.SelectFolder fldr
End If
For Each f In fldr.Folders
OpenFolders f
Next
End Sub
Grüße Uwe
VIelen Dank für den Tipp, den muss man erst mal wissen
Gut, wenn ich nun alle zuklappe und Outlook neu starte, öffnet die Funktion die Ordner.
Werden diese dann wieder geschlossen, wenn alle Mails gelesen wurden, oder muss man das manuell tun?
Fehler, Anzahl an Argumenten oder Zuweisung zu Eigenschaft sei falsch?!
OpenFolders
Habe 17 Konten, habe daher diese eingetragen:
arrNameOfStores = Array("Konto 1", "Konto 2", ...)
Gut, wenn ich nun alle zuklappe und Outlook neu starte, öffnet die Funktion die Ordner.
Werden diese dann wieder geschlossen, wenn alle Mails gelesen wurden, oder muss man das manuell tun?
Fehler, Anzahl an Argumenten oder Zuweisung zu Eigenschaft sei falsch?!
OpenFolders
Habe 17 Konten, habe daher diese eingetragen:
arrNameOfStores = Array("Konto 1", "Konto 2", ...)
Zitat von @chgs2011:
Werden diese dann wieder geschlossen, wenn alle Mails gelesen wurden, oder muss man das manuell tun?
Natürlich musst du sie manuell schließen, es gilt das oben bereits gesagte, den Top-Store(Root des Stores) zu schließen reicht, alle Unterordner werden dann automatisch zusammengeklappt!Werden diese dann wieder geschlossen, wenn alle Mails gelesen wurden, oder muss man das manuell tun?
Fehler, Anzahl an Argumenten oder Zuweisung zu Eigenschaft sei falsch?!
OpenFolders
Sorry war nur ein Tippfehler, da ich die Funktion anderweitig mit anderen Parametern verwendet habe, ist oben korrigiert.OpenFolders
Super danke dir!
Habe nun das Script in ThisOutlookSession, beim starten werden die Postfächer nun geöffnet, KLASSE!
Muss nur nochmals fragen, sollten die Postfächer auch während der Sitzung autom. aufklappen, wenn eine neue Email eintrifft?
Dies war aktuell nicht der Fall ... habe daher das Script auch nochmals als Modul erstellt, um es manuell ausführen zu können.
Wäre klasse, wenn ich irgendwie die 2 Punkte noch realisiert bekommen würde:
1.) während Sitzung Postfach bei neuen Emails aufklappen
2.) Postfach schließen, wenn alle Mails gelesen sind / bzw. schließen beim starten von Outlook wenn keine ungelesenen vorhanden sind
Du meintest bzgl. Punkt 2.), dass dies ja wohl technisch nicht möglich ist?!
Kann man das nicht per RemoveStore ermöglichen?
Habe nun das Script in ThisOutlookSession, beim starten werden die Postfächer nun geöffnet, KLASSE!
Muss nur nochmals fragen, sollten die Postfächer auch während der Sitzung autom. aufklappen, wenn eine neue Email eintrifft?
Dies war aktuell nicht der Fall ... habe daher das Script auch nochmals als Modul erstellt, um es manuell ausführen zu können.
Wäre klasse, wenn ich irgendwie die 2 Punkte noch realisiert bekommen würde:
1.) während Sitzung Postfach bei neuen Emails aufklappen
2.) Postfach schließen, wenn alle Mails gelesen sind / bzw. schließen beim starten von Outlook wenn keine ungelesenen vorhanden sind
Du meintest bzgl. Punkt 2.), dass dies ja wohl technisch nicht möglich ist?!
Kann man das nicht per RemoveStore ermöglichen?
Zitat von @chgs2011:
Muss nur nochmals fragen, sollten die Postfächer auch während der Sitzung autom. aufklappen, wenn eine neue Email eintrifft?
Nein, das war ja auch nicht deine Anforderung oben!Muss nur nochmals fragen, sollten die Postfächer auch während der Sitzung autom. aufklappen, wenn eine neue Email eintrifft?
Dies war aktuell nicht der Fall ... habe daher das Script auch nochmals als Modul erstellt, um es manuell ausführen zu können.
Wäre klasse, wenn ich irgendwie die 2 Punkte noch realisiert bekommen würde:
1.) während Sitzung Postfach bei neuen Emails aufklappen
Kein Problem, einfach im NewMail Event die Prozedur erneut durchlaufen lassen.Wäre klasse, wenn ich irgendwie die 2 Punkte noch realisiert bekommen würde:
1.) während Sitzung Postfach bei neuen Emails aufklappen
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim varEntryIDs, objItem As Object, i As Integer
varEntryIDs = Split(EntryIDCollection, ",")
For i = 0 To UBound(varEntryIDs)
Set objItem = Application.Session.GetItemFromID(varEntryIDs(i))
OpenFolders objItem.Parent.Store.GetDefaultFolder(olFolderInbox)
Next
End Sub
Sub OpenFolders(ByVal fldr As Folder)
If fldr.UnReadItemCount > 0 Then
ActiveExplorer.SelectFolder fldr
End If
For Each f In fldr.Folders
OpenFolders f
Next
End Sub
2.) Postfach schließen, wenn alle Mails gelesen sind / bzw. schließen beim starten von Outlook wenn keine ungelesenen vorhanden sind
Du meintest bzgl. Punkt 2.), dass dies ja wohl technisch nicht möglich ist?!
Kann man das nicht per RemoveStore ermöglichen?
Du kannst den Store komplett schließen/entfernen, dann musst du Ihn aber beim Öffnen wieder neu hinzufügen. Aber ob er dann geöffnet oder geschlossen ist eher Zufall als die Regel. Also keine vernünftige Umsetzung. Ob du das machst bleibt deine Entscheidung. Ich würde nicht zu viel in den Ablauf der Users eingreifen, denn da gibt es einige Fallen mit denen du dann die User sehr verwirren kannst wenn sich von selbst irgendwas öffnet schließt etc.Du meintest bzgl. Punkt 2.), dass dies ja wohl technisch nicht möglich ist?!
Kann man das nicht per RemoveStore ermöglichen?
Das sind aber jetzt kein Thema mehr für diesen Thread. Bei Anfragen gerne kostenpflichtig per PM , aber hier sollten wir es belassen, auch im Sinne von Discussion guidelines - The rules for our content . Danke!
Grüße Uwe
Hallo Uwe, ich hätte eine Frage.
Ich benutze Outlook 2016 (Office 365, Exchange) und habe heute folgendes Script von dir ausprobiert:
Mit diesem funktioniert es zwar dass sich die Postfächer automatisch aufklappen, aber die Nachrichtenvorschau und der Lesebereich wird dafür "ausgeblendet" (bleibt einfach weiß).
Der Ordnerbereich ist noch da und wenn ich zwischen den einzelnen Ordnern/Postfächern wechsle, blitzt die Vorschau und der Lesebereich immer wieder kurz auf, verschwindet dann aber leider wieder.
Muss ich im Script vielleicht irgendetwas an meine Outlook-Version anpassen?
Grüße Thomas
Ich benutze Outlook 2016 (Office 365, Exchange) und habe heute folgendes Script von dir ausprobiert:
Private Sub Application_MAPILogonComplete()
arrNameOfStores = Array("NamePostfach1","NamePostfach2","NamePostfach3")
For i = 0 to UBound(arrNameOfStores)
Set fldrPosteingang = Session.Stores.item(arrNameOfStores(i)).GetDefaultFolder(olFolderInbox)
ActiveExplorer.SelectFolder fldrPosteingang
Next
End Sub
Mit diesem funktioniert es zwar dass sich die Postfächer automatisch aufklappen, aber die Nachrichtenvorschau und der Lesebereich wird dafür "ausgeblendet" (bleibt einfach weiß).
Der Ordnerbereich ist noch da und wenn ich zwischen den einzelnen Ordnern/Postfächern wechsle, blitzt die Vorschau und der Lesebereich immer wieder kurz auf, verschwindet dann aber leider wieder.
Muss ich im Script vielleicht irgendetwas an meine Outlook-Version anpassen?
Grüße Thomas
Hallo Thomas,
wie konntest du das Problem mit dem ausgeblendeten Nachrichtenvorschau und dem Lesebereich lösen?
Sobald ich ein Script ausprobiere, habe ich das gleiche Problem.
Gruß
Christoph
wie konntest du das Problem mit dem ausgeblendeten Nachrichtenvorschau und dem Lesebereich lösen?
Sobald ich ein Script ausprobiere, habe ich das gleiche Problem.
Gruß
Christoph
Zitat von @tomscrw:
Hallo Uwe, ich hätte eine Frage.
Ich benutze Outlook 2016 (Office 365, Exchange) und habe heute folgendes Script von dir ausprobiert:
Mit diesem funktioniert es zwar dass sich die Postfächer automatisch aufklappen, aber die Nachrichtenvorschau und der Lesebereich wird dafür "ausgeblendet" (bleibt einfach weiß).
Der Ordnerbereich ist noch da und wenn ich zwischen den einzelnen Ordnern/Postfächern wechsle, blitzt die Vorschau und der Lesebereich immer wieder kurz auf, verschwindet dann aber leider wieder.
Muss ich im Script vielleicht irgendetwas an meine Outlook-Version anpassen?
Grüße Thomas
Hallo Uwe, ich hätte eine Frage.
Ich benutze Outlook 2016 (Office 365, Exchange) und habe heute folgendes Script von dir ausprobiert:
Private Sub Application_MAPILogonComplete()
> arrNameOfStores = Array("NamePostfach1","NamePostfach2","NamePostfach3")
> For i = 0 to UBound(arrNameOfStores)
> Set fldrPosteingang = Session.Stores.item(arrNameOfStores(i)).GetDefaultFolder(olFolderInbox)
> ActiveExplorer.SelectFolder fldrPosteingang
> Next
> End Sub
Mit diesem funktioniert es zwar dass sich die Postfächer automatisch aufklappen, aber die Nachrichtenvorschau und der Lesebereich wird dafür "ausgeblendet" (bleibt einfach weiß).
Der Ordnerbereich ist noch da und wenn ich zwischen den einzelnen Ordnern/Postfächern wechsle, blitzt die Vorschau und der Lesebereich immer wieder kurz auf, verschwindet dann aber leider wieder.
Muss ich im Script vielleicht irgendetwas an meine Outlook-Version anpassen?
Grüße Thomas
Zitat von @ChinghissKhan:
Bei mir läuft das auf Outlook 2010, zu anderen Versionen kann ich leider keinen Rat geben.
Bei mir läuft das auf Outlook 2010, zu anderen Versionen kann ich leider keinen Rat geben.
Danke ChinghissKhan für dein Einwand mit der Version. Das betrifft bei mir wie bei Thomas (tomscrw) die Version Outlook 2016.
Gruß
Christoph
Zitat von @tomscrw:
Hallo Christoph,
ich konnte leider auch noch keine Lösung zu dem Thema finden.
Ist ziemlich schade weil es ansiech ja funktioniert, nur anscheinend nicht zu 100% kompatibel zu sein scheint.
Servus @tomscrw und @chriss312 .Hallo Christoph,
ich konnte leider auch noch keine Lösung zu dem Thema finden.
Ist ziemlich schade weil es ansiech ja funktioniert, nur anscheinend nicht zu 100% kompatibel zu sein scheint.
Das Problem liegt definitiv nicht an den Skripten, die behandeln die Ansicht in kleinster Weise, sondern meist an der verwendeten Grafik-Hardware oder an korrupten (zu großen Profilen), oder wenn die Kisten zu langsam sind, denn hier funktioniert das bei mindestens 10 Kisten mit aktuellstem O2016 oder auch 2019 problemlos. Also entweder mal die Grafikbeschleunigung in Outlook abschalten, Grafiktreiber wechseln und Addins deaktivieren, oder zwischen den Schleifendurchläufen eine Pause einfügen (wenn die Kisten es zeitlich nicht gebacken bekommen)!
Grüße Uwe
Hallo Uwe,
danke für deinen Beitrag. Leider hat mir das nicht weitergeholfen.
Das interessante ist, dass der Inhalt in einem neuen Fenster angezeigt wird.
Ich hab das Problem zwar gelöst bekommen, aber die Ursache bleibt weiterhin unbekannt.
ThisOutlookSession:
Modul1
Gruß
Christoph
danke für deinen Beitrag. Leider hat mir das nicht weitergeholfen.
Das interessante ist, dass der Inhalt in einem neuen Fenster angezeigt wird.
Ich hab das Problem zwar gelöst bekommen, aber die Ursache bleibt weiterhin unbekannt.
ThisOutlookSession:
Option Explicit
Private Declare Function SetTimer Lib "user32.dll" ( _
ByVal hwnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Private Sub Application_Startup()
Dim lngWait As Long
On Error Resume Next
lngWait = 5 ' 5 Sekunden warten
Call StartTimer(lngWait)
End Sub
Private Sub StartTimer(ByVal lngIntervall As Long)
g_lngTimer = SetTimer(0&, 0&, lngIntervall * 1000, AddressOf Start_OpenFolders)
End Sub
Modul1
Option Explicit
Public g_lngTimer As Long
Private Declare Function KillTimer Lib "user32.dll" ( _
ByVal hwnd As Long, _
ByVal nIDEvent As Long) As Long
Public Sub Start_OpenFolders()
On Error Resume Next
Call KillTimer(0&, g_lngTimer)
Dim arrNameOfStores As Variant
Dim i, fldrPosteingang
arrNameOfStores = Array("NamePostfach1", "NamePostfach2")
For i = 0 To UBound(arrNameOfStores)
Set fldrPosteingang = Session.Stores.Item(arrNameOfStores(i)).GetDefaultFolder(olFolderInbox)
OpenFolders fldrPosteingang
ActiveExplorer.SelectFolder fldrPosteingang
Next
End Sub
Sub OpenFolders(ByVal fldr As Folder)
Dim f
For Each f In fldr.Folders
If f.Folders.Count > 0 Then
OpenFolders f
Else
ActiveExplorer.SelectFolder f
End If
Next
End Sub
Gruß
Christoph
aber die Ursache bleibt weiterhin unbekannt.
Das wird daher kommen das die SelectFolder Methode zwar via Code noch vorhanden ist, im aktuellen Objektmodell offiziell aber nicht mehr supported wird. Sie taucht auch in der aktuellen API-Dokumentation nicht mehr auf, während sie in der älteren Doku noch vorhanden ist.https://docs.microsoft.com/de-de/office/vba/api/outlook.explorer
Da das Problem der initial geschlossenen Stores ja in aktuellen Versionen nicht mehr vorhanden ist, wird es IMHO in neueren Versionen auch nicht mehr benötigt da die Ordner-Ansicht den Status beim Beenden von Outlook speichert.
Danke für den Code, klappt super.
Gibt es auch eine Möglichkeit Ordner zu überspringen?
Nutze Outlook 2010
edit:
habe es jetzt erstmal so gemacht, geht das auch anders? So das man in eine Zeile alle Ordner packen könnte Überspringe = "Ordner1,Ordner2,Ordner3,Ordner4"?
Sub OpenFolders(ByVal fldr As Folder)
For Each F In fldr.Folders
If F.Folders.Count > 0 Then
If Not (F = "Ordner1" Or F = "Ordner2" Or F = "Ordner3" Or F = "Ordner4") Then OpenFolders F
Else
ActiveExplorer.SelectFolder F
End If
Next
End Sub
Gibt es auch eine Möglichkeit Ordner zu überspringen?
Nutze Outlook 2010
edit:
habe es jetzt erstmal so gemacht, geht das auch anders? So das man in eine Zeile alle Ordner packen könnte Überspringe = "Ordner1,Ordner2,Ordner3,Ordner4"?
Sub OpenFolders(ByVal fldr As Folder)
For Each F In fldr.Folders
If F.Folders.Count > 0 Then
If Not (F = "Ordner1" Or F = "Ordner2" Or F = "Ordner3" Or F = "Ordner4") Then OpenFolders F
Else
ActiveExplorer.SelectFolder F
End If
Next
End Sub
Servus @SuperDaniel , willkommen auf Administrator.de!
Alternativ lässt sich das auch mit "Regular Expressions" machen, aber da will ich dich jetzt nicht mit überfordern, außer du hast Interesse daran .
-edit- Hier noch die Regex Variante (Regex-Sonderzeichen in den Ordnernamen escapen, Mit der Methode hat man dann noch wesentlich Möglichkeiten Ordner auszuschließen, z.B. Ordner mit Nummer am Ende "Ordner\d+" usw. s. Dokumentation (Regular Expressions Tutorial) )
Grüße Uwe
Gibt es auch eine Möglichkeit Ordner zu überspringen?
geht das auch anders? So das man in eine Zeile alle Ordner packen könnte Überspringe = "Ordner1,Ordner2,Ordner3,Ordner4"?
Ja, nutze einfach ein Array, durchlaufe es in der Schleife und setze eine Variable, anhand dessen entscheidest du dann ob geöffnet werden soll oder nichtgeht das auch anders? So das man in eine Zeile alle Ordner packen könnte Überspringe = "Ordner1,Ordner2,Ordner3,Ordner4"?
Sub OpenFolders(ByVal fldr As Folder)
Dim f As Folder, arrExclude As Variant, jumpOver As Boolean
arrExclude = Array("Ordner1", "Ordner2")
For Each f In fldr.Folders
If f.Folders.Count > 0 Then
jumpOver = False
For Each exclude In arrExclude
If exclude = f.Name Then
jumpOver = True
Exit For
End If
Next
If Not jumpOver Then OpenFolders f
Else
ActiveExplorer.SelectFolder f
End If
Next
End Sub
-edit- Hier noch die Regex Variante (Regex-Sonderzeichen in den Ordnernamen escapen, Mit der Methode hat man dann noch wesentlich Möglichkeiten Ordner auszuschließen, z.B. Ordner mit Nummer am Ende "Ordner\d+" usw. s. Dokumentation (Regular Expressions Tutorial) )
Private Sub Application_MAPILogonComplete()
Dim strNameOfStore As String, regex As Object, arrExclude As Variant
strNameOfStore = "NAME_DEINES_ACCOUNTS"
arrExclude = Array("Ordner1", "Ordner2")
Set regex = CreateObject("vbscript.regexp")
regex.IgnoreCase = True
regex.Pattern = "^" & Join(arrExclude, "|") & "$"
OpenFolders Session.Stores.Item(strNameOfStore).GetDefaultFolder(olFolderInbox), regex
Set regex = Nothing
End Sub
Sub OpenFolders(ByVal fldr As Folder, ByVal regexExclude As Object)
Dim f As Folder, arrExclude As Variant, jumpOver As Boolean
For Each f In fldr.Folders
If f.Folders.Count > 0 Then
If Not regexExclude.Test(f.Name) Then OpenFolders f, regexExclude
Else
ActiveExplorer.SelectFolder f
End If
Next
End Sub
Grüße Uwe
Hallo Zusammen,
ein super Skript. Vielen Dank schon mal dafür
Wie kriegt man es denn hin, dass auch die Such-Ordner geöffnet werden?
Ich nutze diese Version:
ein super Skript. Vielen Dank schon mal dafür
Wie kriegt man es denn hin, dass auch die Such-Ordner geöffnet werden?
Ich nutze diese Version:
Private Sub Application_MAPILogonComplete()
arrNameOfStores = Array("USER@DOMAIN.DE")
For i = 0 To UBound(arrNameOfStores)
Set fldrPosteingang = Session.Stores.Item(arrNameOfStores(i)).GetDefaultFolder(olFolderInbox)
OpenFolders fldrPosteingang
ActiveExplorer.SelectFolder fldrPosteingang
Next
End Sub
Sub OpenFolders(ByVal fldr As Folder)
For Each F In fldr.Folders
If F.Folders.Count > 0 Then
OpenFolders F
Else
ActiveExplorer.SelectFolder F
End If
Next
End Sub
Servus @Ralf42, willkommen auf Administrator.de!
z.B. so
Private Sub Application_MAPILogonComplete()
Dim f As Folder, i As Integer, acc As Store, s As Store, fldrPosteingang As Folder, arrNameOfStores As Variant
arrNameOfStores = Array("user@domain.tld")
' for each store in array
For i = 0 To UBound(arrNameOfStores)
Set s = Nothing
' check if store with name exists
For Each acc In Application.Session.Stores
If LCase(acc.DisplayName) = LCase(arrNameOfStores(i)) Then
Set s = acc
Exit For
End If
Next
If Not s Is Nothing Then
Set fldrPosteingang = s.GetDefaultFolder(olFolderInbox)
' open folders of inbox
OpenFolders fldrPosteingang
' open search folders
For Each f In s.GetSearchFolders
If Left(f.Name, 6) <> "MS-OLK" Then
ActiveExplorer.SelectFolder f
Exit For
End If
Next
' select top inbox at the end
ActiveExplorer.SelectFolder fldrPosteingang
Else
MsgBox "Das Konto mit dem Namen '" & arrNameOfStores(i) & "' wurde nicht gefunden", vbExclamation
End If
Next
End Sub
Sub OpenFolders(ByVal fldr As Folder)
Dim f As Folder
For Each f In fldr.Folders
If f.Folders.Count > 0 Then
OpenFolders f
Else
ActiveExplorer.SelectFolder f
End If
Next
End Sub
Du hast den Namen des Kontos nicht an deine Umgebung angepasst (Zeile 2) (Copy n Paste Syndrom )... Den habe ich aus guten Grund in meinem Code durch einen generischen ersetzt, denn echte E-Mail-Adressen sollte man hier im Forum aus gutem Grund nicht posten ...
In dem alten Code habe hatte ich solche Fehler nicht abgefangen (habe ich in der letzten Fassung nachgeholt).
In dem alten Code habe hatte ich solche Fehler nicht abgefangen (habe ich in der letzten Fassung nachgeholt).