2017-09-22 1 views
0

J'ai quelques notions de base vers le bas, mais je ne peux pas comprendre comment faire certaines choses comme créer une tâche ou déplacer l'e-mail. J'ai créé un script pour mettre à jour le sujet manuellement, mais cela ne m'aide pas dans mon objectif final.Perspectives VBA pour modifier l'objet, déplacez email et créer la tâche sur le courrier électronique entrant

Prob pas la meilleure façon de le faire, mais cela fonctionne. Fondamentalement, je dois faire ce feu quand un nouvel e-mail est reçu, modifiez le sujet comme ci-dessous, le déplacer vers un sous-dossier .... nous allons l'appeler 1 et créer une tâche de 2 jours pour terminer.

Sub ChangeSubjects() 
Dim Item As Outlook.MailItem 
Dim oInspector As Inspector 
Dim oExplorer As Explorer 
Dim oCt As Integer 
Dim cCt As Integer 
Dim iSubject As String 
Set oInspector = Application.ActiveInspector 
Set oExplorer = Application.ActiveExplorer 
cCt = 1 
oCt = oExplorer.Selection.Count 

For Each Item In Application.ActiveExplorer.Selection 
    If oInspector Is Nothing Then 
     Set Item = Application.ActiveExplorer.Selection.Item(cCt) 
     Item.Display 
     Set oInspector = Application.ActiveInspector 'Reassign oInpsector and Item again 
     Set Item = oInspector.currentItem 
    Else 
     Set Item = oInspector.currentItem 
    End If 

    If Left(Item.Subject, 27) = "Look for this string" Then Item.Subject = Mid(Item.Subject, 29) 
     Item.Close (2) 
    Set oInspector = Application.ActiveInspector 
    cCt = cCt + 1 
Next 
End Sub 
+1

Le site est mis en place vous donc poser quatre questions distinctes, si elles n'avaient pas été répondu avant. Les parties sont séparées afin que les futurs chercheurs, comme vous après ce commentaire, puissent trouver des réponses et les assembler au besoin. De cette façon, et s'il y avait une solution distincte pour chaque partie que vous pourriez, si vous avez choisi de le faire, accepter quatre réponses, que vous ne pouvez pas faire dans ce vaste poste. – niton

Répondre

2

Voici comment déplacer un e-mail:

Sub MoveItems() 
Dim myNameSpace As Outlook.NameSpace 
Dim myInbox As Outlook.Folder 
Dim myDestFolder As Outlook.Folder 
Dim myItems As Outlook.Items 
Dim myItem As Object 

Set myNameSpace = Application.GetNamespace("MAPI") 
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox) 
Set myItems = myInbox.Items 
Set myDestFolder = myInbox.Folders("Test") 
Set myItem = myItems.Find("[Subject] = '[Subject Name]'") 
While TypeName(myItem) <> "Nothing" 
    myItem.Move myDestFolder 
    Set myItem = myItems.FindNext 
Wend 
End Sub 

Vous pouvez également Set myItem = myItems.Find("[Subject] = '[Subject Name]'") égale Set myItem = myItems.Find("[SenderName] = '[Sender Name]'"), mais il faut savoir qu'il trouvera tous les e-mails avec l'expéditeur ou le nom Sujet. Le code ci-dessous va changer le nom du sujet de l'email (s).

Sub ChangeSubject() 
Dim obj As Object 
Dim msg As Outlook.MailItem 
Dim subject As String 
Set obj = ActiveExplorer.Selection 
subject = "Picture" 
If Not obj Is Nothing Then 
    For i = 1 To obj.Count 
    Set msg = obj.Item(i) 
    With msg 
     .subject = subject 
    End With 
    Next i 
ElseIf Not msg Is Nothing Then 
    msg.subject = subject 
End If 
End Sub 

Voici un lien vers un article sur la création de tâches https://www.devhut.net/2010/09/03/vba-create-an-outlook-task/