Como descobrir rapidamente todos os outros compromissos conflitantes com um compromisso específico no Outlook

Compartilhe agora:

Ao criar ou alterar um compromisso no calendário do Outlook, o Outlook verifica automaticamente se existem compromissos conflitantes. Nesse caso, se desejar verificar os conflitos, você pode usar o método apresentado nesta publicação.

Talvez você já tenha visto o texto “Conflitos com outro compromisso” ao criar ou alterar um compromisso do Outlook. É porque o Outlook pode verificar automaticamente os conflitos. No entanto, o Outlook não pode ajudá-lo a encontrar os conflitos rapidamente por seus recursos padrão. Assim, aqui vamos te contar um método para gerar a função para buscar todos os agendamentos conflitantes.

Descubra rapidamente todos os outros compromissos em conflito com um compromisso específico no Outlook

Descubra todos os outros compromissos conflitantes com um compromisso específico

  1. No início, inicie seu programa Outlook.
  2. Em seguida, na janela principal do Outlook, pressione os botões de tecla “Alt + F11”.
  3. De imediato, você acessará o editor VBA do Outlook, no qual deverá abrir um módulo não utilizado.
  4. Em seguida, copie o seguinte código VBA para este módulo.
Sub FindOutConflictingAppointments()
    Dim objAppointment As AppointmentItem
    Dim dStartTime, dEndTime As Date
    Dim strFilter As String
    Dim objAppointments As Items
    Dim objFoundAppointments As Items
    Dim objItem As AppointmentItem
    Dim i As Long
    Dim strConflicts As String
    Dim strMsg As String
 
    Select Case Application.ActiveWindow.Class
           Case olExplorer
                Set objAppointment = Application.ActiveExplorer.Selection(1)
           Case olInspector
                Set objAppointment = Application.ActiveInspector.CurrentItem
    End Select
 
    dStartTime = objAppointment.start
    dEndTime = objAppointment.End
 
    Set objAppointments = Application.ActiveExplorer.CurrentFolder.Items
 
    i = 1
 
    '1: Find all appts whose end time within the start and end time of source appt
    strFilter = "[End] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
 
    Set objFoundAppointments = objAppointments.Restrict(strFilter)
 
    For Each objItem In objFoundAppointments
        If objItem.Subject <> objAppointment.Subject Then
           strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
           i = i + 1
        End If
    Next
 
    '2: Find all appts occurring within the start and end time of source appt
    strFilter = "[Start] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
 
    Set objFoundAppointments = objAppointments.Restrict(strFilter)
 
    For Each objItem In objFoundAppointments
        If objItem.Subject <> objAppointment.Subject Then
           strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
           i = i + 1
        End If
    Next
 
    '3: Find all appts whose start time within the start and end time of source appt
    strFilter = "[Start] >= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [Start] <= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
 
    Set objFoundAppointments = objAppointments.Restrict(strFilter)
 
    For Each objItem In objFoundAppointments
        If objItem.Subject <> objAppointment.Subject Then
           strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
           i = i + 1
        End If
    Next
 
    '4: Find all appts cover the entire source appt
    strFilter = "[Start] <= " & Chr(34) & Format(dStartTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34) & " AND [End] >= " & Chr(34) & Format(dEndTime, "mm/dd/yyyy hh:mm AMPM") & Chr(34)
 
    Set objFoundAppointments = objAppointments.Restrict(strFilter)
  
    For Each objItem In objFoundAppointments
        If objItem.Subject <> objAppointment.Subject Then
           strConflicts = strConflicts & i & ". " & objItem.Subject & vbCrLf
           i = i + 1
        End If
    Next
 
    strMsg = i - 1 & " Conflicting Appointments:" & vbCrLf & vbCrLf & strConflicts
    MsgBox strMsg, vbInformation + vbOKOnly, "Check Conflicts"
End Sub

Código VBA - Descubra todos os outros compromissos conflitantes com um compromisso específico

  1. Depois disso, você pode sair da janela atual.
  2. Em seguida, adicione esta macro à Barra de Ferramentas de Acesso Rápido como de costume.
  3. Posteriormente, você também deve garantir que as macros estejam habilitadas em seu Outlook. Basta ir em “Configuração de macro” para verificar.
  4. Finalmente você pode tentar.
  • Em primeiro lugar, selecione ou abra um compromisso, no qual haja um prompt “Conflitos com outro compromisso”.
  • Em seguida, clique no botão de macro na barra de ferramentas de acesso rápido.
  • De uma só vez, você receberá uma mensagem listando todos os compromissos conflitantes, mostrados na captura de tela a seguir:Mensagem que lista todos os compromissos conflitantes

Precauções essenciais antes da corrupção do Outlook

Sabe-se que o Outlook é propenso a falhas e erros. Portanto, é essencial estar bem preparado para possíveis problemas de segurança do Outlook. Uma das precauções mais importantes é o backup periódico. Além disso, recomenda-se ter um sistema de backup especializado e robusto. Reparo do Outlook ferramenta, como DataNumen Outlook Repair.

Introdução do autor:

Shirley Zhang é especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo recuperação mdf e produtos de software de reparo do Outlook. Para mais informações visite www.datanumen.com

Compartilhe agora:

Comentários estão fechados.