我正在将一些Outlook VBA \ Macros转换为加载项。 到目前为止,我没有很多运气将这些代码传递给VS2015 w \ Office Dev Tools。
我创建了一个ribbon \ group \ buttons \我可以在Outlook中看到它,一切看起来不错但我收到错误。
- ORIGINAL MACRO -
Sub Request()
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.Application.GetNamespace("MAPI")
Set objFolder = Session.GetDefaultFolder(olPublicFoldersAllPublicFolders).Folders("Shared Documents")
Set myItem = objFolder.Items.Add("IPM.Note.Request")
myItem.Display
End Sub
我看到Set不再被允许,所以他们都被定义了。
这条特殊线似乎是问题所在。 Session和\或GetDefaultFolder返回Null并导致运行时异常。
错误 - “System.NullReferenceException” -
objFolder = Session.GetDefaultFolder(olPublicFoldersAllPublicFolders).Folders("Shared Documents")
VS的建议是使用Sub“New”以及其他一些似乎不适用的其他内容。
请帮助一下。 :-) 似乎我从VS错误解决建议中混合了各种编程类型。
谢谢。 -Chris
答案 0 :(得分:0)
好的,它正在喵喵叫。 找到这个方便的花花公子网页,以防有人需要一些指针: https://support.microsoft.com/en-us/kb/313800
为Outlook加载项创建项目时,它将在VB.Net中编码
感谢 DanL 的输入,让我思考并再次搜索。
Private Sub Button1_Click(sender As Object, e As RibbonControlEventArgs) Handles Button1.Click
Dim objOutlook As Outlook._Application
objOutlook = New Outlook.Application()
Dim objNS As Outlook._NameSpace = objOutlook.Session
Dim objFolder As Outlook.MAPIFolder =
objNS.GetDefaultFolder(Outlook.OlDefaultFolders.olPublicFoldersAllPublicFolders).Folders("Shared Documents")
Dim myItem = objFolder.Items.Add("IPM.Note.CustomFormName")
myItem.Display()
End Sub