Avatar billede hugopedersen Nybegynder
24. juli 2004 - 17:49 Der er 7 kommentarer og
1 løsning

Oprette aftale via script

Kan man oprette en aftale i Outlook via f.eks. VBscript?
I så fald hvordan.

Jeg opretter f.eks. en del aftaler der går fra fredag kl. 17.00 til lørdag kl. 07.00 og hvis jeg nu kunne lave et script der bare promptede mig for en dato, så var det lidt nemmere end i OutLook synes jeg.
Det skal selvfølgelig være muligt at angive subject og location også, men da det er fast hver gang så skal det bare ligge som faste tekster i scriptet.
Avatar billede Slettet bruger
25. juli 2004 - 20:21 #1
Du kan lave en appointment form, så du bare skal vælge denne under menuen actions.

Vælg
Tools - forms - design a form
Vælg
appointment - open
Skriv i subject og location hvad der skal stå samt tidspunktet
vælg
Tools - forms - publish form as
du kan nu vælge at publisere den i forms personal library eller i en af dine andre mapper.
Vælger du personal library, kan du vælge formularen under tools - forms choose form (og vælge det sted du har lagt den).
Vælger du en mappe, får du mulighed for at vælge formularen når du står i denne mappe og vælger Action - nederst vil din formular ligge og hedde new....og det navn du giver den.
Avatar billede hugopedersen Nybegynder
25. juli 2004 - 21:18 #2
Det var ikke lige det jeg var på jagt efter.
Jeg får nogle vagter tilsendt som et regneark og så ville jeg jo gerne kunne oprette dem i OutLook på en nem måde.
Standard for dem er at de starter kl. 17.00 og løber til næste dag kl. 07.00
Jeg ville så gerne og jeg kunne få dem ind i OutLook med et fast subject og location + at der skal remindes 2 timer før.
Hvis det kan laves fra Excel, er det også en mulighed - jeg skal nok få fat på data i det tilsendte ark. Det er jo bare lidt VBA kodning, så funker det.
Avatar billede Slettet bruger
25. juli 2004 - 23:50 #3
Jeg har tjekket i de bøger jeg har med vbscript for outlook, men er ikke lige faldet over det du søger. Har du tjekket på http://www.outlookcode.com/d/propsyntax.htm eller på http://www.microeye.com/resources/outlkb.htm?
Avatar billede hugopedersen Nybegynder
26. juli 2004 - 19:14 #4
Jeg har nu følgende funktion som virker efter hensigten. Dog kan jeg ikke checke om der eksisterer en aftale i det tidsrum som den nye aftale dækker. Det vil jeg gerne kunne da den nye aftale jo så ikke skal oprettes.

Public Function fhpAppointments_OutLook_Create(datDate As Date, strLocation As String, strSubject As String, intDuration As Integer) As Integer
' -----------------------------------------------------------------------------------
' Purpose    : Opret aftale i OutLook kalender
' Parameters :
' Returns    : Integer
' Created    : 07-26-04
' Modified  :
' Remarks    :
' -----------------------------------------------------------------------------------
On Error GoTo Error_fhpAppointments_OutLook_Create
  Dim strMsg As String
  Dim olApp As Outlook.Application
  Set olApp = CreateObject("Outlook.Application")
 
' Logon. Doesn't hurt if you are already running and logged on...
  Dim olNs As Outlook.NameSpace
  Set olNs = olApp.GetNamespace("MAPI")
  olNs.Logon

' Create a new appointment.
  Dim olAppt As Outlook.AppointmentItem
  Set olAppt = olApp.CreateItem(olAppointmentItem)
 
  strMsg = "Aftalen den " & datDate & " konflikter med en eksisterende aftale." & vbCrLf & _
          "Den oprettes derfor ikke i OutLook kalenderen"
       
' Setup other appointment information...
  With olAppt
    .Start = datDate
    .Location = strLocation
    .Subject = strSubject
    .Body = strSubject
    .Duration = intDuration * 60
    .ReminderMinutesBeforeStart = conReminder
    .ReminderSet = True
    .BusyStatus = olBusy
  End With
 
