Někteří lidé si přejí automaticky nebo rychle vytvořit novou událost aplikace Outlook, když nahlásí e-mail. Tento článek představí přístup k jeho realizaci pomocí aplikace Outlook VBA.
Někdy mohu obdržet e-mail, který zmiňuje schůzku nebo schůzku. Ale je to jen e-mail místo běžné položky schůzky v Outlooku. V takovém případě musím v kalendáři aplikace Outlook vytvořit novou událost ručně. To je trochu nepříjemné. Přeji si, aby Outlook mohl automaticky vytvořit novou schůzku. Přesto Outlook nemá žádnou nativní podporu pro to, abychom automaticky vytvořili novou schůzku, když nahlásíme e-mail. Proto, abych toho dosáhl, jsem se rozhodl využít Outlook VBA. Zde jsou podrobné kódy a kroky VBA.
Automaticky vytvořit novou událost, když je označen e-mail
- Nejprve přepněte na kartu „Vývojář“ a ve skupině „Kód“ stiskněte tlačítko „Visual Basic“.

- Potom v novém okně „Microsoft Visual Basic for Applications“ musíte tento projekt otevřít dvojitým kliknutím na „ThisOutlookSession“.
- A dále do něj zkopírujte a vložte následující kódy VBA.
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
- Následně byste měli pomocí „Digitálního certifikátu pro projekty VBA“ vytvořit nový certifikát a podepsat aktuální projekt „ThisOutlookSession“.
- Poté můžete opustit okno „Visual Basic“ a změnit nastavení maker tak, aby povolila pouze digitálně podepsaná makra.
- Nakonec to můžete vyzkoušet.
- Nejprve pošlete e-mail a klikněte na ikonu „Nahlásit“. Zobrazí se výzva, například následující snímek obrazovky:
- Po výběru „Ano“ budete vyzváni k zadání umístění a stisknutí tlačítka „OK“.
- Poté musíte zadat čas schůzky.
- Nakonec se po kliknutí na „OK“ otevře nová schůzka, jak je znázorněno na obrázku níže:
Poznámky:
- V těchto kódech VBA je připomenutí ve výchozím nastavení nastaveno na 30 minut. Můžete to libovolně změnit v kódech.
- Kódy stanoví dobu schůzky na 120 minut, konkrétně 2 hodiny. Řádek „.Duration = 120“ můžete změnit podle svých potřeb.
- Pokud jste nezadali konkrétní čas, bude nová schůzka ve výchozím nastavení nastavena na aktuální datum a čas.
- Můžete přidat řádek „.Save“ a uložit schůzku přímo.
Odstraňte problémy s Outlookem
Je známo, že Outlook může trpět různými problémy. Nejhorší situací musí být korupce aplikace Outlook. Pokud je váš soubor aplikace Outlook poškozený a máte v záloze zálohu, můžete svůj soubor snadno obnovit poškozená data aplikace Outlook ze záloh. Pokud však nemáte žádnou zálohu, budete muset opravit poškozený soubor aplikace Outlook. V tomto případě můžete použít integrovaný nástroj pro opravu Scapst.exe nebo se uchýlit k zkušenějšímu nástroji DataNumen Outlook Repair.
Úvod autora:
Shirley Zhang je expertem na obnovu dat DataNumen, Inc., která je světovým lídrem v oblasti technologií pro obnovu dat, včetně opravit SQL Server problém s databází mdf a výhledové softwarové produkty pro opravy. Pro více informací navštivte www.datanumen.com






