码迷,mamicode.com
首页 > 编程语言 > 详细

vba -------------vba 导出word到pdf 发邮件

时间:2017-07-01 22:39:57      阅读:397      评论:0      收藏:0      [点我收藏+]

标签:outlook   nts   public   play   splay   ace   exp   tag   --   


Public Sub SendMail()
Dim objAccount As Object
Dim objApp As Object ‘Outlook.Application

‘ If Not CheckData Then
‘ Exit Sub
‘ End If

‘ If MsgBox(shtMessage.Range("A1").Value, vbYesNo + vbExclamation) <> vbYes Then
‘ Exit Sub
‘ End If

Set objApp = GetObject("", "Outlook.Application")

If objApp.Session.accounts.Count > 1 Then
frmAccounts.Show vbModal
If Val(frmAccounts.lstAccounts.Tag) > 0 Then
Set objAccount = objApp.Session.accounts.Item(Val(frmAccounts.lstAccounts.Tag))
Else
Exit Sub
End If
Else
Set objAccount = objApp.Session.accounts.Item(1)
End If

Dim strPath As String
Dim objWB As Workbook

‘strPath = Environ$("TEMP") & "\test.xlsm"
‘ ThisWorkbook.SaveCopyAs strPath
Dim endRow
Dim rowindex As Integer



endRow = Sheet24.Range("a65536").End(xlUp).Row


MsgBox endRow


For rowindex = 1 To endRow

‘判断项目名称是否为空
If Sheet24.Cells(rowindex, 1) = "" Then
Exit For

End If

Dim objMailItem As Object ‘MailItem

Set objMailItem = objApp.CreateItem(0)

objMailItem.To = "y_dong119@sina.com"
objMailItem.Cc = ""
objMailItem.Subject = "hello world"
objMailItem.Body = "this is a test mail"

objMailItem.Attachments.Add ExcelToWordToPdf(rowindex)

objMailItem.Display
‘objMailItem.Send


Next




‘ Dim objMailItem As Object ‘MailItem

‘ Set objMailItem = objApp.CreateItem(0)

‘ objMailItem.to = "y_dong119@sina.com"
‘ objMailItem.Cc = ""
‘ objMailItem.Subject = "hello world"
‘ objMailItem.Body = "this is a test mail"
‘ ‘objMailItem.Attachments.Add strPath

‘ objMailItem.Display
‘ ‘objMailItem.Send

‘ MsgBox "Success!", vbInformation

End Sub

 


Sub TestFunc() ‘定义一个string类型的参数s

Dim s
s = "abc "
MsgBox Len(s)

MsgBox Application.ActiveWorkbook.path

‘ MsgBox ExcelToWordToPdf("我的文件") ‘返回一个字符串"返回值"
End Sub

 

 


Function ExcelToWordToPdf(rowindex As Integer)

Dim wdDoc, newPdfPath, currentPath, filename

currentPath = Application.ActiveWorkbook.path & "\"


newPdfPath = currentPath & "files\"

filename = Sheet24.Cells(rowindex, 1) & ".pdf"

Set wdDoc = CreateObject(currentPath & "template.docx") ‘打开word


wdDoc.Range.Find.Execute FindText:="{1}", ReplaceWith:="标题---test-replage", Replace:=1 ‘replace为1 替换一次,2替换所有
wdDoc.Range.Find.Execute FindText:="{2}", ReplaceWith:="test----2"


If Dir(newPdfPath) = "" Then

MkDir (newPdfPath)
End If


wdDoc.ExportAsFixedFormat newPdfPath & filename, 17 ‘ wdExportFormatPDF 是17


wdDoc.Close

Set wdDoc = Nothing
ExcelToWordToPdf = newPdfPath & filename


End Function

 

vba -------------vba 导出word到pdf 发邮件

标签:outlook   nts   public   play   splay   ace   exp   tag   --   

原文地址:http://www.cnblogs.com/cancelbug/p/7103633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!