Noen ønsker å automatisk eller raskt opprette en ny Outlook-avtale når de flagger en e-post. Denne artikkelen vil introdusere en tilnærming for å realisere det med Outlook VBA.
Noen ganger kan jeg motta en e-post som nevner en avtale eller et møte. Men det er bare en e-post i stedet for et vanlig møteelement i Outlook. I dette tilfellet må jeg opprette en ny avtale i Outlook-kalenderen min manuelt. Det er litt plagsomt. Så jeg skulle ønske at Outlook automatisk kan opprette en ny avtale. Likevel har Outlook ingen innfødt støtte for oss for å opprette en ny avtale automatisk når vi flagger en e-post. Derfor, for å oppnå det, velger jeg å benytte meg av Outlook VBA. Her er de detaljerte VBA-kodene og trinnene.
Opprett en ny avtale automatisk når en e-post er flagget
- For det første, bytt til "Utvikler" -fanen og trykk "Visual Basic" -knappen i "Kode" -gruppen.

- Så i det nye "Microsoft Visual Basic for Applications"-vinduet, må du dobbeltklikke på "ThisOutlookSession" for å åpne dette prosjektet.
- Og deretter kopierer og limer du inn følgende VBA-koder.
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
- Deretter bør du bruke "Digitalt sertifikat for VBA-prosjekter" for å opprette et nytt sertifikat og signere det nåværende "ThisOutlookSession"-prosjektet.
- Etter det kan du gå ut av "Visual Basic"-vinduet og endre makroinnstillinger for kun å tillate digitalt signerte makroer.
- Til slutt kan du prøve.
- Først setter du på en e-post og klikker på "Flagg"-ikonet. Du vil få en melding, som følgende skjermbilde:
- Etter å ha valgt "Ja", må du spesifisere plasseringen og trykke "OK"-knappen.
- Deretter må du angi avtaletidspunkt.
- Til slutt, etter å ha klikket "OK", åpnes en ny avtale, vist som bildet nedenfor:
Merknader:
- I disse VBA-kodene er påminnelsen satt til 30 minutter som standard. Du kan endre det i kodene etter eget ønske.
- Kodene setter avtalevarigheten til 120 minutter, nemlig 2 timer. Du kan endre ".Duration = 120"-linjen i henhold til dine behov.
- Hvis du ikke spesifiserte et konkret tidspunkt, vil den nye avtalen bli satt til gjeldende dato og klokkeslett som standard.
- Du kan legge til ".Lagre"-linjen for å lagre avtalen direkte.
Kast Outlook-problemer
Det er kjent at Outlook kan lide av forskjellige problemer. Den verste situasjonen må være Outlook-korrupsjon. Hvis Outlook-filen din er ødelagt og du har hatt en sikkerhetskopi i hånden, kan du enkelt gjenopprette din skadede Outlook-data fra sikkerhetskopier. Men hvis du ikke har noen sikkerhetskopi, må du reparere den korrupte Outlook-filen. I dette tilfellet kan du bruke det innebygde reparasjonsverktøyet, Scapst.exe, eller ty til et mer erfarent verktøy, som DataNumen Outlook Repair.
Forfatterintroduksjon:
Shirley Zhang er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert reparasjon SQL Server mdf database problem og Outlook-reparasjonsprodukter. For mer informasjon besøk www.datanumen. Med






