Come posso creare uno script per spostare la posta elettronica attualmente attiva nella Posta in arrivo in un'altra cartella in Outlook 2007
-
13-09-2019 - |
Domanda
A volte mi e-mail che voglio tenere, ma per spostarli nella cartella appropriata può essere un dolore. Come posso eseguire uno script che si muoverà (come l'utilizzo di C-S-V) l'e-mail che sto guardando in una certa cartella chiamata "buffer", per esempio?
Sto usando Outlook 2007.
Grazie.
EDIT: Non v'è alcun criterio che può essere creato per automatizzare questo processo, come attraverso una regola. si tratta semplicemente di un giudizio che faccio come sto a fissarla.
Soluzione 2
Ecco il codice che sto utilizzando.
Sub MoveSelectedMessagesToFolder()
'Originally written by Chewy Chong
'Taken from http://verychewy.com/archive/2006/04/12/outlook-macro-to-move-an-email-to-folder.aspx
'Thanks Chewy!
'Ken
On Error Resume Next
Dim objFolder As Outlook.MAPIFolder, objInbox As Outlook.MAPIFolder
Dim objNS As Outlook.NameSpace, objItem As Outlook.MailItem
Set objNS = Application.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
'For the "Item" portion, I used the name of the folder exactly as it appear in the ToolTip when I hover over it.
Set objFolder = objNS.Folders.Item("Personal Folders").Folders.Item("Buffer")
'Assume this is a mail folder
If objFolder Is Nothing Then
MsgBox "This folder doesn't exist!", vbOKOnly + vbExclamation, "INVALID FOLDER"
End If
If Application.ActiveExplorer.Selection.Count = 0 Then
'Require that this procedure be called only when a message is selected
Exit Sub
End If
For Each objItem In Application.ActiveExplorer.Selection
If objFolder.DefaultItemType = olMailItem Then
If objItem.Class = olMail Then
objItem.Move objFolder
End If
End If
Next
Altri suggerimenti
Questo codice può funzionare meglio.
Nel codice, objFolder può essere uguale a nulla, eppure si continua la procedura. Inoltre, il ciclo For Each presuppone che ogni articolo è un elemento di posta.
Sub MoveSelectedMessagesToFolder()
Dim objNS As Outlook.NameSpace
Dim objFolder As Outlook.MAPIFolder
Dim obj As Object
Dim msg As Outlook.mailItem
Set objNS = Application.GetNamespace("MAPI")
On Error Resume Next
Set objFolder = objNS.Folders.item("Personal Folders").Folders.item("Buffer")
On Error GoTo 0
If objFolder Is Nothing Then
MsgBox "This folder doesn't exist!", vbOKOnly + vbExclamation, "INVALID FOLDER"
Exit Sub
End If
For Each obj In ActiveExplorer.Selection
If TypeName(obj) = "MailItem" Then
Set msg = obj
msg.Move objFolder
End If
Next obj
End Sub
Strumenti -> Regole e avvisi
Quindi creare una nuova regola di raccontare tutta la posta che si adattano qualunque criteri da cancellare / contrassegnato come lettura / spostato in una cartella / qualsiasi combinazione di questi.
Modifica Se non si desidera una regola / non può fare una regola che si adatta, è possibile creare una macro (Strumenti -> Macro). Per spostare in una cartella, poi si legano ad una scorciatoia