【问题标题】:Full list of methods for COM objectsCOM 对象的完整方法列表
【发布时间】:2021-08-11 19:10:03
【问题描述】:

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

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

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

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

但是我怎样才能得到一个完整的列表呢?

RDCOMClient doc 已过期,并且列出的功能如getFuncs()getElements() 不再包含在包中。使用names() 试图找出引擎盖下的内容没有给我任何结果,并且

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

也会出错。知道如何检查 Outlook 中的对象吗?

【问题讨论】:

  • 您可以从包的NAMESPACE 中获得一些想法,尽管这只是导出函数的列表。您可以进一步查看package's ./R/ source directory 中每个函数的定义。您可以上一层并进入其./man/ 目录以查找其功能的手动包。 (鉴于大多数文件在 10 多年内没有被触及,但在我看来,对 RDCOM 兼容性的假设有点冒险。)
  • 谢谢,但这不允许我回答我的问题 afaik。我在寻找可用于 Outlook 电子邮件对象的特定方法。
  • 读取源代码看起来也没什么用,例如函数getCOMElements(outMail) 给出了could not find function "getExtends"。无论如何感谢您的帮助
  • Outlook.Application 记录在这里:docs.microsoft.com/en-us/office/vba/api/outlook.application(使用 VBA 语法)。这与 RDCOMClient 无关,它只是一个调用 COM 对象的实用程序包。要通过代码发现类、方法和属性(可以使用 Outlook,因为它具有所谓的类型库,.tlb),这似乎可以使用 SWinTypeLibs 包。
  • 这个问题现在在这里直接回答:stackoverflow.com/questions/63992481/…

标签: r vba outlook com rdcomclient


【解决方案1】:

如果您安装了 Outlook、Excel 或 Word,那么您可以执行以下操作...

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

享受吧!

【讨论】:

    【解决方案2】:

    我不确定在 R 中执行此操作的方法,但您应该可以在 中执行此操作。

    我还在学习,但这起码得到了一个对象的所有属性和方法:

    
    $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://docs.microsoft.com/en-us/office/vba/api/outlook.application.createitem

    Name Value Description
    olAppointmentItem 1 An AppointmentItem object.
    olContactItem 2 A ContactItem object.
    olDistributionListItem 7 A DistListItem object.
    olJournalItem 4 A JournalItem object.
    .... ... ...

    最重要的是:

    https://docs.microsoft.com/en-us/office/vba/api/outlook.mailitem

    PROPERTIES
    ---------
    Actions
    AlternateRecipientAllowed
    Application
    Attachments
    AutoForwarded
    AutoResolvedWinner
    BCC
    BillingInformation
    Body
    BodyFormat
    Categories
    CC
    ...
    

    【讨论】:

      猜你喜欢
      • 2012-08-07
      • 2011-05-30
      • 2015-05-14
      • 2016-12-19
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 2011-01-29
      • 2010-09-16
      相关资源
      最近更新 更多