[Code] [VBA] Property in TextVariable speichern

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von chris1611, 13. November 2008 .

  1. 13. November 2008
    [VBA] Property in TextVariable speichern

    Hallo,
    ich möchte in VBA(Outlook) den Namen einer Kategorie in einer Textvariable speichern, hört sich zunächst einfach an. Den Befehl um den Namen der Category zu bekommen hab ich auch schon.
    Nur ich kann das nicht in einer Textvariable speichern, da meckert er immer un sagt mir was von wegen Objekt erforderlich. Weiß jemand von euch wie das geht? Komm keinen Schritt mehr weiter ^^
    Wäre nett wenn ihr mir helfen könntet.

    mfg chris
     
  2. 13. November 2008
    AW: (HILFE)Property in TextVariable speichern

    Sorry, ich glaub ich bin zu doof
    Was ist denn eine Textvariable? Ist das ein String? Oder was ist das denn?
     
  3. 13. November 2008
    AW: (HILFE)Property in TextVariable speichern

    hm, wäre hilfreich wenn du mal einen codesnapp und den genauen fehler posten köntest
     
  4. 13. November 2008
    AW: (HILFE)Property in TextVariable speichern

    Versuch an die kategorie .name dranzugängen oder zu Casten CStr
     
  5. 13. November 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    ja eine textvariable ist ein string

    also:
    dim strVariable as String

    habs jetzt auch hinbekommen, viele dank euch
    nur jetzt hab ich eine andere Fehlermeldung, weiß jemand von euch wie man die behebt? poste meinen Code herein und den Screen der Fehlermeldung.

    No File | xup.in

    Könnt es ja mal selber ausprobieren, einfach den Code in Outlook-VBA einfügen:



    Code:
    Private WithEvents Explorer As Outlook.Explorer
    Private WithEvents Mail As Outlook.MailItem
    
    Private Sub Application_Startup()
     Dim Ns As Outlook.NameSpace
     Set Ns = Application.GetNamespace("MAPI")
     Set Explorer = Application.ActiveExplorer
    End Sub
    
    Private Sub Explorer_SelectionChange()
     Dim obj As Object
     Dim Sel As Outlook.Selection
    
     Set Mail = Nothing
     Set Sel = Explorer.Selection
    
     If Sel.Count > 0 Then
     Set obj = Sel(1)
     If TypeOf obj Is Outlook.MailItem Then
     Set Mail = obj
     End If
     End If
    End Sub
    
    Private Sub Mail_PropertyChange(ByVal Name As String)
     Dim Ns As Outlook.NameSpace
     Dim SubfolderName As String
     Dim Inbox As Outlook.MAPIFolder
     Dim Subfolder As Outlook.MAPIFolder
     Dim i&
     Dim Cats As String
     Dim arrCats() As String
     Dim FindCategory As String
    
    
     ' Customize
     FindCategory = Mail.Categories
     SubfolderName = FindCategory
     
     On Error GoTo fehler
     
     If Not SubfolderName = "" Then
     
     Set Ns = Application.GetNamespace("MAPI")
     Set Inbox = Ns.GetDefaultFolder(olFolderInbox)
     
     
     Set Subfolder = Inbox.Folders(SubfolderName)
     If Subfolder.EntryID = Mail.Parent.EntryID Then
     Exit Sub
     End If
     FindCategory = LCase$(FindCategory)
    
     If Name = "Categories" Then
     Cats = Mail.Categories
     If Len(Cats) = 0 Then Exit Sub
     Cats = Replace(Cats, ",", ";")
     arrCats = Split(Cats, ";")
     
     For i = 0 To UBound(arrCats)
     Cats = LCase$(arrCats(i))
     If Cats = FindCategory Then
     Mail.Move Subfolder
     Set Mail = Nothing
     Exit For
     End If
     Next
     End If
     End If
     
     Exit Sub
    fehler:
    Code:
    MsgBox Title:="Fehler", prompt:="E-Mail kann nicht verschoben werden, bitte erstellen Sie vorher im Posteingang einen Unterordner mit Namen: " + SubfolderName
     
    End Sub
    also ich weiß jetzt warum die meldung kommt,
    sie kommt weil outlook am ende des Codes die Kategorie setzen will, das Objekt(hier ist es die eMail) allerdings schon verschoben wurde, also nicht mehr da ist.
    Das bedeutet das Outlook kein Objekt mehr hat was es eig kategorisieren wollte. kann man am ende des codes das ereignis abbrechen das Outlook das kategorisieren soll? Sonst fällt mir nichts ein.
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.