Outlook: ¿Cómo mantener la cancelación de una reunión en el calendario como organizador?
En Outlook, como organizador de una reunión, cuando cancelas la reunión, esta se eliminará automáticamente del calendario. En algunos casos, es posible que desees mantener las reuniones canceladas en el calendario para hacer algunas anotaciones. Sin embargo, Outlook no tiene funciones integradas que puedan manejar esta tarea. En este tutorial, se proporcionan dos códigos VBA para mantener la reunión como una cita mientras se cancela.
Códigos VBA para copiar reuniones canceladas como citas
Códigos VBA para copiar reuniones canceladas como citas
Aquí hay dos códigos para cancelar la reunión y copiarla y pegarla como una cita al mismo tiempo.
Nota: antes de habilitar el código, asegúrate de que estas dos opciones estén marcadas:
Habilita Outlook, haz clic en Archivo > Opciones, en la ventana Opciones de Outlook, haz clic en la pestaña Centro de confianza, y luego haz clic en Configuración del Centro de confianza; después, en la ventana Centro de confianza, haz clic en la pestaña Configuración de macros, marca Habilitar todas las macros (no recomendado; el código potencialmente peligroso puede ejecutarse) y Aplicar configuración de seguridad de macros a los complementos instalados. Haz clic en Aceptar > Aceptar para cerrar las ventanas. Reinicia Outlook.


1. Cambia a la vista del Calendario de Outlook y selecciona la reunión que deseas cancelar. Presiona las teclas Alt + F11 para habilitar la ventana Microsoft Visual Basic para Aplicaciones.
2. Haz clic en Insertar > Módulo para insertar un nuevo módulo en blanco. Luego, copia y pega el siguiente código en él.
Código: Copiar reunión como cita y cancelarla
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. Haz clic en el botón Ejecutar o presiona la tecla F5 ; ahora la reunión seleccionada ha sido cancelada y se ha creado una nueva cita llamada 'Cancelada y asunto'.

Si deseas copiar y pegar la reunión como una cita en otro calendario y luego cancelar la reunión, utiliza el siguiente código:
Código: Copiar reunión como cita en otro calendario y cancelarla
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
Haz clic en el botón Ejecutar o presiona la tecla F5 , aparecerá un cuadro de diálogo Seleccionar carpeta para que elijas una carpeta de calendario donde pegar la cita, luego haz clic en Aceptar.

Ahora la reunión ha sido cancelada y copiada y pegada como una cita en la carpeta de calendario que elegiste.

Las mejores herramientas de productividad para Office
Últimas noticias: ¡Kutools para Outlook lanza una versión gratuita!
¡Descubre el nuevo Kutools para Outlook con más de100 funciones increíbles! ¡Haz clic para descargarlo ahora!
📧 Automatización de Email: Respuesta automática (disponible para POP e IMAP) / Programar envío de correos electrónicos / CC/BCC automático por regla al enviar correo / Reenvío automático (Regla avanzada) / Agregar saludo automáticamente / Dividir automáticamente correos con varios destinatarios en mensajes individuales ...
📨 Gestión de Email: Recuperar correos electrónicos / Bloquear correos sospechosos por asunto y otros criterios / Eliminar correos electrónicos duplicados / Búsqueda Avanzada / Organizar carpetas ...
📁 Adjuntos Pro: Guardar en lote / Desanexar en lote / Comprimir en lote / Guardar automáticamente / Desconectar automáticamente / Auto Comprimir ...
🌟 Magia de la Interfaz: 😊Más emojis atractivos y geniales / Recibe avisos cuando lleguen emails importantes / Minimiza Outlook en vez de cerrarlo ...
👍 Funciones de un solo clic: Responder a Todos con Adjuntos / Correos electrónicos Anti-Phishing / 🕘Mostrar la zona horaria del remitente ...
👩🏼🤝👩🏻 Contactos y Calendario: Agregar en lote contactos de correos seleccionados / Dividir un grupo de contactos en grupos individuales / Eliminar recordatorio de cumpleaños ...
Utiliza Kutools en tu idioma preferido; ¡compatible con Inglés, Español, Alemán, Francés, Chino y más de40 idiomas adicionales!

