20161226xlVBA演示文稿替换文字另存pdf
Posted Excel VBA 小天地
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20161226xlVBA演示文稿替换文字另存pdf相关的知识,希望对你有一定的参考价值。
Const ModelText As String = "机构名称" Const ModelName As String = "测试文件.pptx" Sub NextSeven_CodeFrame() ‘应用程序设置 Application.ScreenUpdating = False Application.DisplayAlerts = False Application.Calculation = xlCalculationManual ‘错误处理 On Error GoTo ErrHandler ‘计时器 Dim StartTime, UsedTime As Variant StartTime = VBA.Timer ‘变量声明 Dim Wb As Workbook Dim Sht As Worksheet Dim Rng As Range Dim Arr As Variant Dim EndRow As Long Dim pApp As Object Dim Pre As Object ‘Dim pApp As PowerPoint.Application ‘Dim pre As PowerPoint.Presentation Dim FindStr As String Dim ReplaceStr As String Dim FilePath As String Dim FolderPath As String Dim tmp As String Dim FileName As String FileName = Left(ModelName, InStrRev(ModelName, ".") - 1) ‘实例化对象 Set Wb = Application.ThisWorkbook Set Sht = Wb.Worksheets(1) FolderPath = Wb.Path & "\" ‘Set pApp = New PowerPoint.Application Set pApp = CreateObject("PowerPoint.Application") Debug.Print FolderPath & ModelName Set Pre = pApp.Presentations.Open(FolderPath & ModelName) With Sht EndRow = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row Set Rng = .Range("A1:Z" & EndRow) Arr = Rng.Value For i = LBound(Arr) To UBound(Arr) If i = 1 Then FindStr = ModelText ReplaceStr = Arr(i, 1) FilePath = FolderPath & FileName & "_予" & Arr(i, 1) & ".pdf" ReplaceAndPublish Pre, FilePath, FindStr, ReplaceStr Else FindStr = Arr(i - 1, 1) ReplaceStr = Arr(i, 1) FilePath = FolderPath & FileName & "_予" & Arr(i, 1) & ".pdf" ReplaceAndPublish Pre, FilePath, FindStr, ReplaceStr End If Next i End With ‘运行耗时 UsedTime = VBA.Timer - StartTime ‘MsgBox "本次运行耗时:" & Format(UsedTime, "0.0000000秒") ErrorExit: ‘错误处理结束,开始环境清理 Pre.Close Set Pre = Nothing pApp.Quit Set pApp = Nothing Set Wb = Nothing Set Sht = Nothing Set Rng = Nothing Application.ScreenUpdating = True Application.DisplayAlerts = True Application.Calculation = xlCalculationAutomatic Exit Sub ErrHandler: If Err.Number <> 0 Then MsgBox Err.Description & "!", vbCritical, "错误提示!" ‘Debug.Print Err.Description Err.Clear Resume ErrorExit End If End Sub Private Sub ReplaceAndPublish(ByVal Pre As Object, ByVal FilePath As String, ByVal FindText As String, ByVal ReplaceText As String) Dim sld As PowerPoint.Slide Dim shp As PowerPoint.Shape Dim Txt As String For Each sld In Pre.Slides For Each shp In sld.Shapes If shp.HasTextFrame = msoTrue Then If shp.TextFrame.HasText Then Txt = shp.TextFrame.TextRange.Text If InStr(1, Txt, FindText) > 0 Then shp.TextFrame.TextRange.Text = Replace(Txt, FindText, ReplaceText) Exit For End If End If End If Next Next Pre.SaveAs FilePath, ppSaveAsPDF End Sub
以上是关于20161226xlVBA演示文稿替换文字另存pdf的主要内容,如果未能解决你的问题,请参考以下文章
此演示文稿中的一些控件无法激活。这些控件可能未在此计算机中注册,怎么回事