Экспортируйте выбранные слайды PPT в виде вложения PDF в электронную почту Outlook

#vba #outlook #powerpoint

Вопрос:

См.Код ниже в настоящее время работает как PPTX.

Мне нужно, чтобы этот экспорт был в формате PDF, а не в формате PPTX, и мне не везет. Помощь очень признательна! Также не удалось автоматически добавить подпись электронной почты в этот код. Конечно, многие пользователи в конечном итоге будут использовать этот макрос.

 
Sub EmailFinal()

 Dim objActivePresetation As Presentation
    Dim objSlide As Slide
    Dim n As Long
    Dim strName As String
    Dim strTempPresetation As String
    Dim objTempPresetation As Presentation
    Dim objOutlookApp As Object
    Dim objMail As Object
 
    Set objActivePresetation = ActivePresentation
 
    For Each objSlide In objActivePresetation.Slides
        objSlide.Tags.Delete ("Selected")
    Next
 
    'Add a tag "Selected" to the selected slides
    For n = 1 To ActiveWindow.Selection.SlideRange.Count
        ActiveWindow.Selection.SlideRange(n).Tags.Add "Selected", "YES"
    Next n
 
    strName = objActivePresetation.Name
    strName = Left(strName, InStrRev(strName, ".") - 1)
    strTempPresetation = Environ("TEMP") amp; "" amp; strName amp; ".pptx"
 
    'Copy the active presentation to a temp presentation
    objActivePresetation.SaveCopyAs strTempPresetation
    Set objTempPresetation = Presentations.Open(strTempPresetation)
 
    'Remove the untagged slides
    For n = objTempPresetation.Slides.Count To 1 Step -1
        If objTempPresetation.Slides(n).Tags("Selected") <> "YES" Then
           objTempPresetation.Slides(n).Delete
        End If
    Next n
 
    objTempPresetation.Save
    objTempPresetation.Close
 
    'Attach the temp presentation to a new email
    Set objOutlookApp = CreateObject("Outlook.Application")
    Set objMail = objOutlookApp.CreateItem(olMailItem)
 
    'Change the email details as per your needs
    With objMail
         .To = "insertemailhere"
         .Subject = strName
         .Body = "Dear Company," amp; vbCr amp; vbCr amp; "Please see attached Plaques.," amp; vbCr amp; "Please let me know if you need any further assistance."
         .Attachments.Add strTempPresetation
         .Display
    End With
End Sub
 

Спасибо!!

Комментарии:

1. docs.microsoft.com/en-us/office/vba/api/…

Ответ №1:

Используйте презентацию.Метод ExportAsFixedFormat.

Вместо objTempPresetation.Save того, чтобы делать objTempPresetation.ExportAsFixedFormat и указывать нужные параметры, но, по крайней мере, укажите эти параметры:

 objTempPresetation.ExportAsFixedFormat Path:="C:yourpathyourfile.pdf", FixedFormatType:=ppFixedFormatTypePDF
 

другие параметры являются необязательными.