vba outlook批量保存选中邮件的附件
时间: 2024-09-19 15:09:24 浏览: 85
自动保存Outlook邮件的附件(利用VBA)
5星 · 资源好评率100%
在VBA (Visual Basic for Applications) 中,如果你想批量保存Outlook中的选中邮件附件,你可以编写一段宏来完成这个任务。以下是一个简单的步骤说明:
1. **启用开发者选项卡**:首先,在Outlook中你需要启用开发者选项卡,因为它包含了VBA功能。点击“文件”>“选项”>“自定义功能区”,找到“开发者”并勾选。
2. **创建新模块**:在开发者选项卡上选择“Visual Basic”,然后右键单击“This Outlook Session”下的空白区域,选择“插入”>“Module”,创建一个新的VBA模块。
3. **编写代码**:
```vba
Sub SaveAttachments()
Dim objApp As Object ' Outlook Application object
Dim objNS As Object ' Namespace object
Dim objFolder As MAPIFolder ' Current selected folder
Dim objItem As Object ' Individual mail item
Dim i As Integer
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
' 获取当前选定的收件箱或特定文件夹
Set objFolder = Selection.Folder ' 如果邮件是在选集中,使用Selection;如果指定了特定文件夹,则替换这一行
For Each objItem In objFolder.Items
If objItem.Attachments.Count > 0 Then ' 检查邮件是否有附件
Dim fileSavePath As String ' 定义保存路径,这里假设是同级目录下的"Attachments"文件夹
fileSavePath = "C:\YourSavingDirectory\Attachments\" & objItem.Subject & "."
' 遍历每个附件,保存到指定路径
For i = 1 To objItem.Attachments.Count
objItem.Attachments.Item(i).SaveAsFile fileSavePath & CStr(i) '.AddExtension("txt") 如果需要其他格式,可以添加这句
Next i
End If
Next objItem
Set objFolder = Nothing
Set objItem = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
```
4. **运行宏**:按下快捷键 `Ctrl + Alt + F8` 打开VBA编辑器,双击刚创建的宏名称(如SaveAttachments),即可运行批量保存附件的操作。
阅读全文