Hello Everyone,
I have been hustling to do the following:
1. Copy all slides from current presentation which has macros (with .pptm extension) into an embedded/hidden/OLE object with .pptx extension.
2. Attach this pptx to outlook mail
The reason to do this is to avoid virus while attaching macro contained PowerPoint. Please help, that will be like ray of hope. Following is drafts of code I am working on;
They are two approaches which came into my mind.
1. One is using similar thread : http://www.vbaexpress.com/forum/show...ook-attachment
Code:
Dim OutlookApp As Object
Dim OutlookMessage As Object
Dim otemp As presentation
Dim opres As presentation
Dim strName As String
Dim strSubject As String
Dim L As Long
Set opres = ActivePresentation
strSubject = opres.name
' make a copy
opres.SaveCopyAs Environ("TEMP") & "" & strName & ".pptx"
'open the copy
Set otemp = Presentations.Open(Environ("TEMP") & "" & strName & ".pptx")
otemp.Save
otemp.Close
On Error Resume Next
Set OutlookApp = GetObject(Class:="Outlook.Application")
Err.Clear
If OutlookApp Is Nothing Then Set OutlookApp = CreateObject(Class:="Outlook.Application")
On Error GoTo 0
Set OutlookMessage = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMessage
.To = "username.gmail.com" 'Insert email address here!
.CC = ""
.Subject = strSubject
.body = "Slides are attached"
.Attachments.Add Environ("TEMP") & "" & strName & ".pptx"
.Display
End With
End Sub
2. Copying all slides from pptm file into the embedded and then attaching this pptx file to outlook (just an idea)
PPTMainPres is the presentation with macros
PPTPres is the OLE hidden/embedded object
Set PPTPres = oOleObj ' embedded presentation or object
PPTMainPres.Slides.Range.Copy
PPTPres.Slides.Paste
---------------------------
.Attachments.Add PPTPres ".pptx"