このVBAをVBSに変換するのは、その例では難しくありません。 をご覧くださいhttp://www.techsupportforum.com/forums/f128/solved-script-to-delete-outlook-calendar-entries-542865.html URLとは異なり、プレーンなVBScriptを使用して予定表(この場合は休日)をOutlookの予定表に追加する方法の例があります。 コードが消えた場合に備えてここに公開します。
コードを.vbs拡張子(例:add_calendar_item.vbs)で保存し、Outlook定数を事前に宣言する必要があります。 vbscriptでは "as"型の変数を宣言することはできません。 CMDコンソールで.vbsファイルを実行するcscript.exe add_calendar_item.vbs
辞書とseachApptsを簡単に削除して、VBAサンプルのように1つのアポイントメントしか使用しないようにするには。
、ピーターちょっとここで参考のために、このコード
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
元のコード
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
ですべての情報を投稿するためのおかげで試してみてください。私は実際に私の元の投稿でこれを述べている必要がありますが、私はデフォルトのカレンダーに会議を追加するVBスクリプトコードを作成することができました。私が得ることができなかった部分は、そのコードを編集して特定のカレンダーに会議を追加することでした。私はあなたが投稿したものと一緒にすることができたコードを置き換えます。これははるかにクリーンです!それを別のカレンダーに投稿するためのアドバイスはありますか? – Rami
はい、「objCalendar = objNamespace.GetDefaultFolder(olFolderCalendar).Parent.Folders( "otherCalendar") 'のようになります。otherCalendarは他の予定表フォルダの名前になります – peter
Hmm私はショットを与え、次のように指定しましたエラー:「操作は失敗しました。オブジェクトが見つかりませんでした。私も試しました 'Set objCalendar = objNamespace.GetDefaultFolder(olFolderCalendar).Folders( "Test")'このコードは実行されましたが、それでもデフォルトのカレンダーに会議が追加されました。 – Rami