Skip to main content

Excel 튜토리얼 – Excel에서 이메일 보내기

Author: Siluvia Last Modified: 2025-05-21

일반적으로 우리는 Outlook, Gmail 등과 같은 이메일 클라이언트를 사용하여 이메일을 보냅니다. 그러나 많은 사람들이 Excel 워크북에 데이터를 저장하고 작업 중에 다른 사람에게 일부 데이터를 보내야 할 필요가 있습니다. 따라서 Excel 워크북에서 직접 이메일을 보내는 것이 이메일 클라이언트를 사용하는 시간을 절약할 수 있습니다. 이 단계별 튜토리얼은 다양한 조건에서 Excel에서 이메일을 보내는 방법을 보여줍니다.

참고: 다음 방법을 적용하기 전에 컴퓨터에 Outlook 이메일 클라이언트를 구성하고 기본 이메일 클라이언트로 설정해야 합니다.

 목차: [ 숨기기 ]

(아래 또는 오른쪽의 목차에서 원하는 제목을 클릭하여 해당 챕터로 이동하세요.)

1. Excel에서 이메일 보내기의 기본 사항

이 섹션에서는 Excel에서 이메일을 보내는 기본 사항을 소개합니다.

1.1 Excel 내장 함수를 사용하여 Excel에서 이메일 보내기

Excel에서 받는 사람, 제목, 참조 및 본문 필드만 포함된 간단한 이메일을 보내고 싶다면, Excel의 내장 기능이 도움이 될 수 있습니다.


1.1.1 수식을 사용하여 Excel에서 이메일 보내기

아래 표에 표시된 것처럼, 주어진 필드를 기준으로 Excel에서 다른 이메일을 보내려면, 주어진 필드의 셀 참조를 사용하여 다양한 하이퍼링크 수식을 생성할 수 있습니다. 이메일 하이퍼링크를 생성한 후, 자동으로 이메일을 보내기 위해 필요한 하이퍼링크를 클릭할 수 있습니다.

참고: To 또는 Cc 필드에 여러 수신자가 있는 경우, 세미콜론으로 구분하세요.

이 섹션은 이메일 주소 추가, 참조 수신자, 제목 줄, 본문 텍스트를 하이퍼링크 수식에 각각 추가하는 단계를 보여주기 위해 네 부분으로 나뉩니다. 다음과 같이 진행하세요.

"하이퍼링크" 함수의 구문과 인수는 다음과 같습니다.

구문

HYPERLINK(link_location, [friendly_name])

인수

"Link_location" (필수): 열려야 할 문서의 경로와 파일 이름;
팁: 이 튜토리얼에서는 이메일을 위한 모든 필드, 예를 들어 수신자의 이메일 주소, 참조 수신자, 제목 줄 및 본문 텍스트를 첫 번째 인수 "link_location"에 넣어야 합니다.
"Friendly_name" (선택 사항): 셀에 표시되는 점프 값입니다.

1.1.1.1 이메일 주소를 하이퍼링크 수식에 추가

여기서는 이메일 수신자를 추가하기 위해 수식의 일부로 "mailto:"를 사용합니다. 이 예에서 첫 번째 수신자의 이메일 주소는 셀 B2에 있으므로 "mailto:"를 추가하고 셀 B2를 참조해야 합니다.

“mailto:”&B2

1. 하이퍼링크를 표시할 셀을 선택하세요. 이 경우, 저는 셀 F2를 선택합니다.

2. 그런 다음 다음 수식을 입력하세요.

=HYPERLINK("mailto:"&B2)

참고: "Enter" 키를 누르면 아래 스크린샷과 같이 하이퍼링크가 생성됩니다. 링크를 클릭하면 Outlook 이메일이 생성되고 수신자의 이메일 주소가 자동으로 받는 사람 필드에 입력됩니다.

수신자의 이메일 주소가 이제 하이퍼링크 수식에 추가되었습니다. 제목 줄, 참조 수신자, 본문 텍스트를 필요에 따라 추가하려면 다음 단계를 계속 진행하세요.


1.1.1.2 하이퍼링크 수식에 참조 추가하기

하이퍼링크 함수에 참조인(Cc)을 추가하려면, 수식의 일부로 "?cc="를 다음과 같이 추가하세요.

"?cc=" & C2
C2에 숨은 참조 수신자의 이메일 주소가 포함되어 있는 경우입니다.

셀 F2의 수식은 다음과 같아야 합니다:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2)


1.1.1.3 하이퍼링크 수식에 제목 줄 추가

하이퍼링크 함수에 제목 줄을 추가하려면, 수식의 일부로 "&subject="를 다음과 같이 추가하세요.

"&subject="& D2
D2에 이메일 제목이 포함된 경우.

셀 F2의 수식은 이제 다음과 같이 보여야 합니다:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2)


1.1.1.4 하이퍼링크 수식에 줄 바꿈이 있는 본문 추가

마지막 단계는 하이퍼링크 수식에 본문 텍스트를 추가하는 것입니다. 예시에서 볼 수 있듯이 E2의 두 줄 텍스트는 개행으로 구분되어 있으며, 이메일 본문에서도 개행을 유지하고 싶습니다. 이 경우 Outlook이 개행을 인식할까요? 확인해봅시다.

하이퍼링크 수식에 본문 텍스트를 추가하려면, 수식의 일부로 "&body="를 추가해야 합니다.

"&body="& E2
E2에는 이메일의 본문 텍스트가 포함되어 있습니다.

셀 F2의 수식은 이제 다음과 같이 표시됩니다:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2)

참고: "Enter" 키를 누르고 링크를 클릭하면 새 이메일에서 이메일 본문 내용이 같은 줄에 표시되는 것을 볼 수 있습니다.

이메일 본문을 별도의 줄로 표시하려면, 개행 문자 코드 "%0A"를 텍스트에 추가하여 셀 텍스트를 수정해야 합니다. 스크린샷을 참조하세요:


1.1.1.5 하이퍼링크에 표시할 텍스트 지정

위의 단계에서 우리는 이메일 필드로 Link_location 인수를 완료했습니다. 이 섹션에서는 다음 인수 [friendly_name]을 완료할 것입니다.

이 경우, 하이퍼링크 셀이 'xx에게 이메일 보내기'라는 텍스트를 표시하도록 하고 싶습니다. 여기서 xx는 A2에 있는 수신자의 이름입니다. 따라서 F2의 수식은 다음과 같이 변경되어야 합니다:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2, "Email to "&A2)

결과를 얻으려면 "Enter" 키를 누르세요.

이 수식 셀을 선택하고 "자동 채우기 핸들"을 아래로 드래그하여 다른 이메일 하이퍼링크를 생성하세요. 스크린샷을 참조하세요:


1.1.2 Excel에서 하이퍼링크 함수로 이메일 보내기

위의 하이퍼링크 수식을 사용하는 것 외에도 Excel에서 "하이퍼링크 만들기" 기능을 사용하여 이메일 하이퍼링크를 수동으로 생성할 수 있습니다. 이 섹션에서는 단계별로 설명합니다.

1. 하이퍼링크를 삽입하려는 이메일을 마우스 오른쪽 버튼으로 클릭하고, 오른쪽 클릭 메뉴에서 "링크"를 선택합니다.

2. 팝업되는 "하이퍼링크 만들기" 대화 상자에서 다음과 같이 설정해야 합니다.

2.1) 왼쪽 창에서 "E-mail Address"를 선택하세요.
2.2) "표시할 텍스트" 텍스트 상자에 셀에 표시할 텍스트를 입력하세요;
팁: 이 대화 상자에서는 셀 참조를 사용할 수 없으므로 이메일 필드를 다음과 같이 수동으로 입력해야 합니다.
2.3) "이메일 주소" 텍스트 상자에 다음 이메일 주소를 입력해야 합니다.
mailto:email address
텍스트 'email address'를 실제 이메일 주소로 바꾸세요. 이메일 주소가 여러 개 있는 경우, 세미콜론으로 구분하세요.
2.4) "제목" 텍스트 상자에서 이메일 제목과 이메일 본문을 바로 지정할 수 있습니다. 다음과 같이 설정하세요:
이메일 제목&본문=이메일 본문
이 경우, "Monthly sale&body=Hi,%0AEmail received"를 입력합니다.
제목이 월간 판매인 경우;
이메일 본문은:
안녕하세요,
이메일을 받았습니다. ("%0A"는 Outlook에서 인식할 수 있는 개행 문자 코드입니다)
2.5) 하이퍼링크를 저장하려면 "확인" 버튼을 클릭하세요. 스크린샷을 참조하세요.

