Vba Outlook日历宏(复制约会)
我主要是想弄清楚如何在Outlook中创建一个宏,该宏允许我创建具有特定类别的约会,然后将约会从用户的本地日历复制到Exchange共享日历(前提是它具有正确的类别) 有人对Outlook对象模型的功能有更深入的了解吗Vba Outlook日历宏(复制约会),vba,outlook,Vba,Outlook,我主要是想弄清楚如何在Outlook中创建一个宏,该宏允许我创建具有特定类别的约会,然后将约会从用户的本地日历复制到Exchange共享日历(前提是它具有正确的类别) 有人对Outlook对象模型的功能有更深入的了解吗 谢谢以下是一些可能有帮助的示例代码: Sub CreateCalEntry(LeadDate As Date, DueDate As Date, _ Subject As String, Location As String, Body As String, _
谢谢以下是一些可能有帮助的示例代码:
Sub CreateCalEntry(LeadDate As Date, DueDate As Date, _
Subject As String, Location As String, Body As String, _
Optional AddToShared As Boolean = True)
Const olApItem = 1
''This example uses late binding, hence object, rather than the commented
''declarations
Dim apOL As Object ''Outlook.Application
Dim oItem As Object ''Outlook.AppointmentItem '
Dim objFolder As Object ''MAPI Folder
Set apOL = CreateObject("Outlook.Application")
''This is the folder to copy to:
Set objFolder = GetFolder("Public Folders/All Public Folders/Shared Calender")
Set oItem = apOL.CreateItem(olApItem) ''See const, above
With oItem
.Subject = Subject
.Location = Location
.Body = Body
.Start = DueDate
If AddToShared = True Then
.Move objFolder
End If
.Display
End With
Set oItem = Nothing
Set apOL = Nothing
End Sub
这允许您查找共享文件夹:
Public Function GetFolder(strFolderPath As String) As Object 'MAPIFolder
'' strFolderPath needs to be something like
'' "Public Folders\All Public Folders\Company\Sales" or
'' "Personal Folders\Inbox\My Folder"
Dim apOL As Object ''Outlook.Application
Dim objNS As Object ''Outlook.NameSpace
Dim colFolders As Object ''Outlook.Folders
Dim objFolder As Object ''Outlook.MAPIFolder
Dim arrFolders() As String
Dim i As Long
On Error GoTo TrapError
strFolderPath = Replace(strFolderPath, "/", "\")
arrFolders() = Split(strFolderPath, "\")
Set apOL = CreateObject("Outlook.Application")
Set objNS = apOL.GetNamespace("MAPI")
On Error Resume Next
Set objFolder = objNS.Folders.Item(arrFolders(0))
If Not objFolder Is Nothing Then
For i = 1 To UBound(arrFolders)
Set colFolders = objFolder.Folders
Set objFolder = Nothing
Set objFolder = colFolders.Item(arrFolders(i))
If objFolder Is Nothing Then
Exit For
End If
Next
End If
On Error GoTo TrapError
Set GetFolder = objFolder
Set colFolders = Nothing
Set objNS = Nothing
Set apOL = Nothing
Exit_Proc:
Exit Function
TrapError:
MsgBox Err.Number & ": " & Err.Description
End Function
当他们将约会输入日历并重定向时,是否有任何方法可以捕获该约会?应该可以使用Application_ItemSend,但我没有检查。仅供参考,Application_ItemSend不适用于约会。