如何在 Outlook 中使用 VBA 打开和阅读 txt 文件附件?
How can I Open and read a txt file attachment using VBA in Outlook?
我正在尝试使我收到一封带有附件 txt 的电子邮件的过程自动化
我打开并检查第二行的日期,并将该日期保存到特定位置的文件夹中。
使用此代码和 Outlook 中的消息规则,我将文件保存在您希望的文件夹中:
现在的问题是:
如何在保存前读取txt的第二行?
Public Sub SalvarAnexo(Item As MailItem)
Dim Atmt As Attachment
Dim FileName As String
MsgBox "Mensagem Recebida de " & Item.Sender & "!"
For Each Atmt In Item.Attachments
If Right(Atmt.FileName, 3) = "txt" Then
FileName = "C:\temp\" & Format(Item.CreationTime, "yyyymmdd_hhnnss_") & Atmt.FileName
Atmt.SaveAsFile FileName
End If
Next Atmt
End Sub
Outlook 对象模型不提供任何用于即时读取附件的功能。您需要将附件作为文件保存在磁盘上,然后打开它阅读第二行。您也可以考虑使用低级代码(或任何第三方包装器)- Extended MAPI。它允许以字节流的形式打开附件。
您可以使用 FileScriptingObject
来抓取文本文件的第二行。
Public Sub SalvarAnexo(Item)
Dim Atmt As Attachment
Dim FileName As String
Dim objFSO As Object
Dim objFile As Object
Dim strTest As String
MsgBox "Mensagem Recebida de " & Item.Sender & "!"
For Each Atmt In Item.Attachments
If Right$(Atmt.FileName, 3) = "txt" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
FileName = "C:\temp\" & Format(Item.CreationTime, "yyyymmdd_hhnnss_") & Atmt.FileName
Atmt.SaveAsFile FileName
Set objFile = objFSO.OpenTextFile(FileName, 1)
strTest = objFile.ReadLine
strTest = objFile.ReadLine
objFile.Close
MsgBox "Your date is " & strTest
End If
Next Atmt
End Sub
我正在尝试使我收到一封带有附件 txt 的电子邮件的过程自动化
我打开并检查第二行的日期,并将该日期保存到特定位置的文件夹中。
使用此代码和 Outlook 中的消息规则,我将文件保存在您希望的文件夹中:
现在的问题是:
如何在保存前读取txt的第二行?
Public Sub SalvarAnexo(Item As MailItem)
Dim Atmt As Attachment
Dim FileName As String
MsgBox "Mensagem Recebida de " & Item.Sender & "!"
For Each Atmt In Item.Attachments
If Right(Atmt.FileName, 3) = "txt" Then
FileName = "C:\temp\" & Format(Item.CreationTime, "yyyymmdd_hhnnss_") & Atmt.FileName
Atmt.SaveAsFile FileName
End If
Next Atmt
End Sub
Outlook 对象模型不提供任何用于即时读取附件的功能。您需要将附件作为文件保存在磁盘上,然后打开它阅读第二行。您也可以考虑使用低级代码(或任何第三方包装器)- Extended MAPI。它允许以字节流的形式打开附件。
您可以使用 FileScriptingObject
来抓取文本文件的第二行。
Public Sub SalvarAnexo(Item)
Dim Atmt As Attachment
Dim FileName As String
Dim objFSO As Object
Dim objFile As Object
Dim strTest As String
MsgBox "Mensagem Recebida de " & Item.Sender & "!"
For Each Atmt In Item.Attachments
If Right$(Atmt.FileName, 3) = "txt" Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
FileName = "C:\temp\" & Format(Item.CreationTime, "yyyymmdd_hhnnss_") & Atmt.FileName
Atmt.SaveAsFile FileName
Set objFile = objFSO.OpenTextFile(FileName, 1)
strTest = objFile.ReadLine
strTest = objFile.ReadLine
objFile.Close
MsgBox "Your date is " & strTest
End If
Next Atmt
End Sub