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的主要内容,如果未能解决你的问题,请参考以下文章

此演示文稿中的一些控件无法激活。这些控件可能未在此计算机中注册,怎么回事

ppt打不开,显示文件内容有问题,可以尝试修复此演示文稿

ppt打不开,显示发现文件中的内容有问题。可尝试修复此演示文稿

怎么在abbyy保存的文件格式为PPTX

word文档快速转换为PPT演示文稿

为啥用qq邮箱给别人发演示文稿时图片和汉字会分开有的图片还会重叠有的汉字看不到