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) = "TypeName(MailItem) And Item.IsMarkedAsTask = True Da strMsg = "Vil du opprette en ny avtale" nRes = MsgBox(strMsg, vbYesNo + vbQuestion, "Bekreft oppretter avtale") Hvis nRes = vbYes Sett deretter oAppt = Application.CreatePointItem(olA) oAppt .Subject = "Ny appt: " & Item.Subject .Location = InputBox("Skriv inn plasseringen, vær så snill.") 'Skriv inn den konkrete tiden, for eksempel "12/29/2015 15:30" .Start = InputBox("Skriv inn en bestemt tid (format: MM/DD/ÅÅÅÅ tt:mm), vær så snill.") .Varighet = 120 .Body = "Ny avtale: " & vbCrLf & vbCrLf & Item.Body .Attachments.Add Element .ReminderSet = True .ReminderMinutesBeforeStart = 30 'Bruk ".Lagre" for å lagre den nye avtalen direkte. Vis slutt med slutt If 'For å fjerne flagget på e-posten 'Hvis du vil beholde e-post flagget, fjern følgende 4 linjer med element .ClearTaskFlag .Save End Med 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
1