【问题标题】:Press "New mail" button in Microsoft 365 email using VBA使用 VBA 在 Microsoft 365 电子邮件中按“新邮件”按钮
【发布时间】:2014-12-04 23:07:06
【问题描述】:

我正在尝试使用 IE 作为浏览器通过 Microsoft 365 发送电子邮件。我目前很难让 VBA 创建新电子邮件,我试图通过简单地告诉它单击具有以下 HTML 代码的“新邮件”按钮来做到这一点:

<button autoid="_n_j" type="button" class="_n_j2 o365button" aria-labelledby="_ariaId_31" regionbehavior="1">
<span class="_n_l2 owaimg ms-Icon--plus ms-bcl-tp ms-bg-transparent ms-icon-font-circle ms-fcl-tp ms-icon-font-size-20-circle" role="presentation"></span>
<span class="_n_k2 ms-font-weight-regular ms-font-color-themePrimary" id="_ariaId_31">New mail</span>
</button>

我正在尝试使用以下 VBA 代码按下此按钮:

Dim objButton As Object
    Set objButton = IE.Document.getElementById("_n_j2 o365button")
    objButton.onfocus
    objButton.onclick

但是我遇到了运行时错误。我认为这是因为该按钮正在使用 javascript(按下时页面不会重新加载,只是更新)。任何想法如何做到这一点?

【问题讨论】:

  • 哎呀。您是否有任何理由不只编写一个使用 Office 365 SMTP 服务器的小脚本? (smtp.live.com)
  • 我正在开发一个工作簿,我想在许多不同的计算机上通过电子邮件发送数据,因此其中一些可能没有 Outlook 或其他电子邮件软件,因此认为自动化 IE 确实是我唯一的选择。要设置 SMTP 服务器的 AFAIK,您需要至少登录一次这些软件。
  • 另外,我认为 SMTP 服务器需要更改防火墙设置,因为这是要在多台计算机上使用,我认为这是不可能的。
  • 那不是按钮的 ID - 它是按钮类。
  • 我也尝试了 autoid 下显示的值,但出现错误,请您告诉我该怎么做?

标签: excel vba internet-explorer email


【解决方案1】:

试试IE.Document.GetElementsByClassName("_n_j2 o365button")(0).Click

您不能使用 .GetElementByID(),因为尚未为按钮分配 ID。

我使用 .GetElementsByClassName() 是因为我们知道按钮分配了一个类,但是一个类不是唯一的。这个方法返回这个类的所有元素的集合——在没有看到整个 HTML 的情况下,我将假设页面上的所有按钮都共享这个类。

(0) 告诉代码单击集合中存储的第一个项目。

(再次,我假设您没有声明像 Option Base 1 这样的东西)

您可能必须遍历集合并以某种方式测试每个项目以查看您需要哪个按钮并相应地更改(0)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-30
  • 1970-01-01
  • 2022-09-24
  • 2022-10-18
  • 1970-01-01
  • 2011-05-27
相关资源
最近更新 更多