하이퍼링크를 클릭하면 아래 스크린샷에 표시된 대로 지정된 받는 사람, 제목 및 본문 필드가 포함된 Outlook 이메일이 생성됩니다.

참고:

1) 이 방법을 사용하면 이메일 하이퍼링크를 각각 수동으로 생성해야 했습니다.
2) 이 방법으로 이메일에 Cc 필드를 추가할 수 없습니다. 따라서 Cc 필드가 필요하다면 새로 열리는 이메일 창에서 추가하세요.

1.2 VBA 스크립트를 사용하여 여러 셀의 수신자에게 이메일 보내기

위의 예에서 볼 수 있듯이 여러 이메일 주소가 세미콜론으로 구분되어 셀에 표시됩니다. 아래 스크린샷에 표시된 것처럼 이메일 주소 목록이 있고 모든 주소로 이메일을 보내거나 개별 이메일을 보내고 싶다면, 다음 VBA 코드가 도움이 될 수 있습니다.


1.2.1 VBA 스크립트를 사용하여 여러 셀에 있는 수신자에게 이메일 보내기

1. 이메일을 보내고자 하는 모든 이메일 주소가 포함된 워크시트에서 "Alt" + "F11" 키를 눌러 "Microsoft Visual Basic for Applications" 창을 엽니다.

2. "Microsoft Visual Basic for Applications" 창에서 "삽입" > "모듈"을 클릭한 다음, 다음 코드를 "모듈(코드)" 창에 붙여넣습니다.

VBA 코드: 이메일 주소 목록에 이메일 보내기

Sub sendmultiple()
'updateby Extendoffice 20220802
    Dim xOTApp As Object
    Dim xMItem As Object
    Dim xCell As Range
    Dim xRg As Range
    Dim xEmailAddr As String
    Dim xTxt As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Set xOTApp = CreateObject("Outlook.Application")
    For Each xCell In xRg
        If xCell.Value Like "*@*" Then
            If xEmailAddr = "" Then
                xEmailAddr = xCell.Value
            Else
                xEmailAddr = xEmailAddr & ";" & xCell.Value
            End If
        End If
    Next
    Set xMItem = xOTApp.CreateItem(0)
    With xMItem
        .To = xEmailAddr
        .Subject = "Test"
        .Body = "Dear " _
                & vbNewLine & vbNewLine & _
                "This is a test email " & _
                "sending in Excel"
        .Display
    End With
End Sub

3. 코드를 실행하려면 "F5" 키를 누르세요. 그러면 "Kutools for Excel" 대화 상자가 나타납니다. 이메일 주소 목록을 선택하고 "확인"을 클릭하세요.

A screenshot of the 'Kutools for Excel' dialog box asking for the email addresses list

참고:

1) 위의 대화 상자가 나타나지 않게 하고 코드에서 이메일 주소 범위를 직접 지정하려면, 이 줄을 바꾸세요:
Set xRg = Application.InputBox("주소 목록을 선택하세요:", "Kutools for Excel", xTxt, , , , ,8)
와 함께
Set xRg = 범위("A2:A7")
2) 다음 줄에서 이메일 제목과 본문을 직접 지정할 수 있습니다:
.Subject = "Test"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) 다음의 새 메시지 창을 열지 않고 이메일을 직접 보내려면 이 줄을 바꿔야 합니다:
디스플레이
와 함께
.보내기

코드를 실행한 후, 선택된 범위의 모든 이메일 주소가 메시지 창의 받는 사람 필드에 표시됩니다. 스크린샷을 참조하세요:

A screenshot of the email message window with all email addresses filled in the To field


1.2.2 VBA 스크립트를 사용하여 셀에 나열된 각 수신자에게 개별적으로 이메일 보내기

위의 코드는 선택한 범위에 있는 모든 이메일 주소를 메시지 창의 수신자 필드에 추가합니다. 각 셀에 나열된 이메일 주소로 개별적으로 이메일을 보내고 서로의 이메일 주소를 보지 못하게 하려면 다음 VBA 스크립트를 시도해 볼 수 있습니다.

1. 이메일을 보내고자 하는 모든 이메일 주소가 포함된 워크시트에서 "Alt" + "F11" 키를 눌러 "Microsoft Visual Basic for Applications 창"을 엽니다.

2. "Microsoft Visual Basic for Applications" 창에서 "삽입" > "모듈"을 클릭한 다음, 아래 코드를 모듈(코드) 창에 붙여넣습니다.

VBA 코드: 각 셀에 나열된 이메일 주소로 개별적으로 이메일 보내기

Sub SendEmailToAddressInCells()
'Updated by Extendoffice 20220802
    Dim xRg As Range
    Dim xRgEach As Range
    Dim xRgVal As String
    Dim xAddress As String
    Dim xOutApp As Outlook.Application
    Dim xMailOut As Outlook.MailItem
    On Error Resume Next
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the addresses list", "KuTools For Excel", xAddress, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xRg = xRg.SpecialCells(xlCellTypeConstants, xlTextValues)
    For Each xRgEach In xRg
        xRgVal = xRgEach.Value
        If xRgVal Like "?*@?*.?*" Then
            Set xMailOut = xOutApp.CreateItem(olMailItem)
            With xMailOut
                .To = xRgVal
                .Subject = "Test"
                .Body = "Dear " _
                      & vbNewLine & vbNewLine & _
                        "This is a test email " & _
                        "sending in Excel"
                .Display
                '.Send
            End With
        End If
    Next
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

3. 그런 다음 "도구" > "참조"를 클릭합니다. "참조 – VBAProject" 대화 상자에서 "Microsoft Outlook16.0 Object Library" 상자를 찾아 체크한 후 "확인" 버튼을 클릭하여 변경 사항을 저장합니다.

A screenshot of the 'References – VBAProject' dialog box in Excel with the Microsoft Outlook 16.0 Object Library option selected

4. 코드를 실행하려면 "F5" 키를 누르면 "Kutools for Excel" 대화 상자가 나타납니다. 이메일 주소 목록을 선택하고 "확인"을 클릭하세요.

A screenshot of the 'Kutools for Excel' dialog box asking for the email address list selection

참고:

1) 위의 대화 상자가 나타나지 않게 하고 코드에서 이메일 주소 범위를 직접 지정하려면, 이 줄을 바꾸세요:
Set xRg = Application.InputBox("주소 목록을 선택하세요:", "Kutools for Excel", xTxt, , , , ,8)
와 함께
Set xRg = 범위("A2:A7")
2) 다음 줄에서 이메일 제목과 본문을 직접 지정할 수 있습니다:
.Subject = "Test"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) 다음 메시지 창을 열지 않고 이메일을 직접 보내려면 이 줄을 바꿔야 합니다:
디스플레이
와 함께
.보내기

이 예에서는 선택한 범위에 여섯 개의 이메일 주소가 있으므로, 아래 스크린샷에 표시된 것처럼 To 필드에 개별 이메일 주소가 나열된 여섯 개의 Outlook 메시지 창이 자동으로 생성됩니다.

A screenshot of multiple Outlook message windows with separate email addresses in the To field

5. 마지막으로, "보내기" 버튼을 클릭하여 이메일을 하나씩 보냅니다.


2. Excel에서 보낸 이메일에 첨부 파일 또는 Outlook 서명 삽입하기 (VBA 스크립트 사용)

이 섹션에서는 Excel에서 보낸 이메일에 첨부 파일 또는 Outlook 기본 서명을 삽입하는 방법을 보여드립니다.

2.1 Excel에서 보낸 이메일에 첨부 파일 삽입

여기에서는 첨부 파일을 삽입하는 다양한 경우를 설명하며, 필요에 따라 방법을 선택할 수 있습니다. 이 섹션에서는 다음 링크를 클릭하여 해당 방법으로 이동할 수 있습니다:


2.1.1 특정 파일을 첨부 파일로 이메일 보내기

다음 VBA 코드를 적용하여 Excel에서 폴더의 하나 이상의 파일을 첨부 파일로 이메일로 보낼 수 있습니다.

1. "Alt" + "F11" 키를 누르세요.

2. "Microsoft Visual Basic for Applications" 창이 열리면, "삽입" > "모듈"을 클릭합니다. 그런 다음 다음 VBA 코드를 모듈(코드) 창에 붙여넣습니다.

VBA 코드: Excel에서 폴더의 파일을 첨부 파일로 이메일 보내기

