엑셀 자동화 TOOL공유 Outlook의 특정 메일 자동추출, 첨부파일 자동다운로드
1. Outlook의 메일을 엑셀로 추출할 수 있을까?
Outlook은 마이크로소프트에서 개발한 이메일 소프트웨어로 엑셀, PPT, Word와 같은 오피스 툴 중에 하나입니다. 따라서 엑셀과 같은 VBA를 활용한 매크로를 사용할 수 있습니다.
보통 하기와 같은 절차로 아웃룩의 메일 내용을 엑셀로 변환할 수 있습니다.
①아웃룩 열기: 먼저 아웃룩을 열어야 합니다.
②메일 선택: 가져올 메일함(Inbox, Sent 등)을 선택하십시오.
③메일 선택 및 내보내기: 가져오고자 하는 메일을 선택합니다.
③-1"파일" 메뉴로 이동한 후 "내보내기" 옵션을 선택합니다.
③-2내보내기 유형 선택: 내보내기 유형으로 "텍스트 파일(Tab Separated Values)" 또는 "쉼표로 구분된 값(CSV)"를 선택합니다.
④저장 위치 및 파일명 설정: 내보낼 파일의 저장 위치와 파일명을 지정합니다.
⑤마무리: 설정을 마치면 "다음" 또는 "완료" 버튼을 클릭하여 내보내기 프로세스를 완료합니다.
하지만 매번 아웃룩의 메일을 상기와 같은 절차로 엑셀화시키는 것은 상당히 비효율적이기 때문에, 이를 자동화해봤습니다.
2. 메일의 본문, 발신자, 발신일 등의 모든 정보를 엑셀로 추출가능
하기 이미지와 같이 VBA의 Outlook.Application, Outlook.MAPIFolder등의 카테고리의 메소드를 활용하여, 현재 내 아웃룩 메일 수신함에 있는 메일내용을 특정 일자, 특정 제목의 메일만 추출하여 엑셀에 자동으로 집계해줄 수 있습니다.
이 상황에서는 내 받은 편지함내의 모든 메일 중 본인이 지정한 날짜, 제목만 조건으로 추출하였으나, 그 외에도 하기와 같은 아웃룩 메일 요소가 모두 Controll가능한 범위에 있기 때문에 상세사항은 하기를 참조 부탁드립니다.
↓아웃룩 메일에서 추출 가능, 컨트롤 가능 요소일람
속성명 | 설명 |
To | 수신인 |
CC | 참조인 |
BCC | 숨은 참조인 |
ReceivedTime | 수신일자 |
Subject | 제목 |
Body | 본문 |
HTMLBody | HTML형식의 본문 |
SenderName | 송신자명 |
SenderEmailAddress | 송신자 메일주소 |
SentOn | 송신일자 |
ReceivedByName | 수신자명 |
Importance | 중요도 (2:높음、0:낮음、1:중간) |
Size | 메일아이템의 용량 (바이트 기준) |
CreationTime | 메일이 작성된 날짜 |
LastModificationTime | 메일을 갱신한 날짜 |
ReminderTime | 리마인더의 날짜 |
BodyFormat | 메일 형식의 종류 (1:텍스트、2:HTML、,3:리치텍스트) |
EntryID | EntryID(메일 아이템의 고유넘버) |
3. 실제 적용사례, 자동화 TOOL의 소개
실제 적용사례로서 매일 타 회사에서 오는 메일의 첨부파일, 메일 본문에 있는 이미지 파일들을 매번 저장하고, 메일 본문을 하나씩 체크하면서 특정 문서를 작성하는 일을 하고 있었습니다만, 하기와 같이 개시일, 종료일, 제목 키워드를 넣으면 해당 메일만을 추출하여 메일의 연관요소(상기 일람참조)를 메일로 가져오도록 작업했습니다.
또한, 해당 메일에 첨부되어 있는 첨부파일도 VBA의 FOR 반복문과 Outitem.Attachments.Item(i) 라는 메소드를 활용하여 해당 파일내의 모든 첨부파일(메일 본문에 있는 그래프등의 이미지까지 포함)을 제가 지정한 경로에 추출하는 TOOL을 만들어 보았습니다.
상세 엑셀 TOOL이 필요하신 분은 댓글 부탁드립니다.