使用VBA按Microsoft 365电子邮件中的“新邮件”按钮

时间:2014-12-04 23:07:06

标签: excel vba internet-explorer email

我正在尝试使用IE作为浏览器通过Microsoft 365发送电子邮件。我目前很难让VBA创建一个新的电子邮件,并试图通过简单地告诉它点击" New Mail"按钮,其中包含以下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(页面在按下时不会重新加载,只是更新)。任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:1)

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

您无法使用.GetElementByID(),因为该按钮尚未分配ID。

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

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

(同样,我会假设你没有宣布Option Base 1之类的东西)

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