Algumas pessoas desejam criar automaticamente ou rapidamente um novo compromisso do Outlook quando sinalizam um e-mail. Este artigo apresentará uma abordagem para realizá-lo com o Outlook VBA.
Às vezes, posso receber um e-mail mencionando um compromisso ou reunião. Mas é apenas um e-mail em vez de um item de reunião comum no Outlook. Nesse caso, tenho que criar um novo compromisso no meu calendário do Outlook manualmente. Isso é um pouco problemático. Portanto, desejo que o Outlook possa criar automaticamente um novo compromisso. No entanto, o Outlook não tem suporte nativo para criarmos um novo compromisso automaticamente quando sinalizamos um e-mail. Portanto, para alcançá-lo, optei por fazer uso do Outlook VBA. Aqui estão os códigos e etapas detalhados do VBA.
Criar automaticamente um novo compromisso quando um e-mail é sinalizado
- Em primeiro lugar, mude para a guia “Desenvolvedor” e clique no botão “Visual Basic” no grupo “Código”.

- Em seguida, na nova janela “Microsoft Visual Basic for Applications”, você precisa clicar duas vezes em “ThisOutlookSession” para abrir este projeto.
- Em seguida, copie e cole os seguintes códigos VBA nele.
Public WithEvents olItems As Outlook.Items
Private Sub Application_Startup()
Set olItems = Session.GetDefaultFolder(olFolderInbox).Items
End Sub
Private Sub olItems_ItemChange(ByVal Item As Object)
Dim oAppt As AppointmentItem
Dim strMsg As String
Dim nRes As Integer
On Error Resume Next
If TypeName(Item) = "MailItem" And Item.IsMarkedAsTask = True Then
strMsg = "Do you want to create a new appointment"
nRes = MsgBox(strMsg, vbYesNo + vbQuestion, "Confirm Creating Appointment")
If nRes = vbYes Then
Set oAppt = Application.CreateItem(olAppointmentItem)
With oAppt
.Subject = "New Appt: " & Item.Subject
.Location = InputBox("Enter the Location, please.")
'Type the concrete time, such as "12/29/2015 15:30"
.Start = InputBox("Enter a specific time (format: MM/DD/YYYY hh:mm), please.")
.Duration = 120
.Body = "New Appointment: " & vbCrLf & vbCrLf & Item.Body
.Attachments.Add Item
.ReminderSet = True
.ReminderMinutesBeforeStart = 30
'Use ".Save" to directly save the new appointment
.Display
End With
End If
'To clear the flag on the email
'If you want to keep email flagged, remove the following 4 lines
With Item
.ClearTaskFlag
.Save
End With
End If
End Sub
- Posteriormente, deverá utilizar o “Certificado Digital para Projetos VBA” para criar um novo certificado e assinar o projeto “ThisOutlookSession” atual.
- Depois disso, você pode sair da janela “Visual Basic” e alterar as configurações de macro para permitir apenas macros assinadas digitalmente.
- Eventualmente, você pode tentar.
- Em primeiro lugar, envie um e-mail e clique no ícone “Sinalizar”. Você receberá um prompt, como a captura de tela a seguir:
- Depois de selecionar “Sim”, você será solicitado a especificar o local e clicar no botão “OK”.
- Então você precisa especificar o horário do compromisso.
- Por fim, após clicar em “OK”, um novo agendamento será aberto, conforme a imagem abaixo:
Observações:
- Nesses códigos VBA, o lembrete é definido como 30 minutos por padrão. Você pode alterá-lo nos códigos à vontade.
- Os códigos definem a duração da consulta para 120 minutos, ou seja, 2 horas. Você pode alterar a linha “.Duration = 120” de acordo com suas necessidades.
- Se você não especificou um horário concreto, o novo compromisso será definido para a data e hora atuais por padrão.
- Você pode adicionar a linha “.Save” para salvar o compromisso diretamente.
Eliminar problemas do Outlook
Sabe-se que o Outlook pode sofrer vários problemas. A pior situação deve ser a corrupção do Outlook. Se o seu arquivo do Outlook estiver corrompido e você tiver um backup em mãos, poderá restaurá-lo facilmente dados danificados do Outlook de backups. Mas se você não tiver backup, precisará reparar o arquivo corrompido do Outlook. Nesse caso, você pode usar a ferramenta de reparo integrada, Scapst.exe, ou recorrer a uma ferramenta mais experiente, 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 reparar SQL Server problema de banco de dados mdf e produtos de software de reparo do Outlook. Para mais informações visite www.datanumen.com






