2

スプレッドシート内で指定された日付に、Outlook 2007 カレンダーから、Excel スプレッドシートにリストされている宛先のリストに、会議の招待状を自動的に送信する Excel 2007 内の VB コードを作成しようとしています。ボタンを 1 回クリックするだけで、さまざまな日付のさまざまな人に何百もの会議出席依頼を送信できるので、これは便利です。次のコードを使用して自分のユーザー アカウントから送信すると、これをうまく行うことができます。

' Create the Outlook session
Set myoutlook = CreateObject("Outlook.Application")
' Create the AppointmentItem
Set myapt = myoutlook.CreateItem(olAppointmentItem)     ' Set the appointment properties
With myapt
    .Subject = " Assessment Centre "
    .Location = "conference room A"
    .Start = Cells(5, 24 + j) & " 17:00:00 PM"
    .Duration = 120
    .Recipients.Add Cells(i, 1).Value
    .MeetingStatus = olMeeting
    ' not necessary if recipients are email addresses
    'myapt.Recipients.ResolveAll
    .AllDayEvent = "False"
    .BusyStatus = "2"
    .ReminderSet = False
    .Body = L1 & vbCrLf & vbCrLf & L2 & vbCrLf & vbCrLf & L3 & vbCrLf & vbCrLf & L4
        .Save
    .send
End With

しかし今、ダミーのカレンダーがすべての会議の招待状を保存し、他の代理人も同じダミーを使用してシステムを操作できるように、'sendonbehalfof' のようなものを使用して代理人であるダミーのユーザー アカウントから会議出席依頼を送信したいと考えています。ユーザーアカウント。これは、次のコードを含む電子メールを送信するときに正常に機能します。

Set oApp = CreateObject("Outlook.Application")
Set oMail = oApp.CreateItem(0)

With oMail
    .To = " John.Smith@John_Smith.com "
    .Subject = "Subject"
    .Body = "Body"
    .SentOnBehalfOfName = "Fred.bloggs@fred_blogs.com"
    .send
End With

メールには「Fred Bloggs を代表して私から」と記載されます</p>

しかし、カレンダーの予定では機能しません。

「予定」、「会議出席依頼」、「センドンビハーフフォフ」などの単語で高低を検索しましたが、「sendusingaccount」を使用した予定に対してこれを実行できるはずですが、これは機能していないようです (そうではありません)。失敗しないでください。指示を無視して、以前と同じように自分のユーザー アカウントから送信します)。

誰でもこれを行う方法を教えてもらえますか? どうもありがとう。

4

1 に答える 1

1

別のユーザーのメールボックスへの代理アクセス権を持っている場合は、 を使用GetSharedDefaultFolderしてユーザーの共有予定表への参照を取得してから、 を使用Folders.Items.Addして会議を予定表に追加します。

元:

Dim fldr As Outlook.Folder
Dim appt As Outlook.AppointmentItem
  Set fldr = Session.GetSharedDefaultFolder(_
    Outlook.CreateRecipient("Fred.bloggs@fred_blogs.com"), _
    olFolderCalendar)
  Set appt = fldr.Items.Add
  ' set up your appointment here
  ' i.e.:
  ' With appt
  '   .Start = Cells(5, 24 + j) & " 17:00:00 PM"
  '   .Duration = 120
  ' End With
  ' make sure you call the appt.Save method to save the appt!

出典: http://www.outlookcode.com/codedetail.aspx?id=43

于 2012-07-26T22:08:51.267 に答える