Sub EmailWithAttachments()
'Updated by Extendoffice 20220802
    Dim xStrFile As String
    Dim xFilePath As String
    Dim xFileDlg As FileDialog
    Dim xFileDlgItem As Variant
    Dim xOutApp As Outlook.Application
    Dim xMailOut As Outlook.MailItem
    Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
    If xFileDlg.Show = -1 Then
        With xMailOut
            .BodyFormat = olFormatRichText
            .To = "xxx@aaa.com"
            .Subject = "test"
            .HTMLBody = "test"
            For Each xFileDlgItem In xFileDlg.SelectedItems
                .Attachments.Add xFileDlgItem
            Next xFileDlgItem
            .Display
        End With
    End If
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

참고:

1) ".To = xxx@aaa.com" 줄에서 "xxx@aaa.com"을 자신의 수신자 이메일 주소로 바꾸세요;
2) ".Subject = "test"" 및 ".HTMLBody = "test"" 줄에서 이메일 제목과 이메일 본문을 각각 변경하세요.
3) 필요에 따라 참조(Cc) 및 숨은 참조(Bcc) 수신자를 추가할 수 있습니다. 아래의 "To = xxx@aaa.com" 줄 아래에 다음 두 줄을 추가하세요.
.CC = "email address"
.BCC = "email address"

3. 그런 다음 "도구" > "참조"를 클릭합니다. "참조 - VBAProject" 대화 상자에서 "Microsoft Outlook16.0 Object Library" 상자를 찾아 선택한 후 "확인" 버튼을 클릭하여 변경 사항을 저장합니다.

A screenshot of the 'References – VBAProject' dialog box in Excel with the Microsoft Outlook 16.0 Object Library option selected

4. 코드를 실행하려면 "F5" 키를 누르세요. 그러면 "찾아보기" 창이 나타납니다. 이메일에 첨부할 파일을 선택한 후 "확인"을 클릭하세요.

A screenshot of the 'Browse' window for selecting files to attach to an email in Exce

그런 다음 메시지 창이 나타납니다. 선택한 파일이 첨부 필드에 첨부 파일로 표시됩니다.

A screenshot of the Outlook message window with selected files displayed as attachments


2.1.2 현재 워크시트를 첨부 파일로 이메일 보내기

현재 워크시트를 Excel에서 첨부 파일로 이메일로 보내고 싶다면, 이 섹션의 VBA 스크립트를 적용할 수 있습니다.

1. "Alt" + "F11" 키를 누르세요.

2. "Microsoft Visual Basic for Applications" 창이 열리면, "삽입" > "모듈"을 클릭합니다. 그런 다음 다음 VBA 코드를 "모듈 (코드)" 창에 붙여넣습니다.

VBA 코드: 현재 워크시트를 첨부 파일로 이메일 보내기

Sub SendWorkSheet()
'Update by Extendoffice 20220802
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte features"
    .Body = "Please check and read this document."
    .Attachments.Add Wb2.FullName
    .Display
    '.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub

참고:

1) "To = xxx@aaa.com" 줄에서 "xxx@aaa.com"을 실제 수신자의 이메일 주소로 바꾸세요. 여러 이메일 주소가 필요한 경우, 세미콜론으로 구분하세요.
2) ".Subject = "kte features"" 및 ".Body = " Please check and read this document."" 줄에서 이메일 제목과 이메일 본문을 각각 변경합니다.
3) 다음 두 줄에서:
.CC = "email address"
.BCC = "email address"
cc 및 bcc 수신자를 추가하려면, 해당 줄의 "이메일 주소" 텍스트를 필요한 이메일 주소로 바꾸세요.
cc 및 bcc 수신자가 필요하지 않은 경우, 각 줄 앞에 아포스트로피 ' 를 추가하세요.

3. 코드를 실행하려면 "F5" 키를 누르세요. 그러면 현재 워크시트가 Excel 워크북으로 저장되고 메시지 창에 첨부 파일로 자동으로 삽입됩니다. 스크린샷을 참조하세요.

A screenshot of the Outlook message window with the current worksheet saved and attached as an Excel workbook

참고: 현재 워크시트만 포함된 첨부된 워크북은 원래 워크북과 동일한 이름을 가집니다. 또한 코드를 실행한 시간이 워크북 이름에 추가됩니다.


2.1.3 현재 워크북을 첨부 파일로 이메일 보내기

Excel에서 현재 워크시트를 첨부 파일로 이메일로 보내는 VBA 코드를 배운 후, 여기서는 전체 워크북을 첨부 파일로 이메일로 보내는 데 도움이 되는 또 다른 VBA 스크립트를 제공합니다. 다음과 같이 진행하세요.

1. "Alt" + "F11" 키를 누르세요.

2. 열리는 "Microsoft Visual Basic for Applications" 창에서 "삽입" > "모듈"을 클릭합니다. 그런 다음 다음 VBA 코드를 모듈(코드) 창에 붙여넣습니다.

VBA 코드: 현재 워크북을 첨부 파일로 이메일 보내기

Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

참고:

1) ".To = xxx@aaa.com" 줄에서 "xxx@aaa.com"을 실제 수신자의 이메일 주소로 바꿔 주세요. 여러 이메일 주소가 필요하다면 세미콜론으로 구분해 주세요.
2) ".Subject = "kte features"" 및 ".Body = " Please check and read this document."" 줄에서 이메일 제목과 이메일 본문을 각각 변경합니다.
3) 다음 두 줄에서:
.CC = "email address"
.BCC = "email address"
cc 및 bcc 수신자를 추가하려면, 해당 줄의 "email address" 텍스트를 필요한 이메일 주소로 바꾸세요.
cc 및 숨은 참조 수신자가 필요하지 않은 경우 각 줄 앞에 작은따옴표 '를 추가하세요.

3. "F5" 키를 눌러 코드를 실행하면 현재 워크북이 자동으로 메시지 창에 첨부 파일로 삽입됩니다. 스크린샷을 참조하세요:

A screenshot of the Outlook message window with the current workbook attached automatically


2.1.4 모든 테이블을 PDF 첨부 파일로 이메일 보내기

대부분의 사람들은 Excel 워크북을 PDF 파일로 저장한 후 다른 사람에게 첨부 파일로 보내는 경향이 있습니다. 이 섹션에서는 현재 열려 있는 워크북을 PDF 첨부 파일로 하여 Excel에서 직접 이메일을 보내는 방법을 보여드리겠습니다. 워크북을 수동으로 PDF 파일로 저장할 필요가 없습니다.

1. "Alt" + "F11" 키를 누르세요.

2. 열리는 "Microsoft Visual Basic for Applications" 창에서 "삽입" > "모듈"을 클릭합니다. 그런 다음 다음 VBA 코드를 모듈(코드) 창에 붙여넣습니다.

VBA 코드: 모든 테이블을 PDF 첨부 파일로 이메일 보내기

Sub SendWorkBookAsPDF()
'Update 20220803
Dim Wb As Workbook
Dim FilePath As String
Dim FileName As String
Dim xOutApp As Object
Dim xOutMail As Object
On Error Resume Next

Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) - 1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"
FilePath = Environ$("temp") & "\" & FileName

Wb.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
    FilePath, Quality:=xlQualityStandard, _
    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
    False

Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
With xOutMail
       .To = "xxx@aaa.com"
       .CC = "Email Address"
       .BCC = "Email Address"
       .Subject = "test"
       .Body = "test"
       .Attachments.Add FilePath
       .Display   'or use .Send
   End With
Kill FilePath
Set xOutMail = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub

참고:

1) ".To = xxx@aaa.com" 줄에서 "xxx@aaa.com"을 실제 수신자의 이메일 주소로 바꾸세요. 여러 이메일 주소가 필요한 경우, 세미콜론으로 구분하세요.
2) .Subject = "test" 및 .Body = "test" 줄에서 이메일 제목과 본문을 각각 변경합니다.
3) 다음 두 줄에서:
.CC = "Email Address"
.BCC = "Email Address"
cc 및 bcc 수신자를 추가하려면, 해당 줄의 "Email Address" 텍스트를 필요한 이메일 주소로 바꾸세요.
cc 및 bcc 수신자가 필요하지 않은 경우, 각 줄 앞에 작은따옴표 '를 추가하세요.
4) PDF 파일의 이름은 원본 워크북의 이름과 동일합니다. 코드를 실행하는 시간도 워크북 이름에 추가됩니다. 파일 이름에 타임스탬프를 추가할 필요가 없다면, 다음 줄에서 & Format(Now, "dd-mmm-yy h-mm-ss")을 제거하세요.
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) -1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"

