엑셀 '메일 보내기' VBA 매크로 :: Send_Email 명령문 

설명

Send_Email 명령문은 엑셀 VBA의 Outlook 라이브러리를 참고합니다. 엑셀과 아웃룩을 연동하여 첨부파일, 예약발송, 표 붙여넣기 등의 다양한 부가기능으로 '엑셀 메일 보내기'를 자동화합니다.

Send_Email 명령문에 대한 자세한 설명은 퀵 VBA 7 강 – 메일 보내기 자동화 강의를 확인하세요.

엑셀 선택 범위를 VBA 코드에 사용하기 위한 HTML 형식 문장으로 변경하는 방법은 관련 포스트를 확인하세요.

패치노트
  • 2019년 11월 5일 :
    DeliveryTime 인수를 추가하였습니다. (예약발송 시간을 설정, 기본값 : 지금 보내기)
  • 2019년 12월 10일 :
    PasteAsImage 인수를 추가하였습니다. (그림형식으로 붙여넣기 여부를 결정, 기본값 : 표형식으로 붙여넣기)
예제파일 다운로드

공식설명파일구분마지막수정일파일형식파일다운로드
34310[엑셀VBA함수] CreateTOC :: 목차 만들기 자동화예제파일2020-01-08XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
34307[엑셀VBA함수] CreateTOC :: 목차 만들기 자동화추가기능2020-01-08XLAM엑셀 VBA 명령문(UDF) 예제파일다운로드
34233[엑셀VBA함수] ImageLookup :: 실시간 이미지 불러오기 함수추가기능2020-01-07XLAM엑셀 UDF 시트함수 파일다운로드
34230[엑셀VBA함수] ImageLookup :: 실시간 이미지 불러오기 함수예제파일2020-01-07XLSM엑셀 UDF 시트함수 파일다운로드
34155[VBA예제] SortArray 명령문예제파일2020-01-05XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33847[VBA예제] MeasureRange 명령문예제파일2020-01-05XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33694[VBA예제] cvRng 명령문예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33682[VBA예제] vbFileSearch 명령문예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33659[VBA예제] ListFiles 명령문예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33643[VBA예제] IsInArray 명령문예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33620[VBA예제] SplitFileExt 명령문예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33596[VBA예제] ArrayDimensnion 명령문예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33027[VBA예제] Send_Email 메일 보내기 명령문예제파일2019-12-09XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
33009[VBA예제] 줄바꿈 문제 해결 (엑셀 팁)예제파일2019-11-24XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
32057[VBA예제] Page_Setup :: 인쇄 페이지 레이아웃 설정예제파일2019-12-10XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
32029[엑셀VBA함수] DecodeURL :: URL 주소 한글/영문값으로 디코딩 반환예제파일2019-11-21XLSM엑셀 UDF 시트함수 파일다운로드
32009[엑셀VBA함수] EncodeURL :: 한글/영문 URL 주소 인코딩 변환예제파일2019-11-21XLSM엑셀 UDF 시트함수 파일다운로드
31425[VBA예제] ValidFileName :: 파일이름 사용가능여부 확인예제파일2019-12-10XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
31397[VBA예제] FileSequence :: 파일이름 순번으로 저장하기예제파일2019-12-10XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
31378[엑셀VBA함수] GetDesktopPath :: 사용자 바탕화면 경로 반환예제파일2019-12-10XLSM엑셀 UDF 시트함수 파일다운로드
31360[VBA예제] FileExists :: 선택경로 파일존재여부 확인예제파일2019-12-15XLSM엑셀 VBA 명령문(UDF) 예제파일다운로드
30522[VBA예제] isListBoxSelected :: 리스트박스 값선택여부 확인예제파일2019-12-10ZIP엑셀 VBA 명령문(UDF) 예제파일다운로드
관련 포스트

Send_Email 메일보내기 명령문 전체 코드

Send_Email 명령문 상세설명

사용예제

메일 보내기 Send_Email 사용예제 gif_

Send_Email 명령문으로 엑셀 메일 보내기를 자동화합니다.

