Como evitar que o Outlook avise demasiado cedo ou demasiado tarde?
Por exemplo, trabalha das 9:00 às 18:00 todos os dias, mas agora está a agendar um compromisso para as 10:00 e adiciona um lembrete com 2 horas de antecedência no Outlook. Isso fará com que o lembrete seja ativado às 8:00 — antes do início do seu horário de trabalho. Em situações especiais, o aviso pode até soar à meia-noite, o que é bastante inconveniente. Muitos utilizadores do Outlook gostariam de evitar alertas demasiado cedo ou demasiado tarde. Para resolver este problema, apresento-lhe uma macro VBA para o Outlook.
- Potencie a sua produtividade por e-mail com tecnologia de IA, respondendo rapidamente a e-mails, redigindo novos, traduzindo mensagens e muito mais — tudo com maior eficiência.
- Automatize o envio de e-mails com CC/BCC automático, Encaminhamento automático e regras; envie uma Resposta automática (Ausente) sem precisar de um servidor Exchange...
- Receba lembretes como Solicitar ao responder a um email em CCO comigo ao responder a todos quando está na lista BCC e Lembrete para Anexos em Falta para anexos esquecidos...
- Melhore a eficiência dos seus e-mails com Responder com anexos (todos), Saudação Automática ou Data e Hora na Assinatura ou Assunto, Responder a Vários E-mails…
- Simplifique o envio de e-mails com Recallar Email, Ferramentas de Anexo (Comprimir Tudo, Guardar Tudo automaticamente...), Remover duplicatas e Relatório Rápido...
Para impedir que o Outlook avise demasiado cedo ou demasiado tarde, pode proceder da seguinte forma:
Passo 1: prima em simultâneo as teclas Alt+F11 para abrir a janela do Microsoft Visual Basic for Applications.
Passo 2: expanda os Objetos do Microsoft Outlook no painel esquerdo e cole a seguinte macro VBA em ThisOutlookSession.
VBA: Impedir lembretes demasiado cedo ou demasiado tarde no Outlook
Public WithEvents g_CalendarItems As Outlook.Items
Public Sub Application_Startup()
Set g_CalendarItems = Outlook.Session.GetDefaultFolder(olFolderCalendar).Items
End Sub
Private Sub g_CalendarItems_ItemAdd(ByVal Item As Object)
CheckReminder Item
End Sub
Private Sub g_CalendarItems_ItemChange(ByVal Item As Object)
CheckReminder Item
End Sub
Sub CheckReminder(ByVal Item As Object)
On Error GoTo ProcError
Dim strProcName As String
strProcName = "CheckReminder"
reminderMaxHour = 20
reminderMinHour = 9
Dim aAptItem As Outlook.AppointmentItem
Set aAptItem = Item
If aAptItem.ReminderSet Then
Dim reminderDate As Date
reminderDate = aAptItem.Start - aAptItem.ReminderMinutesBeforeStart / (24 * 60)
reminderHour = (reminderDate - Int(reminderDate)) * 24
tolerance = 0.01 ' avoid floating point small diffs (little bit less than a min)
If reminderHour < reminderMinHour - tolerance Or reminderHour > reminderMaxHour + tolerance Then
' best guess, first try to advance to next minHour
reminderDateSuggestion = reminderDate + (reminderMinHour - reminderHour) / 24
' verify if first guess is valid
If reminderHour < reminderMinHour - tolerance And reminderDateSuggestion <= aAptItem.Start Then
' OK, first guess is valid, keep it
ElseIf reminderHour > reminderMaxHour Then
' go back to max hour (same day)
reminderDateSuggestion = reminderDate - (reminderHour - reminderMaxHour) / 24
Else
' go back to max hour (previous day)
reminderDateSuggestion = reminderDate - (reminderHour + 24 - reminderMaxHour) / 24
End If
rep = MsgBox("The Reminder time is out of specified working period. Would you like to change the Reminder time?" , vbQuestion + vbYesNoCancel)
If rep = vbCancel Then
aAptItem.Display
ElseIf rep = vbYes Then
aAptItem.ReminderMinutesBeforeStart = (aAptItem.Start - reminderDateSuggestion) * 24 * 60
aAptItem.Save
End If
End If
End If
ProcExit:
Exit Sub
ProcError:
MsgBox "Unanticipated error " & Err.Number & " " & Err.Description & vbCrLf & "In procedure: " & strProcName
End Sub
Nota: Pode especificar o seu período de trabalho alterando os seguintes parâmetros no código VBA acima:
reminderMaxHour = 20
reminderMinHour = 9
Passo 3: guarde esta macro VBA e reinicie o Microsoft Outlook.
A partir de agora, ao criar um compromisso com lembrete fora do período de trabalho que especificou, aparecerá uma caixa de diálogo a avisá-lo após clicar no botão Guardar e Fechar.

Se o lembrete for anterior à hora mínima de lembrete especificada ()reminderMinHour), clique em Simna caixa de diálogo; o lembrete será ajustado e emitido à hora mínima especificada ()reminderMinHour).
Se o lembrete for posterior à hora máxima de lembrete especificada (reminderMaxHour), clique em Sim na caixa de diálogo; o lembrete será ajustado e emitido à hora máxima especificada (reminderMaxHour).
Nota: Este código VBA funciona perfeitamente no Outlook 2013, mas não é compatível com o Outlook 2010 nem com o Outlook 2007.
Melhores Ferramentas de Produtividade para o Office
Experimente o totalmente novo Kutools para Outlook com 100+ funcionalidades incríveis!Clique para transferir já!
📧Automação de E-mails: Resposta Automática (disponível para POP e IMAP) / Agendar Envio de E-mails / CC/BCC Automático por Regras ao Enviar E-mail / Encaminhamento Automático (regra avançada) / Adicionar Saudação Automaticamente / Dividir Automaticamente E-mails com Múltiplos Destinatários em Mensagens Individuais...
📨Gestão de E-mails: Recallar e-mail / Bloquear e-mails fraudulentos por assunto e outros critérios / Eliminar e-mails duplicados / Pesquisa avançada / Organizar pastas...
📁Anexos Pro: Guardar em Lote / Desanexar em Lote / Comprimir em Lote / Salvar Automaticamente / Desanexar Automaticamente / Auto Comprimir...
🌟Magia da Interface: 😊 Mais Emojis Bonitos e Divertidos / Avisa-o quando chegam e-mails importantes / Minimizar o Outlook em vez de fechá-lo...
👍Maravilhas com um Clique: Responder a Todos com Anexos / E-mails Anti-Phishing / 🕘 Mostrar Fuso Horário – Hora Atual do Remetente...
👩🏼🤝👩🏻Contactos e Calendário: Criar contactos em lote a partir de e-mails selecionados / Dividir um grupo de contactos em grupos individuais / Remover lembrete de aniversário...
Utilize o Kutools no seu idioma preferido – com suporte para inglês, espanhol, alemão, francês, chinês e mais de 40 idiomas!


🚀 Transferência com um Clique — Obtenha Todos os Extras do Office
Altamente Recomendado: Kutools for Office (5 em 1)
Um clique para transferir cinco instaladoresde uma só vez —Kutools para Excel, Outlook, Word, PowerPointe Office Tab Pro.Clique para transferir já!
- ✅Conveniência com um clique: Transfira os cinco pacotes de instalação numa única ação.
- 🚀Pronto para qualquer tarefa no Office: instale os extras que precisa, exatamente quando os precisar.
- 🧰Incluídos: Kutools para Excel / Kutools para Outlook / Kutools para Word / Office Tab Pro / Kutools for PowerPoint