3. 코드를 실행하려면 "F5" 키를 누르세요. 그러면 현재 워크북이 PDF 파일 첨부로 새로운 메시지 창에 자동으로 삽입됩니다. 스크린샷을 참조하세요:

A screenshot of the Outlook message window with the current workbook attached as a PDF file


2.1.5 현재 워크시트를 PDF 첨부 파일로 이메일 보내기

예를 들어, "Monthly sales"라는 이름의 통합 문서가 있고, "sales report"라는 이름의 워크시트에서 판매 보고서 참조 테이블을 완료했으며 이 워크시트를 PDF 파일로 동료에게 보내고 싶다고 가정해 보겠습니다. 다음 VBA 코드는 이를 도와줄 수 있습니다.

1. "Alt" + "F11" 키를 누르세요.

2. 열려 있는 "Microsoft Visual Basic for Applications" 창에서 "삽입" > "모듈"을 클릭합니다. 그런 다음 아래의 VBA 코드를 모듈(코드) 창에 붙여넣습니다.

VBA 코드: 현재 워크시트를 PDF 첨부 파일로 이메일 보내기

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .Body = "test"
    .Attachments.Add FileName
    .Display
    '.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

참고:

1) ".To = xxx@aaa.com" 줄에서 "xxx@aaa.com"을 실제 수신자의 이메일 주소로 바꾸세요. 여러 이메일 주소가 필요한 경우, 세미콜론으로 구분하세요.
2) .Subject = "test" 및 .Body = "test" 줄에서 이메일 제목과 이메일 본문을 각각 변경합니다.
3) 다음 두 줄에서:
.CC = "Email Address"
.BCC = "Email Address"
cc 및 숨은 참조 수신자를 추가하려면, 해당 줄의 "이메일 주소" 텍스트를 필요한 이메일 주소로 바꾸세요.
cc 및 bcc 수신자가 필요하지 않은 경우 각 줄 앞에 아포스트로피 '를 추가하세요.
4) PDF 파일의 이름은 원본 워크북 이름_원본 워크시트 이름이 됩니다. 이 경우 PDF의 이름은 Monthly sales_sales report가 됩니다.

3. 코드를 실행하려면 "F5" 키를 누르세요. 그러면 현재 워크시트가 자동으로 새 메시지 창에 PDF 파일 첨부로 삽입됩니다. 스크린샷을 참조하세요:

A screenshot of the Outlook message window with the current worksheet attached as a PDF file


2.2 Excel에서 보내는 이메일에 Outlook 서명 삽입

위의 사례를 예로 들어, 위의 VBA 코드를 적용하여 현재 워크시트를 Excel에서 PDF 파일 첨부로 보내지만, Outlook 서명이 메시지 창에 추가되지 않습니다. Excel에서 보낸 이메일에 Outlook 기본 서명을 유지하려면 다음 방법이 도움이 됩니다.

아래에 두 가지 VBA 코드가 나열되어 있습니다.

VBA 코드1: 이 코드는 Outlook 서명을 유지하는 데 도움이 됩니다.

VBA 코드2: 이 코드는 현재 워크시트를 PDF 첨부 파일로 이메일 보내는 데 도움이 됩니다.

VBA 코드1: Outlook 서명 유지

.HTMLBody = "Email body" & "
" & .HTMLBody

VBA 코드2: 현재 워크시트를 PDF 첨부 파일로 이메일 보내기

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .Body = "test"
    .Attachments.Add FileName
    .Display
    '.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

1. 일반적으로 "Alt" + "F11" 키를 눌러 "Microsoft Visual Basic for Applications" 창을 열어야 합니다.

2. "Microsoft Visual Basic for Applications" 창에서 "삽입" > "모듈"을 클릭합니다. 그런 다음 위의 VBA 코드2를 모듈(코드) 창에 붙여넣습니다.

3. Excel에서 보낸 이메일에 Outlook 기본 서명을 유지하려면, VBA 코드2를 다음과 같이 수정해야 합니다:

1) ".Body" 줄을 "VBA code1"로 바꾸기;
2) "With OutlookMail" (또는 다른 코드에서는 "With xMailOut") 줄 아래에 ".Display" 줄을 이동합니다. 스크린샷을 참조하세요.

A screenshot showing the modified VBA code with the .Body line replaced and .Display placed under With OutlookMail

수정 후의 전체 코드입니다.

Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
    .Display
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "test"
    .HTMLBody = "Email body" & "
" & .HTMLBody
    .Attachments.Add FileName
    '.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

4. 코드를 실행하려면 "F5" 키를 누르세요. 그러면 현재 워크시트가 PDF 파일로 첨부된 새로운 메시지 창이 열리고, Outlook 기본 서명이 이메일 본문 끝에 자동으로 삽입됩니다.

A screenshot of an email in Outlook with the default signature automatically inserted at the end of the email body


3. 조건이 충족되면 Excel에서 자동으로 이메일 보내기 (VBA 스크립트 사용)

위의 예에서 이메일을 보내려면 코드를 수동으로 실행해야 합니다. 특정 조건이 충족될 때, 예를 들어 셀이 특정 값에 도달했을 때, 셀의 값이 변경되었을 때, 날짜가 도달했을 때 등, 코드를 자동으로 실행하고 싶다면 이메일이 자동으로 발송됩니다. 이 섹션에서는 Excel 사용자가 Google에서 자주 검색하는 조건을 나열하여 특정 조건이 충족될 때 Excel에서 자동으로 이메일을 보내는 방법을 안내합니다.

3.1 셀이 특정 값에 도달하면 자동으로 이메일 보내기

아래 스크린샷에 표시된 것처럼, 셀 D6에 판매 총액이 포함된 판매 테이블이 있다고 가정해 보겠습니다. 판매 총액을 기준으로 상사에게 자동으로 이메일을 보내고 싶습니다. 예를 들어, 판매 총액이10000을 초과하면 자동으로 이메일을 생성하거나 보내지만, 판매 총액이10000과 같거나 작으면 아무런 조치가 취해지지 않습니다.

1. 판매 테이블이 포함된 워크시트에서 시트 탭을 마우스 오른쪽 버튼으로 클릭하고, 오른쪽 클릭 메뉴에서 "코드 보기"를 클릭합니다.

2. 열려 있는 "Microsoft Visual Basic for Applications" 창에서 "시트(코드)" 창에 다음 VBA 코드를 붙여넣습니다.

VBA 코드: Excel에서 셀이 특정 값에 도달하면 자동으로 이메일 보내기

Dim xRg As Range
'Update by Extendoffice 20200803
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("D6"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10000 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
On Error Resume Next
With xOutMail
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "test"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub

Private Sub Worksheet_Calculate()
Dim xI As Integer
Dim xRg As Range
Set xRg = Range("D6")
On Error GoTo Err01
xI = Int(xRg.Value)
If xI > 10000 Then
Call Mail_small_Text_Outlook
End If
Err01:
End Sub

참고:

1) "D6"은 이메일을 보낼 기준이 되는 셀입니다.
2) ">10000"은 조건으로, D6의 값이10000보다 클 때 이메일이 전송된다는 의미입니다.
3) 다음 줄의 "Range(“D6”)"는 이메일 본문이 D6의 값을 참조한다는 의미입니다.
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
4) ".To = xxx@aaa.com" 줄에서 "xxx@aaa.com"을 실제 수신자의 이메일 주소로 바꾸세요. 여러 이메일 주소가 필요한 경우, 세미콜론으로 구분하세요.
5) .Subject = "test" 줄에서 이메일 제목을 변경하세요.
6) 다음 두 줄에서:
.CC = "Email Address"
.BCC = "Email Address"
cc 및 bcc 수신자를 추가하려면, 해당 줄의 "Email Address" 텍스트를 필요한 이메일 주소로 바꾸세요.
cc 및 bcc 수신자가 필요하지 않으면 각 줄 앞에 작은따옴표 '를 추가하세요.

이제부터 셀 D6의 값이10000을 초과하면 아래 스크린샷과 같이 이메일이 생성됩니다.

A screenshot of an email created in Outlook when the value in cell D6 exceeds 10000 in Excel


3.2 셀 값이 변경될 때 자동으로 이메일 보내기

아래 스크린샷에 표시된 것처럼, 월별 판매량이 다른 워크시트에 포함되어 있고 판매 총계가 하나의 워크시트에 있는 통합 문서를 받았다고 가정해 보겠습니다. 판매 총계를 확인해야 하며, 판매 총계가 수정된 경우, 통합 문서를 발신자에게 다시 보내고 셀이 수정되었음을 발신자에게 알리십시오.

