Outlook VBA - 날짜를 기준으로 자동으로 폴더 만들기

Outlook VBA - 날짜를 기준으로 자동으로 폴더 만들기

PDF 첨부 파일을 자동으로 저장하는 VBA 스크립트를 만들었습니다. 여기 날짜를 기준으로 첨부 파일을 저장하는 방법을 아는 사람이 있나요? 예를 들어, 오늘이 2020년 2월 4일이고 이 특정 사용자가 나에게 PDF 첨부 파일을 이메일로 보내면 자동으로 02-04-2020이라는 이름의 폴더가 생성되고 해당 날짜의 모든 메일이 해당 폴더에 저장됩니다. 그러면 다음날 또 다른 폴더가 생성됩니다. 들어오는 첨부 파일을 날짜별로 분리해야 합니다.

여기 내가 지금까지 가지고 있는 것이 있다

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim dateFormat
dateFormat = Format(Now, "yyyy-mm-dd H-mm")
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim getsender As String
saveFolder = "C:\Users\UserName\Desktop\Attachments\"
     For Each objAtt In itm.Attachments
          If InStr(objAtt.FileName, ".pdf") > 0 Then
          objAtt.SaveAsFile saveFolder & "\" & dateFormat & objAtt.DisplayName
          Set objAtt = Nothing
          End If
     Next
End Sub

답변1

codeproject.com의 누군가가 내 문제를 해결하는 데 도움을 주었습니다. @CHill60 사용자 이름을 가진 그 사람에게 감사 인사를 전하고 싶습니다. 도와주셔서 정말 감사합니다. 아래 코드는 그 사람의 코드이며 해당 코드가 내 문제를 해결했습니다.

다음은 codeproject.com에 게시된 질문의 링크입니다.https://www.codeproject.com/Questions/5258321/Outlook-VBA-automatically-create-a-folder-based-on][1]

다음은 게시된 전체 코드 @CHill60입니다. 이것이 다른 사람들에게 도움이 되기를 바랍니다.

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
    Dim dateFormat As String
    dateFormat = Format(itm.CreationTime, "mm-dd-yyyy")

    Dim objAtt As Outlook.Attachment
    Dim saveFolder As String
    Dim getsender As String

    saveFolder = "C:\Users\Username\Desktop\DLFolder\" & dateFormat & "\"

    CreateFolderIfNotExists saveFolder

    For Each objAtt In itm.Attachments
        If InStr(objAtt.FileName, ".pdf") > 0 Then
            objAtt.SaveAsFile saveFolder & objAtt.DisplayName
        End If

     Next
End Sub


Public Sub CreateFolderIfNotExists(folderName As String)
    Dim fs As Object
    Set fs = CreateObject("Scripting.FileSystemObject")

    If Not fs.folderexists(folderName) Then
        fs.createfolder (folderName)
    End If
End Sub

관련 정보