[Sonstiges] Outlook VBA: Posteingang vs. Inbox - variable Splitfunktion

amn.ssy

Erfahrenes Mitglied
Hallo,

beim nachfolgenden Code müßte\sollte ich zumindest unterscheiden ober es sich um ein deutsch- oder englischsprachiges Outlook handel (Posteingang vs. Inbox).
Nach dem ich mit InStr die beiden Strings prüfe müßte ich nun das Ergebnis irgenwie in der Splitfunktion (Zeile 6 bzw 19) variabel verarbeiten.
Kann mir jemand auf die Sprünge helfen oder bin ich damit völlig auf'm Holzweg?

Visual Basic:
Set f = obj.Parent
  If InStr(1, f.folderPath, "Posteingang") Or _
     InStr(1, f.folderPath, "Inbox") Then
    strFolder = "Inbox"
    strPath = f.folderPath
    tmpPath = Split(strPath, "\Posteingang\")
    ReDim arrPath(UBound(tmpPath))
    If UBound(tmpPath) > 0 Then
        For i = LBound(tmpPath) To UBound(tmpPath)
            arrPath = Split(tmpPath(1), "\")
        Next i
    Else
    End If
    
    ElseIf InStr(1, f.folderPath, "Gesendete Elemente") Or _
           InStr(1, f.folderPath, "Sent Items") Then
    strFolder = "Sent Items"
    strPath = f.folderPath
    tmpPath = Split(strPath, "\Gesendete Elemente\")
    ReDim arrPath(UBound(tmpPath))
    If UBound(tmpPath) > 0 Then
        For i = LBound(tmpPath) To UBound(tmpPath)
            arrPath = Split(tmpPath(1), "\")
        Next i
    Else
    End If
  End If

Vorab Danke und Gruß
opiwahn
 
Verstehe ich es richtig, dass du statt dem Posteingang variable Posteingang oder Inbox stehen haben möchtest?
Visual Basic:
tmpPath = Split(strPath, "\Posteingang\")
Ich glaube du denkst zu viel um die Ecke ;-)
Warum wiederholst du den gleichen Code 2x?
Vorschlag:
Visual Basic:
Set f = obj.Parent
    
    strPath = f.folderPath
    strFolder = ""
    
    If InStr(1, strPath, "Posteingang") Then
        strFolder = "Posteingang"
    ElseIf InStr(1, strPath, "Inbox") Then
        strFolder = "Inbox"
    ElseIf InStr(1, strPath, "Gesendete Elemente") Then
        strFolder = "Gesendete Elemente"
    ElseIf InStr(1, strPath, "Sent Items") Then
        strFolder = "Sent Items"
    End If
    
    If strFolder <> "" Then
        tmpPath = Split(strPath, "\" & strFolder & "\")
    
        ReDim arrPath(UBound(tmpPath))
        If UBound(tmpPath) > 0 Then
            For i = LBound(tmpPath) To UBound(tmpPath)
                arrPath = Split(tmpPath(1), "\")
            Next i
        End If
    End If
 
Hallo HonniCilest,

vielen Dank für Deinen Tipp, in der Tat denke ich oftmals noch viel zu kompliziert.
Auf die Idee mit den 4 Abfragen und diese dann auch gleich in strFolder einzudosen (Zeile 6-14 - ich hatte 4 einzelne If ... then genommen) kam ich gestern am späten Abend dann auch. Klar, dann kann ich auch strFolder bequem in der Splitanweisung nutzen. Erst dabei fiel mir auf, daß ich mir ein paar Codezeilen sparen kann, da meine Zeilen 5-13 und 18-26 absolut identisch sind.

Grüße
opiwahn
 
Blöde Frage: Wieso liest du nicht einfach die Sprachversion von Office aus der Registry aus?

HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\LanguageResources
und dort der Key InstallLanguage

1031 ist Deutsch, 2057 ist Englisch-UK
 
Zurück