1. 판매 테이블이 포함된 워크시트에서 시트 탭을 마우스 오른쪽 버튼으로 클릭하고 오른쪽 클릭 메뉴에서 "코드 보기"를 클릭합니다.

2. 열리는 "Microsoft Visual Basic for Applications" 창에서, 시트 (코드) 창에 다음 VBA 코드를 붙여넣습니다.

VBA 코드: 지정된 셀 값이 변경될 때 자동으로 이메일 보내기

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220803
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xBoolean = False
Set xRg = Range("B14")

Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
Set xRgSel = xItsRG
xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
Set xRgSel = xDDs
xBoolean = True
ElseIf Not (xDs Is Nothing) Then
Set xRgSel = xDs
xBoolean = True
End If

ActiveWorkbook.Save
If xBoolean Then
Debug.Print xRgSel.Address

Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "The cell " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."

With xMailItem
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "Worksheet modified"
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

참고: 코드에서,

1) 코드에서 "B14"는 셀 B14의 값이 변경될 때 이메일을 보내게 된다는 의미입니다.
2) ".To = xxx@aaa.com" 줄에서 "xxx@aaa.com"을 실제 수신자의 이메일 주소로 바꾸세요. 여러 이메일 주소가 필요한 경우, 세미콜론으로 구분하세요.
3) 이메일 제목을 변경합니다. .Subject = "워크시트 수정됨".
4) 다음 두 줄에서:
.CC = "Email Address"
.BCC = "Email Address"
cc 및 bcc 수신자를 추가하려면, 해당 줄의 "Email Address" 텍스트를 필요한 이메일 주소로 바꾸세요.
cc 및 bcc 수신자가 필요하지 않으면 각 줄 앞에 아포스트로피 '를 추가하세요.

이제 셀 B14의 값이 변경되면 아래 스크린샷과 같이 Outlook 메시지가 자동으로 생성됩니다.

A screenshot of an email created in Outlook when the value in cell B14 changes


3.3 통합 문서가 저장될 때 자동으로 이메일 보내기

통합 문서를 수정한 후 다른 사람과 공유해야 하는 경우, 일반적으로 통합 문서를 저장하고, 이메일 클라이언트를 실행하여 이 통합 문서를 첨부한 새 이메일을 작성하고, 해당 필드를 작성한 후 이메일을 보냅니다. 이 섹션에서는 통합 문서를 저장할 때마다 자동으로 이메일을 생성하는 방법을 보여드립니다. 다음과 같이 진행하세요.

1. "Alt" + "F11" 키를 눌러 "Microsoft Visual Basic for Applications" 창을 엽니다.

2. 이 창에서 "프로젝트" 창의 "ThisWorkbook"을 더블 클릭한 다음, "ThisWorkbook (코드)" 창에 다음 VBA 코드를 붙여넣습니다.

VBA 코드: 통합 문서가 저장될 때 자동으로 이메일 보내기

Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20220804
    Dim xOutApp As Object
    Dim xMailItem As Object
    Dim xName As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailItem = xOutApp.CreateItem(0)
    xName = ActiveWorkbook.FullName
    With xMailItem
        .To = "xxx@aaa.com"
        .CC = "Email address"
        .BCC = "Email address"
        .Subject = "The workbook has been updated"
        .Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
        .Attachments.Add xName
        .Display
       '.send
    End With
    Set xMailItem = Nothing
    Set xOutApp = Nothing
End Sub

참고: 코드에서,

1) ".To = xxx@aaa.com" 줄에서 "xxx@aaa.com"을 실제 수신자의 이메일 주소로 바꿔주세요. 여러 이메일 주소가 필요하다면 세미콜론으로 구분해 주세요.
2) ".Subject = "통합 문서가 업데이트되었습니다"" 및 ".Body = "안녕하세요," & Chr(13) & Chr(13) & "파일이 이제 업데이트되었습니다."" 줄에서 이메일 제목과 본문을 각각 변경하세요.
3) 다음 두 줄에서:
.CC = "Email Address"
.숨은 참조 = "Email Address"
cc 및 bcc 수신자를 추가하려면, 해당 줄의 "Email Address" 텍스트를 필요한 이메일 주소로 바꾸세요.
cc 및 bcc 수신자가 필요하지 않은 경우 각 줄 앞에 작은따옴표 '를 추가하세요.

3. 이제부터 "Ctrl" + "S" 키를 누르거나 "저장" 버튼을 클릭하여 통합 문서를 저장할 때, Outlook 이메일이 자동으로 생성됩니다. 현재 워크북이 첨부 파일로 첨부되고 필드가 지정된 텍스트로 채워진 것을 볼 수 있습니다. 스크린샷을 참조하세요.

A screenshot showing an Outlook email with the current workbook attached, ready to be sent automatically

팁: 이 워크북을 자주 사용하는 경우, VBA 스크립트를 저장하여 나중에 사용할 수 있도록 워크북을 "Excel 매크로 사용 가능 워크북"으로 저장하는 것을 추천합니다. 단계는 다음과 같습니다.

1) "파일" > "다른 이름으로 저장"을 클릭한 후, 파일을 저장할 폴더를 선택하세요.
2) "다른 이름으로 저장" 대화 상자에서 "파일 이름" 텍스트 상자에 필요한 대로 파일 이름을 바꾸고, "저장 형식 지정" 드롭다운 목록에서 "Excel 매크로 사용 워크북"을 선택한 후 "저장" 버튼을 클릭하세요. 스크린샷을 참조하세요:

A screenshot of the 'Save As' dialog in Excel showing the option to save the workbook as an Excel Macro-Enabled Workbook


3.4 특정 시간에 자동으로 이메일 보내기

매주 금요일 오전9시에 작업 할당 통합 문서를 이메일로 보내야 한다고 가정해 봅시다. 이 작업을 이메일 클라이언트를 수동으로 조작하지 않고 Excel에서 자동으로 수행하고 싶습니다. 이 섹션에서는 이를 수행하는 방법을 보여드립니다.

1. "Alt" + "F11" 키를 눌러 "Microsoft Visual Basic for Applications" 창을 엽니다.

2. "Microsoft Visual Basic for Applications" 창에서 "삽입" > "모듈"을 클릭하세요. 그런 다음 모듈 창에 다음 VBA 코드를 붙여넣으세요.

VBA 코드1: 현재 워크북을 첨부 파일로 이메일 보내기

Sub Timer()
    If Weekday(Date) = vbFriday Then
        SendWorkBook
        Application.OnTime TimeValue("09:00:00"), "Timer"
    Else
        Application.OnTime TimeValue("09:00:00"), "Timer"
    End If
End Sub

Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

3. 이 창에서 "프로젝트" 창의 "ThisWorkbook"을 더블 클릭한 후, "ThisWorkbook (코드)" 창에 다음 VBA 코드를 붙여넣습니다.

A screenshot showing the VBA code editor with the 'Workbook_Open' event and 'Application.OnTime' function to schedule email sending

VBA 코드2: 특정 시간에 자동으로 이메일 보내기

Private Sub Workbook_Open()
    Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub

참고:

1) VBA 코드1에서, 다음 줄의 "금요일"은 이메일이 매주 금요일 자동으로 발송됨을 의미합니다;
If 평일(Date) = vb금요일 Then
2) VBA 코드1과 VBA 코드2에서, 시간 "09:00:00"은 특정 일의 오전9시에 이메일이 발송된다는 것을 의미합니다.
필요에 따라 일과 시간을 변경할 수 있습니다.
3) 코드가 실행되면 이메일이 생성됩니다. 메시지 창을 띄우지 않고 직접 보내고 싶다면, VBA 코드1에서 ".Display" 줄을 제거하고, ‘.Send’ 줄 앞의 "apostrophe"를 제거하세요.

4. 코드를 저장한 후 통합 문서를 Excel 매크로 사용 가능 워크북으로 저장하세요.

4.1) "파일" > "다른 이름으로 저장"을 클릭한 다음, 파일을 저장할 폴더를 선택하세요.
4.2) "다른 이름으로 저장" 대화 상자에서 "파일 이름" 텍스트 상자에 필요한 대로 파일 이름을 바꾸고, "저장 형식 지정" 드롭다운 목록에서 "Excel 매크로 사용 워크북"을 선택한 후 "저장" 버튼을 클릭하세요. 스크린샷을 참조하세요.

A screenshot of the 'Save As' dialog in Excel showing the option to save the workbook as an Excel Macro-Enabled Workbook

