我一直在使用R&R的RDCOMClient软件包来处理Excel文件,这是一个非常有用的帮助。
现在我正在冒险使用Outlook并学会了如何发送邮件 using the thread here
但是,我想使用R&R的RDCOMClient从我的收件箱中检索邮件。
通常,我们可以将VBA代码转换为与RDCOMClient一起使用,但在某些情况下我使用正确的语法会遇到问题。
即。何时使用Object [[" example"]]或Object $ example()访问对象的成员;以及如何制作像Object $ example(test $())之类的东西 工作
更具体地说,我如何从MSDN on retrieving mail using VBA转换以下代码?
Dim outlookNameSpace As Outlook.NameSpace
Dim inbox As Outlook.MAPIFolder
Dim WithEvents items As Outlook.Items
Private Sub ThisAddIn_Startup() Handles Me.Startup
outlookNameSpace = Me.Application.GetNamespace("MAPI")
inbox = _
outlookNameSpace.GetDefaultFolder( _
Outlook.OlDefaultFolders.olFolderInbox)
items = inbox.Items
End Sub
Private Sub Items_ItemAdd(ByVal item As Object) Handles items.ItemAdd
Dim filter As String = "USED CARS"
If TypeOf (item) Is Outlook.MailItem Then
Dim mail As Outlook.MailItem = item
If mail.MessageClass = "IPM.Note" And _
mail.Subject.ToUpper.Contains(filter.ToUpper) Then
mail.Move(outlookNameSpace.GetDefaultFolder( _
Outlook.OlDefaultFolders.olFolderJunk))
End If
End If
End Sub
这里我在R中做了一些尝试:
OL = COMCreate("Outlook.Application")
outlookNameSpace = OL$GetNameSpace("MAPI")
有遵循VBA代码中提供的逻辑的想法。但是,我遇到了上面提到的问题,其中访问成员和方法的语法不容易翻译。
subpath = OL$OlDefaultFolders()$olFolderInbox()
##Or something like
subpath = OL$DefaultFolders()
subpath2 = subpath$olFolderInbox()
最终,我的问题(以及其他人可能提出的问题)可以通过将MSDN示例从VBA直接转换为R或者指向综合教程的链接来实现。
记录中我已阅读this great tutorial on RDCOMClient
我感谢你能给我的任何帮助,我认为这个主题对于一般的VBA来说是一个很棒的启动板 - > RDCOM的想法