5

カレンダーのリマインダー/予定を手動で作成する場合、[出席者を招待] をクリックして招待する人を選択し、[送信] をクリックすると、全員がそのカレンダーのリマインダー/予定を受け取ります。

プログラムでリマインダーを作成する次のコードがありますが、意図した受信者に送信されません。スクリプトの実行後にリマインダーを開いて [出席者を招待] をクリックすると、リマインダーを送信したい人でリストがいっぱいになっていることがわかります。実際にリマインダーが送信されない理由がわかりません。彼ら。

誰かが私のためにこれに光を当てることができますか?

Private Function CreateAppointment(SubjectStr As String, BodyStr As String, StartTime As Date, EndTime As Date, AllDay As Boolean)
    Dim olApp As Outlook.Application
    Dim Appt As Outlook.AppointmentItem
    ' Only create the reminder if there's no duplicate
    If (CheckForDuplicates(SubjectStr) = False) Then
        Set olApp = CreateObject("Outlook.Application")
        Set Appt = olApp.CreateItem(olAppointmentItem)
        Appt.Recipients.Add ("John Doe")
        Appt.Recipients.ResolveAll
        Appt.Subject = SubjectStr
        Appt.Start = StartTime
        Appt.End = EndTime
        Appt.AllDayEvent = AllDay
        Appt.Body = BodyStr
        Appt.ReminderSet = True
        Appt.Save
        Appt.Send
    End If
    Set Appt = Nothing
    Set olApp = Nothing
End Function
4

2 に答える 2

5

会議は特定の種類の予定で、他の人が招待される予定です。

会議の予定を立てるには、出席者を招待するだけでは不十分です。ステータスを「ミーティング」に設定する必要があります。これをコードに追加します。

Appt.MeetingStatus = olMeeting

また、リマインダーを設定しましたが、リマインダーの時間を設定していないことにも注意してください。例えば、

Appt.ReminderMinutesBeforeStart = 30

最後に、これが Outlook VBA の場合、なぜ CreateObject を使用しているのですか? すべてのオブジェクトを派生させるには、ネイティブ Application Object を使用する必要があります。

つまり、代わりに

Set olApp = CreateObject("Outlook.Application")

あなたが使うだろう

Set olApp = Outlook.Application

HTH

于 2011-10-08T12:16:46.417 に答える
0

同じ問題があり、交換するまで機能しませんでした

Appt.Recipients.Add ("John Doe")
Appt.Recipients.ResolveAll

Appt.RequiredAttendees = "john.doe@email.com"

よろしく

クリス

于 2018-05-18T15:17:58.677 に答える