5. 저장된 매크로 사용 통합 문서를 열면, 지정된 일과 시간이 되면 이메일이 자동으로 생성되거나 발송됩니다.


4. 추가 주제

이 섹션에서는 Excel에서 이메일을 보낼 때 직면할 수 있는 기타 주제를 수집합니다.

4.1 Excel에서 범위를 이메일로 보내기 (VBA 스크립트 사용)

아래 스크린샷과 같이 Excel 워크시트에 월간 판매 참조 테이블이 있다고 가정하고, 이 월간 판매 참조 테이블을 이메일 본문 텍스트로 또는 첨부 파일로 직접 다른 사람에게 보내야 합니다. 여기서는 이를 수행할 수 있는 두 가지 방법을 제공합니다.

4.1.1 Excel에서 범위를 본문 텍스트의 일부로 이메일 보내기

다음 VBA 코드를 실행하여 Excel에서 이메일 본문 텍스트의 일부로 셀 범위를 보낼 수 있습니다

1. "Alt" + "F11" 키를 눌러 "Microsoft Visual Basic for Applications" 창을 엽니다.

2. "Microsoft Visual Basic for Applications" 창에서 "도구" > "참조"를 클릭합니다. 그런 다음 "Microsoft Outlook16.0 Object Library" 상자를 선택하고 "참조 - VBAProject" 대화 상자에서 "확인"을 클릭합니다.

3. "삽입" > "모듈"을 클릭한 후, "모듈 (코드)" 창에 다음 VBA 코드를 붙여넣습니다.

VBA 코드: Excel에서 이메일 본문 텍스트의 일부로 셀 범위를 보내기

Sub SendARangeofCells()
'Updated by Extendoffice 20220809
    Dim xRg As Range
    Dim I, J As Long
    Dim xAddress As String
    Dim xMailOut As Object
    Dim xOutApp As Object
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    xAddress = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
    Set xOutApp = CreateObject("Outlook.Application")
    Set xMailOut = xOutApp.CreateItem(olMailItem)
    With xMailOut
        .Subject = "test"
        .To = "xxx@aaa.com"
        .CC = "Email address"
        .BCC = "Email address"
        .HTMLBody = RangetoHTML(xRg)
        .Display
        '.Send
    End With
    Set xMailOut = Nothing
    Set xOutApp = Nothing
    Application.ScreenUpdating = True
End Sub

 ' The following VBA script is cited from this page:
 ' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
    Dim fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook

    TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"

    'Copy the range and create a new workbook to past the data in
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error Resume Next
        .DrawingObjects.Visible = True
        .DrawingObjects.Delete
        On Error GoTo 0
    End With

    'Publish the sheet to a htm file
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With

    'Read all data from the htm file into RangetoHTML
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.ReadAll
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")

    'Close TempWB
    TempWB.Close savechanges:=False

    'Delete the htm file we used in this function
    Kill TempFile

    Set ts = Nothing
    Set fso = Nothing
    Set TempWB = Nothing
End Function

참고: 코드에서,

1) ".To = xxx@aaa.com" 줄에서 "xxx@aaa.com"을 실제 수신자의 이메일 주소로 바꾸세요. 여러 이메일 주소가 필요한 경우, 세미콜론으로 구분하세요.
2) 다음 두 줄에서:
.CC = "Email Address"
.BCC = "Email Address"
cc 및 bcc 수신자를 추가하려면, 해당 줄의 "Email Address" 텍스트를 필요한 이메일 주소로 바꾸세요.
cc 및 bcc 수신자가 필요하지 않은 경우 각 줄 앞에 아포스트로피 '를 추가하세요.

4. 코드를 실행하려면 "F5" 키를 누르세요. 팝업된 "Kutools for Excel" 대화 상자에서 이메일 본문 텍스트로 보내고자 하는 셀 범위를 선택한 후 "확인"을 클릭하세요. 스크린샷을 참조하세요.

A screenshot of the Kutools for Excel dialog box where a range of cells is selected to send as part of an email body

그러면 Outlook 이메일이 자동으로 생성됩니다. 워크시트에서 선택한 범위가 이메일 본문에 삽입된 것을 볼 수 있습니다. 스크린샷을 참조하세요:

A screenshot of an Outlook email with the selected range from Excel inserted into the email body


4.1.2 Excel에서 범위를 첨부 파일로 이메일 보내기

Excel에서 워크시트의 셀 범위를 첨부 파일로 이메일로 보내야 하는 경우, 다음 VBA 코드를 시도해 볼 수 있습니다.

1. "Alt" + "F11" 키를 누르세요.

2. 열리는 "Microsoft Visual Basic for Applications" 창에서 "삽입" > "모듈"을 클릭합니다. 그런 다음 "모듈 (코드)" 창에 다음 VBA 코드를 붙여넣습니다.

VBA 코드: Excel에서 범위를 첨부 파일로 이메일 보내기

Sub SendRange()
'Update 20220809
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
    xFile = ".xlsx"
    xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
    If Wb2.HasVBProject Then
        xFile = ".xlsm"
        xFormat = xlOpenXMLWorkbookMacroEnabled
    Else
        xFile = ".xlsx"
        xFormat = xlOpenXMLWorkbook
    End If
Case Excel8:
    xFile = ".xls"
    xFormat = Excel8
Case xlExcel12:
    xFile = ".xlsb"
    xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email address"
    .BCC = "Email address"
    .Subject = "Monthly sales for 2021"
    .Body = "Hello, please check and read this document. "
    .Attachments.Add Wb2.FullName
    .Display
    '.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

참고:

1) ".To = xxx@aaa.com" 줄에서 "xxx@aaa.com"을 실제 수신자의 이메일 주소로 바꾸세요. 여러 이메일 주소가 필요하다면 세미콜론으로 구분하세요.
2) 이메일 제목과 본문을 각각 변경하려면 " .Subject = "2021년 월간 판매"" 및 ".Body = "안녕하세요, 이 문서를 확인하고 읽어주세요."" 줄에서 변경하세요;
3) 다음 두 줄에서:
.CC = "email address"
.BCC = "email address"
cc 및 bcc 수신자를 추가하려면, 해당 줄의 "email address" 텍스트를 필요한 이메일 주소로 바꾸세요.
cc 및 bcc 수신자가 필요하지 않은 경우, 각 줄 앞에 작은따옴표 '를 추가하세요.

3. 코드를 실행하려면 "F5" 키를 누르세요. 팝업된 "Kutools for Excel" 대화 상자에서 이메일에 첨부 파일로 보낼 셀의 범위를 선택한 후 "OK"를 클릭하세요. 스크린샷을 참조하세요:

A screenshot of the Kutools for Excel dialog box where a range of cells is selected to send as an attachment in an email

그러면 Outlook 이메일이 자동으로 생성됩니다. 워크시트에서 선택한 셀 범위가 Excel 워크북으로 저장되어 메시지 창에 첨부됩니다. 스크린샷을 참조하세요:

A screenshot of an Outlook email with the selected range from Excel saved as an attachment


4.2 Excel에서 버튼을 클릭할 때 이메일 보내기

Excel에서 이메일을 보내기 위해 명령 버튼을 클릭하여 매크로를 실행해야 하는 경우, 예를 들어 워크시트의 명령 버튼을 클릭하여 현재 워크북을 첨부 파일로 다른 사람에게 보내려면 다음 단계에 따라 작업을 완료할 수 있습니다.

1. "개발 도구" > "삽입" > "명령 단추 (ActiveX 컨트롤)"를 클릭하세요. 그런 다음 워크시트에 명령 단추를 그립니다.

팁: 이미 명령 단추가 있는 경우, 이 단계를 건너뛰세요.

2. "Alt" + "F11" 키를 눌러 "Microsoft Visual Basic for Applications" 창을 엽니다. 창에서 "삽입" > "모듈"을 클릭한 다음, 모듈(코드) 창에 VBA 코드(현재 워크북을 Excel에서 첨부 파일로 이메일 보내는 데 사용되는 코드)를 붙여넣습니다.

코드를 받으려면 여기를 클릭하세요.

참고: 여기서2단계에서 생성한 매크로의 이름은 "SendWorkbook"입니다.

3. "Alt" + "Q" 키를 눌러 "Microsoft Visual Basic for Applications" 창을 닫습니다.

4. 이제 명령 버튼에 매크로를 할당해야 합니다. 명령 버튼을 마우스 오른쪽 버튼으로 클릭하고, 오른쪽 클릭 메뉴에서 "코드 보기"를 선택하세요.

