[RESOLVED] How to check for file type when using VBA to auto extract attachment from Outlook
Hello Everyone
I am a noob in VBA programming, can only understand basic function and usage also some simple coding modification
I use the following VBA coding in outlook 2010 to auto extract all attachment from emails that i receive but i face a issue that it also extracts images in the emails as attachment too.
How can I modify the coding to not save attachment if it does not match certain files types?
I also need the coding not to save attachment if the file size is more than 3 MB.
Experts and PROs kindly help.
VBA:
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
saveFolder = "c:\temp"
For Each objAtt In itm.Attachments
stFileName = saveFolder & "\" & objAtt.DisplayName
i = 0
JumpHere:
If Dir(stFileName) = "" Then
objAtt.SaveAsFile stFileName
Else
i = i + 1
stFileName = saveFolder & "\" & i & " - " & objAtt.DisplayName
Goto JumpHere
End If
Set objAtt = Nothing
Next
itm.Delete
End Sub
Re: How to check for file type when using VBA to auto extract attachment from Outlook
First off: Try to Avoid Goto's!
This:
Code:
JumpHere:
If Dir(stFileName) = "" Then
objAtt.SaveAsFile stFileName
Else
i = i + 1
stFileName = saveFolder & "\" & i & " - " & objAtt.DisplayName
Goto JumpHere
End If
is replaced with this:
Code:
Do While Dir(stFileName)<>""
i=i+1
stFileName = saveFolder & "\" & i & " - " & objAtt.DisplayName
Loop
objAtt.SaveAsFile stFileName
For checking specific File-Types: e.g. "test.pdf" returns "pdf"
Code:
Public Function GetExtension(ByVal cF As String) As String
Dim cT As String
Dim tmpString() as String
cT = StrReverse(cF)
tmpString=Split(cT,".")
GetExtension=StrReverse(tmpString(0))
End If
End Function
To check FileSize: FileLen-Function
Code:
MsgBox FileLen("c:\test.txt") 'FileSize in Bytes