Хорошо, я дошел до сохранения в локальной папке и удалил сообщение. Я еще не разработал кнопки, но я уверен, что это не самая сложная вещь в мире ...
Так что я бы посмотрел документацию VBA по адресу Attachment Methods, в частности, на SaveAsFile
, так как он имеет полный пример, который я использовал для проверки. Эти два метода являются точными из них вам нужно:
SaveAsFile
и
Delete
Но поскольку VBA не делают ничего простого, с помощью этих двух линий требуют 15 других.
Также есть ДЕЙСТВИТЕЛЬНО отличный сайт под названием outlookcode.com. Администратор сайта - мастер VBA/Outlook, и она лично ответит на ваши вопросы, если они будут сидеть на форумах более одного дня (не гарантия, только мой опыт). На сайте полно источников и кода других людей.
Вот что я написал, чтобы опробовать то, что вы имели в виду, на основе образца из MSDN, в котором я добавил метод удаления, сделав его одним нажатием кнопки save/удаления:
Sub getAttatchment()
Dim myInspector As Outlook.Inspector
Dim myItem As Outlook.MailItem
Dim myAttachments As Outlook.Attachments
Set myInspector = Application.ActiveInspector
If Not TypeName(myInspector) = "Nothing" Then
If TypeName(myInspector.CurrentItem) = "MailItem" Then
Set myItem = myInspector.CurrentItem
Set myAttachments = myItem.Attachments
If myAttachments.Item(1).DisplayName = "" Then
Set myAttachments.Item(1).DisplayName = myAttachments.Item(1).FileName
End If
myAttachments.Item(1).SaveAsFile Environ("HOMEPATH") _
& "\My Documents\" & myAttachments.Item(1).DisplayName
myAttachments.Item(1).Delete
Else
MsgBox "The item is of the wrong type."
End If
End If
End Sub
Имейте в виду, что исходный образец имеет диалоговое окно с запросом пользователя, если они уверены, что они хотят сохранить, как он будет перезаписывать любые файлы с тем же именем. Я удалил его, чтобы немного упростить код.
К сожалению, не достаточно хорошо знаком с объектом и событий модели Outlook VBA натаскать; однако, я использую много VBA с Access и Excel, и то, что вам нужно, абсолютно выполнимо ... – TonBill