5. 그런 다음 "Microsoft Visual Basic for Applications" 창이 나타나면 "시트 (코드)" 창에 다음 두 줄이 나열되어 있는 것을 볼 수 있습니다.

Private Sub CommandButton1_Click()
End Sub

A screenshot of the Microsoft Visual Basic for Applications window showing the CommandButton1_Click code

6. 명령 버튼의 서브프로시저 안에 기존 매크로의 이름을 입력하세요.

A screenshot of editing the VBA code to assign an existing macro to the command button

7. "Alt" + "Q" 키를 눌러 "Visual Basic Editor"를 닫고, "개발 도구" > "디자인 모드"를 클릭하여 디자인 모드를 끕니다.

A screenshot of turning off Design Mode in the Developer tab

이제 명령 버튼을 클릭하여 현재 워크북을 이메일에 첨부 파일로 포함하여 이메일을 보낼 수 있습니다.


4.3 지정된 이메일 계정에서 이메일 보내기

일반적으로 Excel에서 VBA 코드를 사용하여 이메일을 보낼 때, 발신자의 이메일 계정은 Outlook의 기본 계정입니다. Outlook에 여러 이메일 계정을 설정해 두었고, 기본 계정 대신 특정 계정을 사용하여 Excel에서 이메일을 보내고 싶다면, 다음 VBA 코드가 도움이 될 수 있습니다.

이 경우 다음 코드는 필수적입니다.

VBA 코드1:

Dim OutlookMail As Outlook.MailItem

VBA 코드2:

For Each xAccount In OutlookApp.Session.Accounts
  If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("zxm@addin99.com") Then 'Specify your email account here
    OutlookMail.SendUsingAccount = xAccount
  End If
Next

위의 VBA 코드를 사용하는 방법은?

1) 자신의 코드에서 "Dim OutlookMail As Object"와 같은 줄을 VBA 코드1로 바꾸어야 합니다.
2) 코드에서 "On Error Resume Next" 줄 아래에 VBA 코드2를 추가하세요. 그런 다음 이메일을 보내기 위해 사용할 이메일 주소를 VBA 코드2에 지정하세요.

이 예에서는 특정 이메일 계정을 지정하여 현재 워크북을 Excel에서 첨부 파일로 보내려고 합니다. 다음과 같이 진행하세요.

1. "Alt" + "F11" 키를 누릅니다. "Microsoft Visual Basic for Applications" 창에서 "도구" > "참조"를 클릭합니다. 그런 다음 "Microsoft Outlook16.0 Object Library" 상자를 선택하고 "참조 - VBAProject" 대화 상자에서 "확인"을 클릭합니다.

A screenshot of the 'References – VBAProject' dialog box in Excel with the Microsoft Outlook 16.0 Object Library option selected

2. "삽입" > "모듈"을 클릭합니다. 그런 다음 "모듈 (코드)" 창에 다음 VBA 코드를 붙여넣습니다.

VBA 코드: Excel에서 지정된 Outlook 계정을 통해 현재 워크북을 이메일 첨부 파일로 보내기

Sub SendWorkBook()
'Update by Extendoffice 20220809
Dim OutlookApp As Object
Dim OutlookMail As Outlook.MailItem 'important! Here can’t be declared as Object
Dim xAccount As Account
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(olMailItem)
On Error Resume Next
'The following lines helps to specify a certian email account
For Each xAccount In OutlookApp.Session.Accounts
  If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("zxm@addin99.com") Then 'Specify your email account here
    OutlookMail.SendUsingAccount = xAccount
  End If
Next
'End
With OutlookMail
    .To = "xxx@aaa.com"
    .CC = "Email Address"
    .BCC = "Email Address"
    .Subject = "kte feature"
    .Body = "Hello, please check and read this document, thank you."
    .Attachments.Add Application.ActiveWorkbook.FullName
    .Display
    '.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub

3. 코드를 실행하려면 "F5" 키를 누릅니다. 그러면 Outlook 이메일 메시지가 나타나며, "From" 필드가 코드에서 지정한 이메일 계정으로 채워진 것을 볼 수 있습니다.


4.4 날짜에 도달했을 때 이메일 보내기

특정 마감일을 기준으로 이메일을 보내야 하는 경우, 예를 들어 아래 스크린샷에 표시된 것처럼 프로젝트 테이블이 있습니다. "범위 E2:E7의 마감일이 오늘로부터7일 이내이거나 같을 때(현재 날짜가2022/8/4라고 가정)" 해당 프로젝트 리더에게 자동으로 이메일이 발송되어 프로젝트가 곧 만료될 것임을 알립니다.

1. 프로젝트 테이블이 포함된 워크시트에서 시트 탭을 마우스 오른쪽 버튼으로 클릭하고, 오른쪽 클릭 메뉴에서 "코드 보기"를 클릭합니다.

2. 열리는 "Microsoft Visual Basic for Applications" 창에서, "시트 (코드)" 창에 다음 VBA 코드를 붙여넣습니다.

VBA 코드: 기한이 도래하면 자동으로 이메일 보내기

Public Sub SendMailDueDate()
'Updated by Extendoffice 20220804
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Range("E2:E7") 'Please reference the due date column range
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Range("C2:C7") 'Please reference the email addresses column range
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Range("D2:D7") 'Please reference the remark column range (the remark used to notify project leaders of the expiration of the project)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.Count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "

"
            xMailBody = ""
            xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
            xMailBody = xMailBody & "Remark : " & xRgText.Offset(i - 1).Value & vbCrLf
            xMailBody = xMailBody & ""
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub

참고: 코드에서,

1) 다음 줄에서 "E2:E7"은 이메일을 보낼 예정인 마감일을 포함합니다. "C2:C7"은 이메일을 보낼 이메일 주소를 포함합니다. 그리고 "D2:D7"은 프로젝트가 곧 만료될 것임을 수신자에게 알리기 위해 이메일 본문에 추가할 참고를 포함합니다. 필요에 따라 범위를 변경할 수 있습니다.
Set xRgDate = 범위("E2:E7")
Set xRgSend = 범위("C2:C7")
Set xRgText = 범위("D2:D7")
2) 다음 줄은 마감일이 오늘로부터1일 초과,7일 같음 또는 이하이어야 한다는 것을 의미합니다. 필요에 따라 변경할 수 있습니다.
If CDate(xRgDateVal) - Date <=7 And CDate(xRgDateVal) - Date >0 Then
3) ".To = xxx@aaa.com" 줄에서 "xxx@aaa.com"을 실제 수신자의 이메일 주소로 바꾸세요. 여러 이메일 주소가 필요한 경우, 세미콜론으로 구분하세요.
4) ".Subject = "워크시트 수정됨"" 줄에서 이메일 제목을 변경하세요.
5) 다음 두 줄에서:
.CC = "Email Address"
.BCC = "Email Address"
cc 및 bcc 수신자를 추가하려면, 해당 줄의 "Email Address" 텍스트를 필요한 이메일 주소로 바꾸세요.
cc 및 숨은 참조 수신자가 필요하지 않은 경우, 각 줄 앞에 작은따옴표 '를 추가하세요.

3. 코드를 실행하려면 "F5" 키를 누르세요. 그러면 만료 날짜가 조건과 일치하면 해당 이메일이 생성됩니다. 이 경우 아래 스크린샷에 표시된 대로 두 개의 이메일이 생성됩니다.

A screenshot of two emails created automatically based on expiration date matching conditions in Excel


5. Excel에서 이메일을 쉽게 보낼 수 있도록 도와주는 유용한 도구

VBA 초보자라면 위의 방법들이 다소 어려울 수 있습니다. 여기서는 "Kutools for Excel"의 이메일 보내기 기능을 추천합니다. 이 기능을 사용하면 몇 번의 클릭만으로 Excel에서 쉽게 이메일을 보낼 수 있습니다. 다음과 같이 진행하세요.

Kutools for Excel은 300개 이상의 고급 기능을 제공하여 복잡한 작업을 간소화하고 창의성과 효율성을 향상시킵니다. AI 기능과 통합되어 Kutools는 정확하게 작업을 자동화하며, 데이터 관리를 손쉽게 만듭니다. Kutools for Excel의 상세 정보...무료 체험하기...
 5.1 필요한 이메일 필드를 포함하는 메일링 목록을 쉽게 생성하세요

이메일 보내기 기능을 적용하기 전에 필요한 이메일 필드를 포함한 메일링 목록을 생성해야 합니다. 여기서 메일링 목록 생성 기능이 도움이 될 수 있습니다.

