Outlook: Como manter a reunião cancelada no calendário como organizador?
No Outlook, como organizador de uma reunião, ao cancelar a reunião, ela será automaticamente excluída do calendário. Em alguns casos, você pode querer manter as reuniões canceladas no calendário para fazer algumas marcações. No entanto, não há recursos nativos no Outlook que possam lidar com essa tarefa. Neste tutorial, são fornecidos dois códigos VBA para manter a reunião como um compromisso enquanto a cancela.
Códigos VBA para copiar reunião cancelada como compromisso
Códigos VBA para copiar reunião cancelada como compromisso
Aqui estão dois códigos para cancelar a reunião e copiá-la e colá-la como um compromisso ao mesmo tempo.
Observação: antes de ativar o código, certifique-se de que essas duas opções estejam marcadas:
Ative o Outlook, clique em Arquivo > Opções, na janela Opções do Outlook, clique na guia Central de Confiabilidade e clique em Configurações da Central de Confiabilidade; depois, na janela Central de Confiabilidade, clique na guia Configurações de Macro, marque Ativar todas as macros (não recomendado; código potencialmente perigoso pode ser executado) e Aplicar configurações de segurança de macro aos suplementos instalados. Clique em OK > OK para fechar as janelas. Reinicie o Outlook.


1. Alterne para a visualização do Calendário do Outlook e selecione a reunião que deseja cancelar. Pressione as teclas Alt + F11 para ativar a janela Microsoft Visual Basic for Applications.
2. Clique em Inserir > Módulo para inserir um novo módulo em branco. Depois, copie e cole o código abaixo nele.
Código: Copiar reunião como compromisso e cancelá-la
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. Clique no botão Executar ou pressione a tecla F5 ; agora, a reunião selecionada foi cancelada e um novo compromisso chamado 'Cancelado & assunto' foi criado.

Se você quiser copiar e colar a reunião como um compromisso em outro calendário e depois cancelar a reunião, use o código abaixo:
Código: Copiar reunião como compromisso em outro calendário e cancelá-la
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
Clique no botão Executar ou pressione a tecla F5 , uma caixa de diálogo Selecionar Pasta aparecerá para você escolher uma pasta de calendário onde colar o compromisso, depois clique em OK.

Agora, a reunião foi cancelada e copiada e colada como um compromisso na pasta de calendário que você escolheu.

Melhores Ferramentas de Produtividade para Office
Notícia Urgente: Kutools para Outlook lança versão gratuita!
Experimente o novo Kutools para Outlook com mais de100 recursos incríveis! Clique para baixar agora!
📧 Automação de Email: Resposta automática (Disponível para POP e IMAP) / Agendar envio de emails / CC/BCC automático por regra ao enviar email / Encaminhamento automático (Regra avançada) / Adicionar saudação automaticamente / Dividir automaticamente emails com vários destinatários em mensagens individuais...
📨 Gerenciamento de Email: Recallar Email / Bloquear emails suspeitos por assunto e outros critérios / Excluir emails duplicados / Pesquisa Avançada / Organizar Pastas...
📁 Anexos Pro: Salvar em lote / Desanexar em lote / Comprimir em lote / Salvar automaticamente / Desanexar automaticamente / Auto Comprimir...
🌟 Interface Mágica: 😊Mais emojis bonitos e divertidos / Aviso de chegada de emails importantes / Minimizar Outlook em vez de fechar...
👍 Praticidade com um clique: Responder a Todos com Anexos / Anti-Phishing Emails / 🕘Exibir fuso horário do remetente...
👩🏼🤝👩🏻 Contatos & Calendário: Adicionar contatos em lote a partir de emails selecionados / Dividir um grupo de contatos em grupos individuais / Remover lembrete de aniversário...
Use o Kutools no idioma que preferir – compatível com Inglês, Espanhol, Alemão, Francês, Chinês e mais de40 outros!

