2014-12-04 71 views
0

我想通過使用IE作爲瀏覽器的Microsoft 365發送電子郵件。我目前沒法把VBA來創建一個新的電子郵件,我試圖這樣做,只需告訴它點擊「新建郵件」按鈕,它具有以下HTML代碼:使用VBA按Microsoft 365電子郵件中的「新郵件」按鈕

<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(頁面不重新加載時按下,只是更新)。任何想法如何做到這一點?

+0

哎呀。是否有任何理由不會只寫一個使用Office 365 SMTP服務器的小腳本? (smtp.live.com) – 2014-12-04 23:09:15

+0

我正在開發一個工作簿,我想通過多種不同的計算機(其中一些可能沒有Outlook或其他電子郵件軟件)發送電子郵件數據,因此認爲自動化IE實際上是我唯一的選擇。 AFAIK對於要設置的SMTP服務器,您至少需要登錄一次這些軟件。 – 2014-12-04 23:14:47

+0

此外,我認爲SMTP服務器需要更改防火牆設置,因爲這是要在多臺計算機上使用,我不認爲這是可能的。 – 2014-12-04 23:18:55

回答

1

嘗試IE.Document.GetElementsByClassName("_n_j2 o365button")(0).Click

不能使用.GetElementByID(),因爲該按鈕沒有被分配一個ID。

我已經使用過.GetElementsByClassName(),因爲我們知道按鈕有一個類分配,但是一個類不是唯一的。這個方法返回一個包含這個類的所有元素的集合 - 沒有看到整個HTML,我將假設頁面上的所有按鈕都共享這個類。

(0)告訴代碼點擊存儲在集合中的第一個項目。

(同樣,我會假設你沒有像宣佈Option Base 1

您可能需要通過收集迭代並以某種方式測試每一項,看你需要的按鈕並更改(0)因此。

+0

再次感謝您!你知道任何將文件附件添加到電子郵件的方法嗎?如果是這樣,你能再次幫助我一個問題嗎? http://stackoverflow.com/questions/27323940/attachment-on-ie-email – 2014-12-05 20:15:27

相關問題