如何选择要为其创建Outlook项目的帐户?

时间:2017-04-07 14:28:52

标签: vba outlook outlook-vba outlook-2016

我正在编写一个创建和更新Outlook备注的脚本。除了一个问题,一切正常。

它创建并更新我个人邮箱上的注释,我需要它来创建和维护我们都有权访问的部门邮箱上的注释(我在Outlook中设置了两个帐户)。

尽管脚本由部门邮箱上的规则触发并且为部门邮箱提供邮件项目,但它的行为却是这样的。如何告诉VBS / Outlook我想要使用哪个备注文件夹/帐户?我无法在任何地方找到任何概述如何选择在哪个帐户下创建笔记的内容。

我正在使用Outlook 2016。

Set olkFolder = Session.GetDefaultFolder(olFolderNotes)
Set olkNote = olkFolder.Items.Find("[Subject] = 'Sequential Number'")
If TypeName(olkNote) = "Nothing" Then
    Set olkNote = Application.CreateItem(olNoteItem)
    olkNote.Body = "Sequential Number" & vbCrLf & "NextValue=" & STARTING_VALUE + 1
    GetNextNumber = STARTING_VALUE
Else
    arrLines = Split(olkNote.Body, vbCrLf)
    For Each varLine In arrLines
        If Left(varLine, 10) = "NextValue=" Then
            GetNextNumber = CInt(Mid(varLine, 11))
            olkNote.Body = "Sequential Number" & vbCrLf & "NextValue=" & GetNextNumber + 1
        End If
    Next
End If

2 个答案:

答案 0 :(得分:0)

您可以move您创建的备注,也可以add直接转到其他帐户中的文件夹。

从链接中,添加代码:

Sub AddContact() 
    Dim myNamespace As Outlook.NameSpace 
    Dim myFolder As Outlook.Folder 
    Dim myItem As Outlook.ContactItem 
    Dim myOtherItem As Outlook.ContactItem 

    Set myNamespace = Application.GetNamespace("MAPI") 
    Set myFolder = myNamespace.GetDefaultFolder(olFolderContacts) 
    Set myOtherItem = myFolder.Items("Dan Wilson") 
    Set myItem = myFolder.Items.Add 
    myItem.CompanyName = myOtherItem.CompanyName 
    myItem.BusinessAddress = myOtherItem.BusinessAddress 
    myItem.BusinessTelephoneNumber = myOtherItem.BusinessTelephoneNumber 
    myItem.Display 
End Sub

如果您的导航窗格中有邮箱,"向下导航树"。 https://stackoverflow.com/a/6116820/1571407

ns.Folders("Personal Folders").Folders("Inbox")

在您的代码中:

Set olkFolder = ns.Folders("name of other mailbox").Folders("Notes")

文件夹是否在您的导航窗格中,您可以使用CreateRecipient,如另一个答案中所述。

答案 1 :(得分:0)

不使用Application.CreateItem,而是使用Application.Session.CreateRecipient / Application.Session.GetSharedDefaultFolder从另一个邮箱打开文件夹并调用MAPIFolder.Items.Add或(如果邮箱已在Outlook中可用)从Application.Session.Folders开始直到该文件夹​​,然后(再次)致电MAPIFolder.Items.Add

替换

Set olkFolder = Session.GetDefaultFolder(olFolderNotes)
...
Set olkNote = Application.CreateItem(olNoteItem)

set recip = Session.CreateRecipient("SomeOtherUser@YourDomain.demo")
Set olkFolder = Session.GetSharedDefaultFolder(recip, olFolderNotes)
...
Set olkNote = olkFolder.Items.Add