1. "Kutools Plus" > "메일링 목록 생성"을 클릭하세요.

2. 열리는 "메일링 목록 생성" 창에서 다음과 같이 구성해야 합니다.

2.1) "메일링 목록에 포함할 열을 선택하세요" 섹션에서 이메일에 필요한 필드를 선택하세요;
2.2) "추가할 첨부 파일을 선택하세요" 섹션에서 필요한 첨부 파일을 하나 이상 선택하세요;
2.3) 메일링 목록을 배치할 위치를 지정하세요;
2.4) "생성" 버튼을 클릭하세요. 스크린샷을 참조하세요:

그러면 아래 스크린샷에 표시된 것처럼 샘플 메일링 목록 테이블이 생성됩니다.

3. 이제 샘플의 원본 데이터를 자신의 필드 데이터로 바꾸어야 합니다.

이제 메일링 목록 참조 테이블을 생성했습니다. 생성한 필드를 기준으로 Excel에서 이메일 보내기 기능을 적용하여 이메일을 보내세요.

Kutools for Excel - 필수적인 300개 이상의 도구로 Excel을 강화하세요. 영구적으로 무료인 AI 기능을 활용하세요! 지금 바로 구매하기


 5.2 메일링 목록에 생성한 필드를 포함하여 이메일 보내기 쉽게

메일링 목록을 생성한 후 (방법을 알아보려면 클릭하세요) 이메일에 필요한 필드를 포함하여 Excel에서 이메일을 보낼 수 있습니다.

1. 전체 메일링 목록을 선택하고, "Kutools Plus" > "이메일 보내기"를 클릭하세요.

2. "이메일 보내기" 대화 상자에서 다음 구성을 수행하세요.

2.1) 필드는 메일링 목록에서 지정한 필드에 따라 각 필드의 대화 상자에 자동으로 채워집니다.
팁: 특정 필드가 현재 필요하지 않다면 드롭다운 목록에서 빈 옵션을 선택하세요.
2.2) "플레이스홀더 삽입" (선택 사항): 이메일 본문에 변수 정보를 삽입해야 하는 경우.
예를 들어, 여러 수신자에게 각각의 개인화된 이름으로 이메일을 보내야 할 때, 이메일 본문에 플레이스홀더를 삽입할 위치에 커서를 놓고, 메일링 목록에서 "이름" 필드(또는 다른 이름 필드)를 선택한 후 "플레이스홀더 삽입" 버튼을 클릭해야 합니다.
수신자가 이메일을 받을 때, 이메일 본문은 동일하게 유지되지만 이름은 각각 고유합니다.
2.3) 필요에 따라 이메일 본문을 작성하세요;
2.4) "Outlook 사용하여 보내기" 상자가 선택되어 있는지 확인하세요;
2.5) "보내기" 버튼을 클릭하세요. 스크린샷을 참조하세요:

3. 그러면 "Kutools for Excel" 대화 상자가 나타나 몇 개의 이메일이 전송되었는지 알려줍니다. 이 대화 상자를 닫으려면 "OK" 버튼을 클릭하세요.

팁: Outlook의 "보낸 편지함" 폴더로 이동하여 보낸 이메일을 확인할 수 있습니다.


5.3 HTML 본문(하이퍼링크, 이미지 등 포함)으로 이메일을 쉽게 보내기

이 이메일 보내기 기능을 사용하면 하이퍼링크, 이미지, 다양한 글꼴 크기와 색상 등을 포함한 HTML 이메일을 작성할 수 있습니다.

필요한 이메일 필드를 포함한 메일링 목록을 생성한 후, 이메일 보내기 대화 상자를 설정할 때, 도구 모음의 옵션을 사용하여 본문 텍스트를 풍부하게 만들 수 있습니다.

아래 스크린샷을 참조하세요:


5.4 이메일을 보낼 때 Outlook 기본 서명을 쉽게 삽입하기

위 방법에서는 Outlook 기본 서명을 사용하여 이메일을 보내는 데 도움이 되는 VBA 코드를 보여드렸습니다. 여기서 이메일 보내기 기능을 사용하면 옵션을 선택하기만 하면 Excel에서 보낸 이메일에 Outlook 기본 서명이 삽입됩니다.

필요한 이메일 필드를 포함하는 메일링 목록을 생성한 후, 이메일 보내기 대화 상자를 구성할 때 "옵션" > "Outlook의 서명 옵션 사용"을 클릭해야 합니다.

참고: Outlook의 서명 옵션 사용 설정 앞에 체크 표시가 있는지 확인하세요.

수신자가 이메일을 받을 때, 이메일 본문 끝에 Outlook 기본 서명이 표시됩니다.


5.5 지정된 이메일 계정에서 쉽게 이메일 보내기

기본 계정 대신 특정 이메일 계정을 사용하여 Excel에서 이메일을 보내려면, 이메일 보내기 기능을 사용하여 쉽게 해결할 수 있습니다.

필요한 이메일 필드를 포함하는 메일링 목록을 생성한 후, 이메일 보내기 대화 상자를 구성할 때 "옵션" > "보낸 사람"을 클릭한 다음 이메일을 보내고자 하는 계정을 클릭해야 합니다.

참고: 이메일 계정을 선택한 후에는 그 앞에 체크 표시가 나타납니다.

이 이메일 보내기 기능에 대해 더 알고 싶다면 여기를 클릭하세요.

Kutools for Excel - 필수적인 300개 이상의 도구로 Excel을 강화하세요. 영구적으로 무료인 AI 기능을 활용하세요! 지금 바로 구매하기

결론적으로, Excel에서 이메일을 보내는 것은 우리의 일상 업무에 매우 유용합니다. 이 기사에서는 Excel에서 이메일을 보내는 것에 대한 더 포괄적인 주제를 다루고 있으며, 다른 주제나 더 쉬운 해결책이 있다면 의견을 남겨 알려주세요.

최고의 오피스 생산성 도구

? Kutools AI Aide: 지능형 실행, 코드 생성, 사용자 정의 수식 작성, 데이터 분석 및 차트 생성, Kutools 함수 호출을 기반으로 데이터 분석 혁신…
인기 기능: 중복 찾기, 강조 또는 식별   |  빈 행 삭제   |  데이터 손실 없이 열 또는 셀 결합   |   수식 없이 반올림 ...
슈퍼 LOOKUP: 다중 조건 VLookup    다중 값 VLookup  |   다중 시트 조회   |   퍼지 매치 ....
고급 드롭다운 목록: 빠르게 드롭다운 목록 만들기   |  종속 드롭다운 목록   |  다중 선택 드롭다운 목록 ....
열 관리자: 특정 개수의 열 추가  |  열 이동  |  숨겨진 열의 가시성 상태 전환  |  범위 및 열 비교 ...
주요 기능: 그리드 포커스   |  디자인 보기   |   향상된 수식 표시줄    통합 문서 및 시트 관리자   |  자동 텍스트 라이브러리 (Auto Text)   |  날짜 선택기   |  데이터 병합   |  셀 암호화/해독    목록으로 이메일 보내기   |  슈퍼 필터   |   특수 필터 (굵은 글꼴/이탤릭체/취소선 필터링...) ...
최고의 15가지 도구 모음12개의 텍스트 도구 (텍스트 추가, 특정 문자 삭제, ...)   |   50+ 차트 유형 (간트 차트, ...)   |   40+ 실용적인 수식 (생일을 기반으로 나이 계산, ...)   |   19개 삽입 도구 (QR 코드 삽입, 경로에서 그림 삽입, ...)   |   12개 변환 도구 (단어로 변환하기, 통화 변환, ...)   |   7개 병합 및 분할 도구 (고급 행 병합, 셀 분할, ...)   |   ... 그리고 더 많은 기능들

Kutools for Excel로 엑셀 스킬을 강화하고 지금까지 경험하지 못한 효율성을 체험하세요. Kutools for Excel은 생산성을 향상시키고 시간을 절약할 수 있는 300개 이상의 고급 기능을 제공합니다.  가장 필요한 기능을 얻으려면 여기를 클릭하세요...


Office Tab은 탭 인터페이스를 Office에 제공하여 작업을 훨씬 쉽게 만듭니다.

  • Word, Excel, PowerPoint에서 탭 편집 및 읽기를 활성화하세요.
  • 새 창 대신 동일한 창의 새 탭에서 여러 문서를 열고 생성하세요.
  • 생산성을 50% 향상시키고 매일 수백 번의 마우스 클릭을 줄입니다!