r-COM对象的方法的完整列表



我想知道哪些函数可以与RDCOMClient对象一起使用。

例如,要创建电子邮件,我们可以使用

OutApp <- COMCreate("Outlook.Application")
# create an email 
outMail = OutApp$CreateItem(0)

连同outMail[["subject"]]outMail[["HTMLbody"]]outMail[["Attachments"]]$Add(filepath)

但是我怎样才能得到一份全面的清单呢?

RDCOMClient文档已过期,列出的函数(如getFuncs()getElements()(在包中不再可用。使用names()试图找出引擎盖下的东西没有给我任何结果,

install.packages("remotes")
remotes::install_github("omegahat/SWinTypeLibs")

也给出了一个错误。知道如何检查Outlook中的对象吗?

如果您安装了Outlook、Excel或Word,则可以执行以下操作。。。

  1. 按F11进入Visual Basic应用程序(VBA(集成开发环境(IDE(
  2. 在菜单栏上,转到"工具"->"参照"以提示"参照"对话框
  3. 在"引用"对话框的"可用引用"复选框列表中,向下翻页,直到找到Microsoft Outlook Library(或类似程序(,找到后选中复选框,然后按"确定"确认选择并取消对话框。这将向当前项目添加对Outlook类型库的引用
  4. 参照Outlook类型库(请参见步骤(3((后,现在可以按F2键显示"对象浏览器"对话框
  5. 在"对象浏览器"对话框中,选择左上角的下拉列表,该列表可能显示<All Libraries>。更改下拉列表,使其显示Outlook,这将使对象浏览器的范围仅限于Outlook类型库
  6. 您现在可以浏览Outlook类型库中的所有对象。在左侧的"类"窗格中选择一个类,该类的方法将显示在右侧

享受吧!

我不确定在R中有什么方法可以做到这一点,但您应该能够在powershell中做到。

我仍在学习powershell,但这至少可以获得对象的所有属性和方法:


$ol = New-Object -ComObject Outlook.Application
$new_item = $ol.CreateItem(0)
$new_item | Get-Member
TypeName: System.__ComObject#{...}
Name                    MemberType     Definition
----                    ----------     --------
HTMLBody                Property      string HTMLBody () {get} {set}
Subject                 Property      string Subject () {get} {set}
Attachments             Property      Attachments Attachments() {get}

还有很多比这更多的东西,但我实际上是从我的另一台安装了Outlook的电脑上转录的。Get-Member不仅仅适用于应用程序对象,因此您还可以查看Outlook对象本身或其他COMS可访问的成员和属性。

VBA资源似乎也很有用:

https://learn.microsoft.com/en-us/office/vba/api/outlook.application.createitem

名称描述
olAppointmentItem1约会项对象
olContactItem2一个ContactItem对象
olDistributionListItem7DistListItem对象
olJournalItem4一个JournalItem对象

对于Outlook来说,这可以很容易地完成,因为每个Outlook对象都有一个class属性。

如果在R中有一个COMIDispatch类的给定对象,并且它是对Outlook对象的引用,则可以使用函数class()检索其类,然后检查OlObjectClass枚举以了解该类具有哪些属性和方法。

一个简单的分步示例:

> # initialise the app
> Outlook_App <- RDCOMClient::COMCreate("Outlook.Application")

为了找出我们可以对该对象做些什么,我们需要查找引用。为此,我们需要它的类。

> Outlook_App$class()
[1] 0

因此,我们在OlObjectClass枚举中查找0,发现它是一个应用程序对象。其属性和方法列在OlObjectClass枚举的引用链接中:Application。

在这里,我们可以访问方法和属性。对于事件,我们需要现已失效的包RDCOMEvents和/或RDCOMServer。

但是我们可以尝试getNameSpace("MAPI")方法来访问一些其他功能。我们知道我们必须使用";MAPI";上面链接的方法描述中的参数。

> Outlook_Namespace <- Outlook_App$getNameSpace("MAPI")

现在,Namespace对象有了另一个类,我们可以查找它的对象定义等等。

很遗憾,这不适用于Excel对象,因为它们没有类属性,如果有人知道解决方案,请与我联系。

最新更新