Private Type BROWSEINFO hOwner As Long pidlRoot As Long pszDisplayName As String lpszTitle As String ulFlags As Long lpfn As Long lParam As Long iImage As Long End Type Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _ "SHGetPathFromIDListA" (ByVal pidl As Long, _ ByVal pszPath As String) As Long Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias _ "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) _ As Long Private Const BIF_RETURNONLYFSDIRS = &H1 Const MailFieldToSort = "Received" '"Received" for english Version Const MailErasedFolder = "Deleted Items" '"Deleted Items" for english Version Dim lCount As Long 'to count the deleted items Public Function BrowseFolder(szDialogTitle As String) As String Dim x As Long, bi As BROWSEINFO, dwIList As Long Dim szPath As String, wPos As Integer With bi .hOwner = hWndAccessApp .lpszTitle = szDialogTitle .ulFlags = BIF_RETURNONLYFSDIRS End With dwIList = SHBrowseForFolder(bi) szPath = Space$(512) x = SHGetPathFromIDList(ByVal dwIList, ByVal szPath) If x Then wPos = InStr(szPath, Chr(0)) BrowseFolder = Left$(szPath, wPos - 1) Else BrowseFolder = vbNullString End If End Function Sub SaveAndStripPics() Dim i As MailItem Dim pic As Attachment Dim filePath As String, fldr As String For Each i In ActiveExplorer.Selection i.Body = i.Body & vbCrLf & "=====" & vbCrLf & "link to attachments:" & vbCrLf filePath = vbNullString fldr = BrowseFolder("Please select a Folder:") If fldr = "" Then Exit Sub For Each pic In i.Attachments filePath = fldr & "\" & pic.FileName pic.SaveAsFile filePath i.Body = i.Body & "" & "<" & "file:\\" & filePath & ">" & """" & vbCrLf x = x + 1 Next pic i.Body = i.Body & "=====" Do Until i.Attachments.Count = 0 i.Attachments.Item(1).Delete i.Save Loop Open "C:\blank.txt" For Output As #1 Close #1 i.Attachments.Add "C:\blank.txt" Kill "C:\blank.txt" i.Save Next i MsgBox x & " pictures saved to '" & fldr & ".'", vbInformation, "Pictures Captured" End Sub