Outlook: Come mantenere la riunione cancellata nel calendario come organizzatore?
In Outlook, come organizzatore di una riunione, quando annulli la riunione, questa verrà automaticamente eliminata dal calendario. In alcuni casi, potresti voler mantenere le riunioni annullate nel calendario per fare alcune annotazioni. Tuttavia, non ci sono funzionalità integrate in Outlook che possono gestire questo compito. In questo tutorial, vengono forniti due codici VBA per mantenere la riunione come appuntamento mentre la si annulla.
Codici VBA per copiare la riunione annullata come appuntamento
Codici VBA per copiare la riunione annullata come appuntamento
Ecco due codici per annullare la riunione e copiarla e incollarla come appuntamento contemporaneamente.
Nota: prima di abilitare il codice, assicurati che queste due opzioni siano selezionate:
Abilita Outlook, clicca su File > Opzioni, nella finestra Opzioni di Outlook, clicca sulla scheda Centro di protezione, e poi clicca su Impostazioni del Centro di protezione, quindi nella finestra Centro di protezione, clicca sulla scheda Impostazioni macro, seleziona Abilita tutte le macro (non raccomandato; codice potenzialmente pericoloso può essere eseguito) e Applica impostazioni di sicurezza delle macro ai componenti aggiuntivi installati. Clicca OK > OK per chiudere le finestre. Riavvia Outlook.


1. Passa alla vista Calendario di Outlook e seleziona la riunione che desideri annullare. Premi i tasti Alt + F11 per abilitare la finestra Microsoft Visual Basic for Applications.
2. Clicca su Inserisci > Modulo per inserire un nuovo modulo vuoto. Poi copia e incolla il codice sottostante.
Codice: Copia la riunione come appuntamento e annullala
Sub CopyMeetingAsAppointmentBeforeCancel()
'UpdatebyExtendoffice20221129
Dim xAppointmentItem As AppointmentItem
Dim xMeetingItem As AppointmentItem
On Error Resume Next
Set xMeetingItem = GetCurrentItem()
Set xAppointmentItem = Application.CreateItem(olAppointmentItem)
With xAppointmentItem
.Subject = "Canceled: " & xMeetingItem.Subject
.Start = xMeetingItem.Start
.Duration = xMeetingItem.Duration
.Location = xMeetingItem.Location
.Body = xMeetingItem.Body
.Save
.Move Application.ActiveExplorer.CurrentFolder
End With
With xMeetingItem
.MeetingStatus = olMeetingCanceled
.Send
.Delete
End With
Set xAppointmentItem = Nothing
Set xMeetingItem = Nothing
End Sub
Function GetCurrentItem() As Object
On Error Resume Next
Select Case TypeName(Application.ActiveWindow)
Case "Explorer"
Set GetCurrentItem = Application.ActiveExplorer.Selection.Item(1)
Case "Inspector"
Set GetCurrentItem = Application.ActiveInspector.CurrentItem
End Select
End Function

3. Clicca sul pulsante Esegui o premi il tasto F5 , ora la riunione selezionata è stata annullata e un nuovo appuntamento denominato Annullato & oggetto è stato creato.

Se desideri copiare e incollare la riunione come appuntamento in un altro calendario e poi annullare la riunione, utilizza il seguente codice:
Codice: Copia la riunione come appuntamento in un altro calendario e annullala
Sub CopyMeetingAsAppointmentToCalenderBeforeCancel()
'Updatebyextendoffice20221129
Dim xDestCalendar As Outlook.MAPIFolder
Dim xNameSpace As Outlook.NameSpace
Dim xAppointmentItem As AppointmentItem
Dim xMeetingItem As AppointmentItem
On Error Resume Next
Set xNameSpace = Application.GetNamespace("MAPI")
Set xDestCalendar = xNameSpace.PickFolder
If xDestCalendar.DefaultItemType <> olAppointmentItem Then
MsgBox "Please Select calendar folder. ", vbOKOnly + vbInformation, "Kutools for Outlook"
Exit Sub
End If
Set xMeetingItem = GetCurrentItem()
Set xAppointmentItem = Application.CreateItem(olAppointmentItem)
With xAppointmentItem
.Subject = "Canceled: " & xMeetingItem.Subject
.Start = xMeetingItem.Start
.Duration = xMeetingItem.Duration
.Location = xMeetingItem.Location
.Body = xMeetingItem.Body
.Save
.Move xDestCalendar
End With
With xMeetingItem
.MeetingStatus = olMeetingCanceled
.Send
.Delete
End With
Set xDestCalendar = Nothing
Set xNameSpace = Nothing
Set xAppointmentItem = Nothing
Set xMeetingItem = Nothing
End Sub
Function GetCurrentItem() As Object
On Error Resume Next
Select Case TypeName(Application.ActiveWindow)
Case "Explorer"
Set GetCurrentItem = Application.ActiveExplorer.Selection.Item(1)
Case "Inspector"
Set GetCurrentItem = Application.ActiveInspector.CurrentItem
End Select
End Function
Clicca sul pulsante Esegui o premi il tasto F5 , apparirà una finestra di dialogo Seleziona Cartella per scegliere una cartella del calendario in cui incollare l'appuntamento, poi clicca OK.

Ora la riunione è stata annullata e copiata e incollata come appuntamento nella cartella del calendario che hai scelto.

I migliori strumenti per la produttività in Office
Ultime novità: Kutools per Outlook lancia la versione gratuita!
Scopri il nuovo Kutools per Outlook con oltre100 funzionalità incredibili! Clicca per scaricare ora!
📧 Automazione email: Risposta automatica (disponibile per POP e IMAP) / Programmazione invio email / CC/BCC automatico tramite regola durante l’invio dell’email / Inoltro automatico (Regola avanzata) / Aggiungi saluto automaticamente / Suddivisione automatica delle email con più destinatari in email individuali ...
📨 Gestione email: Richiama Email / Blocca email di truffa tramite Oggetto e altro / Elimina Email duplicate / Ricerca Avanzata / Organizza cartelle ...
📁 Allegati Pro: Salvataggio in batch / Distacco in batch / Compressione in batch / Salvataggio automatico / Distacca automaticamente / Auto Comprimi ...
🌟 Magia dell’interfaccia: 😊Più emoji belle e simpatiche / Ti avvisa quando arrivano email importanti / Minimizza Outlook invece di chiuderlo ...
👍 Meraviglie con un clic: Rispondi a Tutti con Allegati / Email Anti-phishing / 🕘Mostra il fuso orario del mittente ...
👩🏼🤝👩🏻 Contatti e Calendario: Aggiunta massiva dei contatti dalle email selezionate / Dividi un Gruppo di Contatti in gruppi individuali / Rimuovi promemoria di compleanno ...
Usa Kutools nella lingua che preferisci: supporta Inglese, Spagnolo, Tedesco, Francese, Cinese e oltre40 altre lingue!

