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


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

 

转载于:https://www.cnblogs.com/cancelbug/p/7103633.html

可以通过以下步骤在Word VBA导出对话框并创建PDF文档: 1. 首先,需要添加对话框控件以允许用户选择要导出的文件名和文件路径。可以使用“文件对话框”控件。打开VBA编辑器并在“工具”菜单中选择“引用”。选择“Microsoft Office XX.0 Object Library”,其中XX是您的Office版本号。 2. 在代码中添加以下行以显示文件对话框并获取用户选择的文件名和路径: ``` Dim dlgSaveAs As FileDialog Set dlgSaveAs = Application.FileDialog(msoFileDialogSaveAs) With dlgSaveAs .Title = "Save PDF As" .InitialFileName = "*.pdf" .ButtonName = "Export" If .Show = -1 Then strPath = .SelectedItems(1) Else Exit Sub End If End With ``` 3. 接下来,需要使用ExportAsFixedFormat方法将文档导出PDF文件。添加以下行: ``` ActiveDocument.ExportAsFixedFormat OutputFileName:= _ strPath, ExportFormat:=wdExportFormatPDF, _ OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, _ Range:=wdExportAllDocument, From:=1, To:=1, _ Item:=wdExportDocumentContent, IncludeDocProps:=True, _ KeepIRM:=True, CreateBookmarks:= _ wdExportCreateNoBookmarks, DocStructureTags:=True, _ BitmapMissingFonts:=True, UseISO19005_1:=False ``` 4. 最后,将完整的代码组合在一起以创建PDF文件: ``` Sub ExportToPDF() Dim dlgSaveAs As FileDialog Dim strPath As String Set dlgSaveAs = Application.FileDialog(msoFileDialogSaveAs) With dlgSaveAs .Title = "Save PDF As" .InitialFileName = "*.pdf" .ButtonName = "Export" If .Show = -1 Then strPath = .SelectedItems(1) Else Exit Sub End If End With ActiveDocument.ExportAsFixedFormat OutputFileName:= _ strPath, ExportFormat:=wdExportFormatPDF, _ OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, _ Range:=wdExportAllDocument, From:=1, To:=1, _ Item:=wdExportDocumentContent, IncludeDocProps:=True, _ KeepIRM:=True, CreateBookmarks:= _ wdExportCreateNoBookmarks, DocStructureTags:=True, _ BitmapMissingFonts:=True, UseISO19005_1:=False End Sub ``` 现在,运行该宏将显示文件对话框,用户可以选择要导出的文件名和路径。然后,文档将导出PDF文件并保存到所选路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值