La conversion de ce VBA pour VBS ne devrait pas être difficile avec un exemple. Jetez un oeil à http://www.techsupportforum.com/forums/f128/solved-script-to-delete-outlook-calendar-entries-542865.html Contrairement à l'URL suggère un exemple de comment ajouter des rendez-vous (vacances dans ce cas) à un calendrier Outlook en utilisant VBScript simple. Je publie le code ici au cas où il disparaîtrait.
Vous devez enregistrer votre code avec l'extension .vbs (par exemple, add_calendar_item.vbs) et déclarer les constantes de perspective à l'avance. Déclarer des variables avec un type "as" n'est pas possible dans vbscript. Exécutez le fichier .vbs dans une console CMD en utilisant cscript.exe add_calendar_item.vbs
Pour faciliter la suppression des parties dictionary et seachAppts et d'utiliser un seul rendez-vous comme dans votre exemple VBA.
Essayez avec ce code
Const olFolderCalendar = 9
Const olAppointmentItem = 1
Const olOutOfOffice = 3
Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set objCalendar = objNamespace.GetDefaultFolder(olFolderCalendar)
Set objApptItems = objCalendar.Items
objApptItems.IncludeRecurrences = True
objApptItems.Sort "[Start]"
Set objHoliday = objOutlook.CreateItem(olAppointmentItem)
objHoliday.Subject = "Boxing Day"
objHoliday.Start = "December 26, 2017" & " 9:00 AM"
objHoliday.End = "December 26, 2017" & " 10:00 AM"
objHoliday.AllDayEvent = True
objHoliday.ReminderSet = False
objHoliday.BusyStatus = olOutOfOffice
objHoliday.Save
Pour référence ici le code d'origine
Const olFolderCalendar = 9
Const olAppointmentItem = 1
Const olOutOfOffice = 3
Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set objCalendar = objNamespace.GetDefaultFolder(olFolderCalendar)
Set objApptItems = objCalendar.Items
objApptItems.IncludeRecurrences = True
objApptItems.Sort "[Start]"
'' List Appointments to add
Set objDictionary = CreateObject("Scripting.Dictionary")
objDictionary.Add "November 24, 2010", "Thanksgiving"
objDictionary.Add "November 25, 2010", "Thanksgiving"
objDictionary.Add "December 25, 2010", "Christmas Day"
objDictionary.Add "December 26, 2010", "Boxing Day"
objDictionary.Add "November 24, 2011", "Thanksgiving"
objDictionary.Add "November 25, 2011", "Thanksgiving"
objDictionary.Add "December 25, 2011", "Christmas Day"
objDictionary.Add "December 26, 2011", "Boxing Day"
colKeys = objDictionary.Keys
For Each strKey in colKeys
dtmHolidayDate = strKey
strHolidayName = objDictionary.Item(strKey)
'' Check if it already is on the Calendar
Return = SearchAppts(strHolidayName, FormatDateTime(dtmHolidayDate, vbShortDate))
If Return = False Then
Set objHoliday = objOutlook.CreateItem(olAppointmentItem)
objHoliday.Subject = strHolidayName
objHoliday.Start = dtmHolidayDate & " 9:00 AM"
objHoliday.End = dtmHolidayDate & " 10:00 AM"
objHoliday.AllDayEvent = True
objHoliday.ReminderSet = False
objHoliday.BusyStatus = olOutOfOffice
objHoliday.Save
End If
Next
'' Search Function
Function SearchAppts(ByVal strName, strDate)
SearchAppts = False
Set objAppointment = objApptItems.GetFirst
While TypeName(objAppointment) <> "Nothing"
If TypeName(objAppointment) = "AppointmentItem" then
If StrComp(objAppointment, strName,1) = 0 Then
If DateDiff("D", objAppointment.Start, strDate) = 0 Then
SearchAppts = True
Exit Function
End If
End If
End If
Set objAppointment = objApptItems.GetNext
Wend
End Function
Hey Peter, merci pour l'affichage toutes ces informations. J'aurais dû le mentionner dans mon post original mais j'ai été capable de créer un code VBScript qui ajouterait une réunion au calendrier par défaut. La partie que je n'ai pas pu obtenir était de modifier ce code et l'obtenir pour ajouter des réunions à un calendrier spécifique. Je vais cependant remplacer le code que j'ai réussi à mettre en place avec celui que vous avez posté. Celui-ci est beaucoup plus propre! Des conseils pour l'envoyer à un autre calendrier? – Rami
oui, devrait être quelque chose comme 'Set objCalendar = objNamespace.GetDefaultFolder (olFolderCalendar) .Parent.Folders ("otherCalendar")' où otherCalendar serait le nom de cet autre dossier du calendrier – peter
Hmm Je lui ai donné un coup de feu et a reçu ce qui suit erreur: "L'opération tentée a échoué. Un objet n'a pas pu être trouvé." J'ai également essayé 'Set objCalendar = objNamespace.GetDefaultFolder (olFolderCalendar) .Folders ("Test")' Ce code a couru mais il a encore ajouté la réunion au calendrier par défaut. – Rami