如何保存附件并重命名
How to save attachments and rename it
我在让我的代码正常工作时遇到问题。这是我第一次 运行 VBA 脚本。我有大量来自传真机的电子邮件,我希望能够下载附件,将文件重命名为主题行,然后将它们存储在我的计算机上。
我的第一次尝试是,我尝试只编写一个宏以便我可以手动执行它,但在做了一些研究之后,我的印象是我想让规则起作用。
这是我第一次尝试 VBA,所以我什至不确定我 运行 宏或规则脚本是否正确,但我感觉我只是在代码中遗漏了一些东西。有什么想法吗?
Public Sub saveAttachtoDiskRule(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim fso As Object
Dim oldName
Dim file As String
Dim DateFormat As String
Dim newName As String
Dim enviro As String
enviro = CStr(Environ("USERPROFILE"))
saveFolder = enviro & "\" & "\destinationfolder\"
Set fso = CreateObject("Scripting.FileSystemObject")
For Each objAtt In itm.Attachments
file = saveFolder & objAtt.DisplayName
objAtt.SaveAsFile file
Set oldName = fso.GetFile(file)
newName = itm.Subject
oldName.Name = newName
Set objAtt = Nothing
Next
Set fso = Nothing
End Sub
这是简单的规则脚本
Public Sub saveAttachtoDisk(olItem As Outlook.MailItem)
Dim olAttachment As Outlook.Attachment
Dim SaveFolder As String
SaveFolder = "c:\temp\"
For Each olAttachment In olItem.Attachments
olAttachment.SaveAsFile SaveFolder & "\" & olAttachment.DisplayName
Set olAttachment = Nothing
Next
End Sub
Environ 函数可让您获取您的代码当前 运行 所在计算机的 Windows 环境变量,例如 user name
或 temporary folder
例子
用户的个人资料文件夹示例是
Environ("USERPROFILE") & "\Documents\Temp\"
result
Windows Vista/7/8: C:\Users\Omar\
Windows XP: C:\Documents and Settings\Omar\
"All Users" 或 "Common" 配置文件文件夹
Environ("ALLUSERSPROFILE")
临时文件夹示例为
Environ("TEMP") (or Environ("TMP") - is the same)
result: C:\Users\omar\AppData\Local\Temp
我在让我的代码正常工作时遇到问题。这是我第一次 运行 VBA 脚本。我有大量来自传真机的电子邮件,我希望能够下载附件,将文件重命名为主题行,然后将它们存储在我的计算机上。
我的第一次尝试是,我尝试只编写一个宏以便我可以手动执行它,但在做了一些研究之后,我的印象是我想让规则起作用。
这是我第一次尝试 VBA,所以我什至不确定我 运行 宏或规则脚本是否正确,但我感觉我只是在代码中遗漏了一些东西。有什么想法吗?
Public Sub saveAttachtoDiskRule(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim fso As Object
Dim oldName
Dim file As String
Dim DateFormat As String
Dim newName As String
Dim enviro As String
enviro = CStr(Environ("USERPROFILE"))
saveFolder = enviro & "\" & "\destinationfolder\"
Set fso = CreateObject("Scripting.FileSystemObject")
For Each objAtt In itm.Attachments
file = saveFolder & objAtt.DisplayName
objAtt.SaveAsFile file
Set oldName = fso.GetFile(file)
newName = itm.Subject
oldName.Name = newName
Set objAtt = Nothing
Next
Set fso = Nothing
End Sub
这是简单的规则脚本
Public Sub saveAttachtoDisk(olItem As Outlook.MailItem)
Dim olAttachment As Outlook.Attachment
Dim SaveFolder As String
SaveFolder = "c:\temp\"
For Each olAttachment In olItem.Attachments
olAttachment.SaveAsFile SaveFolder & "\" & olAttachment.DisplayName
Set olAttachment = Nothing
Next
End Sub
Environ 函数可让您获取您的代码当前 运行 所在计算机的 Windows 环境变量,例如 user name
或 temporary folder
例子
用户的个人资料文件夹示例是
Environ("USERPROFILE") & "\Documents\Temp\"
result
Windows Vista/7/8: C:\Users\Omar\
Windows XP: C:\Documents and Settings\Omar\
"All Users" 或 "Common" 配置文件文件夹
Environ("ALLUSERSPROFILE")
临时文件夹示例为
Environ("TEMP") (or Environ("TMP") - is the same)
result: C:\Users\omar\AppData\Local\Temp