' Save Appointment...
  olAppt.Save
 
' Clean up...
  olNs.Logoff
  Set olNs = Nothing
  Set olAppt = Nothing
  Set olApp = Nothing

Exit_fhpAppointments_OutLook_Create:
  Exit Function

Error_fhpAppointments_OutLook_Create:
  fhpAppointments_OutLook_Create = Err.Number
  Select Case Err.Number
    Case 2501
    Case 3021
    Case Is < 0
    Case Else
      MsgBox Err.Number & ": " & Err.Description, vbOKOnly + vbCritical, "Error in procedure 'fhpAppointments_OutLook_Create'"
  End Select
  Resume Exit_fhpAppointments_OutLook_Create

End Function
Avatar billede Slettet bruger
26. juli 2004 - 22:30 #5
Jeg har endnu engang støvet mine bøger igennem for at finde et eller andet om conflicting appointment, men der er absolut ingen kodestump, der tjekker på om der allerede er en aftale. Jeg har også en del formulareksempler med kode, og heller ikke her fandt jeg noget brugeligt. Beklager....... Kom desværre aldrig rigtigt igang selv med vbscript og Outlook, selv om bøgerne blev indkøbt : -(
Avatar billede hugopedersen Nybegynder
12. august 2004 - 17:13 #6
Efter lang konversation med en ukrainer, er følgende funktion fremstillet til det brug - og det ser ud til at fungere.

Public Function fhpAppointments_Is_Time_Free(datStart As Date, datEnd As Date) As Boolean
' -----------------------------------------------------------------------------------
' Purpose    : Check in Outlook calender if time is occupied
' Parameters :
' Returns    : Boolean
' Created    : 08-10-04
' Modified  :
' Remarks    :
' -----------------------------------------------------------------------------------
On Error GoTo Error_fhpAppointments_Is_Time_Free
  Dim olApp As Outlook.Application
  Dim objAppointment As AppointmentItem
  Dim objAppointments As MAPIFolder
  Dim objNameSpace As NameSpace
  Dim bolTimeFree As Boolean
  Dim strStart As String
  Dim strEnd As String


  Set olApp = CreateObject("Outlook.Application")
  Set objNameSpace = olApp.GetNamespace("MAPI")
  Set objAppointments = objNameSpace.GetDefaultFolder(olFolderCalendar)
  strStart = Format(datStart, "ddddd h:nn AMPM")
  strEnd = Format(datEnd, "ddddd h:nn AMPM")

  Set objAppointment = objAppointments.Items.Find("([Start] >= """ & strStart & """ and [Start] <= """ & strEnd & _
                                            """) or ([End] >= """ & strStart & """ and [End] <= """ & strEnd & _
                                            """) or ([Start] <= """ & strStart & """ and [End] >= """ & strEnd & """)")

  If TypeName(objAppointment) = "Nothing" Then
    bolTimeFree = True
  Else
    bolTimeFree = False
  End If

Exit_fhpAppointments_Is_Time_Free:
  Set olApp = Nothing
  Set objNameSpace = Nothing
  Set objAppointments = Nothing
  fhpAppointments_Is_Time_Free = bolTimeFree
  Exit Function

Error_fhpAppointments_Is_Time_Free:
  fhpAppointments_Is_Time_Free = Err.Number
  Select Case Err.Number
    Case 2501
    Case 3021
    Case Is < 0
    Case Else
      MsgBox Err.Number & ": " & Err.Description, vbOKOnly + vbCritical, "Error in procedure 'fhpAppointments_Is_Time_Free'"
  End Select
  Resume Exit_fhpAppointments_Is_Time_Free

End Function
Avatar billede hugopedersen Nybegynder
12. august 2004 - 17:15 #7
Jeg ser mig nødsaget til at lukke spørgsmålet og da resultatet kom fra Ukraine, er det vel mest korrekt at undlade pointtildeling.
Avatar billede Slettet bruger
12. august 2004 - 19:47 #8
Det er bare helt o.k. Det vigtigste er, at du fik løst dit problem
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester