2015-01-02 2 views
2

첨부 파일이있는 전자 메일을 가져 오는 프로세스를 자동화하려고합니다.Outlook에서 VBA를 사용하여 txt 첨부 파일을 열고 읽는 방법은 무엇입니까?

두 번째 줄에서 날짜를 확인하고 해당 날짜의 특정 위치에 저장했습니다.

이제 질문은 다음과 같습니다 :
어떻게 저장하기 전에 TXT의 두 번째 줄을 읽고 난 당신이 원하는 폴더에 파일을 저장 한이 코드 및 Outlook에서 메시지 규칙으로

?

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 
+0

멀리까지 코드는 txt 파일을 읽지 않습니다. 임시 폴더에 첨부 파일을 저장합니다. 질문이 뭐야? –

+0

위의 코드를 사용하기 전에 텍스트 파일을 읽어야합니다. 첨부 파일의 두 번째 줄에는 파일을 저장할 폴더를 만들어야하기 때문입니다. – caezar

+0

txt 파일의 구조는 무엇입니까? 두 번째 줄 전체가 데이트입니까? –

답변

3

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 
-1

Outlook 개체 모델을 즉석에서 첨부 파일을 읽기 위해 아무것도 제공하지 않습니다. 디스크의 첨부 파일을 파일로 저장 한 다음 열어 두 번째 줄을 읽어야합니다. 또한 하위 수준 코드 (또는 타사 래퍼) - 확장 MAPI 사용을 고려할 수 있습니다. 첨부 파일을 바이트 스트림으로 열 수 있습니다.

+0

하위 수준 코드 (또는 타사 래퍼)를 사용하는 예가 있습니까? - 확장 MAPI – caezar

+0

사용을 시도해보십시오. –

관련 문제