인수 설명

Send_Email 명령문에는 총 10개의 인수가 사용됩니다. 각 인수는 필요에 따라 변경해서 사용 가능합니다.

인수명데이터구분설명기본값
MailToString받을 사람의 메일주소입니다.
SubjectString메일 제목입니다.
HTMLStringStringHTML 형식의 메일 본문입니다.
PasteRngRange[선택인수] 메일에 붙여넣기 할 범위입니다.Nothing
CCToString[선택인수] 참조 메일입니다.""
BCCToString[선택인수] 숨은참조 메일입니다.""
AttachFilePathString[선택인수] 첨부파일 파일 경로입니다.""
PathDelimiterString[선택인수] 여러 개의 첨부파일이 있을 시, 파일 경로를 구분할 구분자입니다."|"
DeliveryTimeDate[선택인수] 예약발송 시간을 지정합니다.0
ImmediateSendBoolean[선택인수] 작성한 메일을 검토없이 바로 보낼지 여부를 결정합니다.False
PasteAsImageBoolean[선택인수] True일 경우 그림형식으로 붙여넣기 합니다. False일 경우 표형식으로 붙여넣기 합니다.False
변수 설명

본 명령문은 VBA의 Outlook 16.0 Object Library를 참조합니다. 따라서 명령문 작성 전, 반드시 '도구' – '참조' 에서 Microsoft Outlook 16.0 Object Library 를 활성화 합니다.

아웃룩 라이브러리 추가

VBA 편집기 '도구' – '참조' 에서 아웃룩 라이브러리를 활성화합니다.

변수명데이터구분설명
AppOutlookOutlook.Application아웃룩 프로그램입니다.
newEmailOutlook.MailItem새로 작성할 메일 항목입니다.
pageInspectorOutlook.Inspector워드에디터를 불러오기 위한 상위개체 입니다.
pageEditorObject아웃룩 워드에디터입니다.
varFilePathVariant첨부파일 파일경로를 나열한 배열입니다.
FileCountLong첨부파일 개수입니다.
iLongFor 반복문 연번입니다.
wdPasteDefaultVariant워드에디터에 붙여넣기 할 형식입니다. (기본값)
명령문 동작 원리
  1. 변수를 설정한 뒤, 개체 변수를 지정합니다. (Outlook 개체 변수 설정을 위해, '도구'-'참조' 에서 Outlook 라이브러리를 반드시 활성화합니다.)
  2. 입력한 예약발송 시간이 올바르지 않은 형식일 경우 안내메세지를 띄웁니다.
  3. 첨부파일이 1개라도 있을 시, String 으로 입력된 값을 배열 형태로 변환합니다.
  4. 메일의 각 항목을 설정합니다.
    – To : 받을사람
    – CC : 참조
    – BCC : 숨은참조
    – Subject : 메일제목
    – HTMLBody : HTML 형식의 메일 본문
  5. 첨부파일이 있을 시, For문으로 배열을 하나씩 돌아가며 메일에 첨부파일을 더합니다.
    – Attachments.Add ( 파일경로, 첨부파일숨김여부, 파일순서) : 첨부파일 추가
  6. 예약발송시간이 지정되지 않았을 시, 예약발송시간을 현재시간으로 설정합니다.
  7. 메일 본문에 붙여넣기 할 범위가 있을 시, 메일 본문 마지막 지점을 찾아 해당 범위를 복사/붙여넣기 합니다.
    – 범위는 기본형식(wdPasteDefault)으로 붙여넣기 됩니다. 워드에디터의 다른 붙여넣기 형식이 궁금하신 분은 관련 링크를 참고하세요.
    – 만일 PasteAsImage 인수가 True일 경우 PasteSelection 을 통해 그림형식으로 붙여넣기 합니다.
  8.  즉시 메일 보내기 여부가 True 일 경우 메일을 발송합니다.
  9. 할당된 변수를 초기화 합니다. (여러개 메일 발송 시 동작속도 개선)

댓글 남기기

avatar
  현재 페이지 댓글알림 신청  
알림 설정