我如何使用VB代码在Outlook2007中发送一系列会议邀请使用sendonbehalfof作为委托 [英] How can I use VB code in Outlook2007 to send a series of meeting invites using sendonbehalfof as a delegate

查看:1290
本文介绍了我如何使用VB代码在Outlook2007中发送一系列会议邀请使用sendonbehalfof作为委托的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在Excel 2007中编写一些VB代码,它将在Outlook 2007日历中自动发送会议邀请到Excel电子表格中列出的收件人列表,在电子表格中指定的日期。这是有用的,因为我可以发送数百个会议请求到不同的人在不同的日期,只需点击一个按钮。从我自己的用户帐户发送以下代码时,我可以这样做:

 '创建Outlook会话
设置myoutlook = CreateObject(Outlook.Application)
'创建AppointmentItem
设置myapt = myoutlook.CreateItem(olAppointmentItem)'设置约会属性
使用myapt
.Subject = 评估中心
。Location =会议室A
.Start = Cells(5,24 + j)& 17:00:00 PM
.Duration = 120
.Recipients.Add Cells(i,1).Value
.MeetingStatus = olMeeting
'电子邮件地址
'myapt.Recipients.ResolveAll
.AllDayEvent =False
.BusyStatus =2
.ReminderSet = False
。 vbCrLf& vbCrLf& L2& vbCrLf& vbCrLf& L3& vbCrLf& vbCrLf& L4
.Save
.send
结束于

我想从一个虚拟用户帐户发送会议请求,我使用类似'sendonbehalfof'的代理,以便虚拟日历存储所有会议邀请,并且其他代理可以使用相同的虚拟用户帐户操作系统。发送包含以下代码的电子邮件时,此工作正常:

 设置oApp = CreateObject(Outlook.Application)
设置oMail = oApp.CreateItem(0)

使用oMail
.To =John.Smith@John_Smith.com
.Subject =主题
.Body =Body
.SentOnBehalfOfName =Fred.bloggs@fred_blogs.com
.send
结束于

电子邮件将从'my代表Fred Bloggs'



但我不能让它工作



我已经用预约,会议请求,sendonbehalfof等字样搜索了高和低,似乎你应该能够这样做与sendusingaccount的约会,但这似乎不工作(它不会失败,只是忽略指令,并从我自己的用户帐户发送,像以前一样)。



任何人都可以告诉我如何做到这一点?

如果您有另一个用户的邮箱的委托访问,请使用

GetSharedDefaultFolder 以获取对用户共享日历的引用,然后使用 Folders.Items.Add 将会议添加到他们的日历。



例如:

  Dim fldr As Outlook.Folder 
Dim appt As Outlook.AppointmentItem
设置fldr = Session.GetSharedDefaultFolder(_
Outlook.CreateRecipient(Fred.bloggs@fred_blogs.com),_
olFolderCalendar)
设置appt = fldr。 Items.Add
'在这里设置您的约会
'ie:
'使用appt
'.Start = Cells(5,24 + j)& 17:00:00 PM
'.Duration = 120
'End With
'确保你调用appt.Save方法来保存appt!

改编自: http://www.outlookcode.com/codedetail.aspx?id=43


I am trying to write some VB code within Excel 2007 that will automatically send out meeting invites from the Outlook 2007 Calendar, to a list of addressees listed in the excel spreadsheet, on the dates specified within the spreadsheet. This is useful because I can send out hundreds of meeting requests to different people on different dates with one click of a button. I can do this fine when sending from my own user account with the following code:

' 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

But now I want to send the meeting request from a dummy user account for which I am a delegate using something like ’sendonbehalfof’ so that the dummy calendar stores all the meeting invites, and other delegates can operate the system as well using the same dummy user account. This works fine when sending an email with the following code:

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

The email will say from ’me on behalf of Fred Bloggs’

But I can’t get it to work with Calendar appointments.

I’ve searched high and low with words like ‘appointment’, ‘meeting request’, sendonbehalfof’ etc, and it seems you should be able to do this for appointments with ’sendusingaccount’ but this doesn’t seem to work (it doesn’t fail, just ignores the instruction and sends from my own user account as before).

Can anyone tell me how to do this? Thanks very much.

解决方案

If you have delegate access to another user's mailbox, use GetSharedDefaultFolder to obtain a reference to the user's shared calendar, then use Folders.Items.Add to add the meeting to their calendar.

Ex:

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!

Adapted from: http://www.outlookcode.com/codedetail.aspx?id=43

这篇关于我如何使用VB代码在Outlook2007中发送一系列会议邀请使用sendonbehalfof作为委托的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