Computer >> 컴퓨터 >  >> 소프트웨어 >> Office

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

업무를 하다 보면 특정 조건이 충족될 때 고객에게 이메일을 발송해야 하는 상황이 자주 발생합니다. 이 글에서는 엑셀(Excel)에서 조건이 만족되었을 때 이메일을 자동으로 전송하는 3가지 방법을 소개합니다. 설명을 위해 '이름(Name)', '이메일(Email)', '미납 결제(Payment Due)'라는 3개의 열로 구성된 데이터셋을 사용하겠습니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

엑셀에서 조건 충족 시 이메일을 보내는 3가지 방법

1. VBA를 활용해 셀 값이 변경될 때 이메일 보내기

첫 번째 방법은 엑셀 VBA 코드를 사용하여 조건이 충족될 때 이메일을 전송하는 것입니다. 먼저 VBA 모듈 창을 연 뒤 코드를 작성하고 실행하면 됩니다. 이번 예제에서는 셀 값이 변경될 때마다 코드가 실행되도록 설정하겠습니다.

단계별 진행 방법:

  • 먼저 "Cell Value Change" 시트에서 마우스 오른쪽 버튼을 클릭합니다.
  • 다음으로 코드 보기(View Code)를 선택합니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

  • 그런 다음 아래 코드를 입력합니다.
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Application.Intersect(Range("D5"), Target) Is Nothing Then
        If IsNumeric(Target.Value) And Target.Value > 700 Then
            Call Send_Email_Condition_Cell_Value_Change
        End If
    End If
End Sub

VBA 코드 해설

여기서는 Private Sub를 사용했습니다. 매크로 창에서 직접 실행하는 것이 아니라, 셀 값이 변경될 때 자동으로 실행되어야 하기 때문입니다.

  • 첫째, 이벤트가 Worksheet_ChangePrivate Sub를 선언합니다.
  • 둘째, 대상 의 개수를 1개로 제한하고 그 셀을 D5로 지정합니다.
  • 셋째, 해당 값이 700보다 큰지 확인합니다.
  • 마지막으로, 조건이 충족되면 Send_Email_Condition_Cell_Value_Change라는 Sub 프로시저가 실행됩니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

  • 마지막으로 창을 저장하고 닫습니다.

이제 모듈(Module) 창에 코드를 입력해야 합니다. VBA 모듈 창을 여는 방법은 다음과 같습니다.

  • 먼저 개발 도구(Developer) 탭 >>> Visual Basic을 선택합니다.

또는 ALT + F11 키를 눌러 VBA 창을 바로 열 수도 있습니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

  • 다음으로 삽입(Insert) >>> 모듈(Module)을 선택합니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

이 창에 아래 코드를 입력합니다.

Sub Send_Email_Condition_Cell_Value_Change()
    Dim pApp As Object
    Dim pMail As Object
    Dim pBody As String
    Set pApp = CreateObject("Outlook.Application")
    Set pMail = pApp.CreateItem(0)
    pBody = "Hello, " & Range("B5").Value & vbNewLine & _
              "You've Payment Due." & vbNewLine & _
              "Please Pay it to avoid extra fees."
    On Error Resume Next
    With pMail
        .To = Range("C5").Value
        .CC = ""
        .BCC = ""
        .Subject = "Request For Payment"
        .Body = pBody
        .Display  'We can use .Send to Send the Email
    End With
    On Error GoTo 0
    Set pMail = Nothing
    Set pApp = Nothing
End Sub

VBA 코드 해설

  • 첫째, Send_Email_Condition_Cell_Value_Change라는 Sub 프로시저를 호출합니다.
  • 둘째, 필요한 변수 유형을 선언합니다.
  • 셋째, 메일 응용 프로그램으로 Outlook을 선택합니다.
  • 그다음, 코드 안에 이메일 본문 내용을 작성합니다.
  • 마지막으로 ".Display"를 사용해 이메일 창을 화면에 표시합니다. 따라서 사용자가 직접 보내기(Send) 버튼을 눌러야 이메일이 발송됩니다. 반면 ".Send"를 사용하면 화면 표시 없이 즉시 이메일을 전송할 수 있습니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

  • 이후 모듈을 저장하고 닫습니다.

이제 데이터셋에서 699를 입력하면 아무 일도 일어나지 않습니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

하지만 801(700 초과)을 입력하면 코드가 실행됩니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

그러면 Outlook 이메일 작성 창이 나타나며, 보내기(Send)를 눌러 해당 주소로 이메일을 전송할 수 있습니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

추가로 읽으면 좋은 글: 엑셀 목록에서 이메일 보내는 방법(효과적인 2가지 방법)

2. VBA를 활용해 여러 조건이 동시에 충족될 때 이메일 보내기

두 번째 방법에서는 데이터셋을 변경했습니다. 이번에는 여러 조건이 동시에 충족될 때 이메일을 발송하는 방법입니다. 하나의 모듈 안에 2개의 Sub 프로시저를 사용합니다. 코드가 정상적으로 작동하면 2명에게 이메일이 전송되며, 이메일에 파일도 첨부됩니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

단계별 진행 방법:

  • 먼저 첫 번째 방법과 동일하게 모듈 창을 연 뒤 아래 코드를 입력합니다.
Option Explicit
Sub Send_Email_Condition()
    Dim xSheet As Worksheet
    Dim mAddress As String, mSubject As String, eName As String
    Dim eRow As Long, x As Long
    Set xSheet = ThisWorkbook.Sheets("Conditions")
    With xSheet
        eRow = .Cells(.Rows.Count, 5).End(xlUp).Row
        For x = 5 To eRow
            If .Cells(x, 4) >= 1 And .Cells(x, 5) = "Yes" Then
                mAddress = .Cells(x, 3)
                mSubject = "Request For Payment"
                eName = .Cells(x, 2)
                Call Send_Email_With_Multiple_Condition(mAddress, mSubject, eName)
            End If
        Next x
    End With
End Sub
Sub Send_Email_With_Multiple_Condition(mAddress As String, mSubject As String, eName As String)
    Dim pApp As Object
    Dim pMail As Object
    Set pApp = CreateObject("Outlook.Application")
    Set pMail = pApp.CreateItem(0)
    With pMail
        .To = mAddress
        .CC = ""
        .BCC = ""
        .Subject = mSubject
        .Body = "Mr./Mrs. " & eName & ", Please pay it within the next week."
        .Attachments.Add ActiveWorkbook.FullName 'Send The File via Email
        .Display 'We can use .Send here too
    End With
    Set pMail = Nothing
    Set pApp = Nothing
End Sub

VBA 코드 해설

  • 첫째, 첫 번째 Sub 프로시저Send_Email_Condition을 호출합니다.
  • 둘째, 변수 유형을 선언하고 "Conditions" 시트를 대상 시트로 지정합니다.
  • 셋째, 마지막 번호를 찾아냅니다. 데이터가 5행부터 시작되므로 코드에서도 5행부터 마지막 행까지 범위를 설정했습니다.
  • 그다음, 두 번째 Sub 프로시저Send_Email_With_Multiple_Condition을 호출합니다.
  • 이후 메일 응용 프로그램으로 Outlook을 선택합니다.
  • 코드 안에 이메일 내용을 설정합니다.
  • 여기서는 첨부(Attachment) 기능을 사용해 엑셀 파일을 이메일에 첨부합니다.
  • 마지막으로 ".Display"를 사용해 이메일 창을 표시합니다. 사용자가 직접 보내기(Send)를 눌러야 발송되며, ".Send"를 사용하면 표시 없이 바로 전송할 수 있습니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

  • 다음으로 모듈을 저장하고 닫습니다.

이제 코드를 실행하기 위해 매크로(Macro) 창을 엽니다.

  • 먼저 개발 도구(Developer) 탭 >>> 매크로(Macros)를 선택합니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

매크로 창이 나타납니다.

  • 다음으로 "Send_Email_Condition"을 선택합니다.
  • 마지막으로 실행(Run)을 누릅니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

코드가 실행되며, 조건을 충족한 사람이 2명이므로 이메일 작성 창 2개가 나타납니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

추가로 읽으면 좋은 글: 엑셀에서 조건 충족 시 자동으로 이메일 보내는 방법

함께 읽으면 좋은 글

  • 엑셀에서 통합 문서 공유 기능 활성화하는 방법
  • 엑셀과 Outlook을 활용한 대량 이메일 전송 방법(3가지)
  • 본문을 포함해 엑셀에서 이메일을 보내는 매크로(유용한 사례 3가지)
  • 첨부파일과 함께 엑셀에서 이메일을 보내는 매크로 적용 방법
  • 엑셀 파일을 온라인에서 공유하는 방법(간단한 2가지 방법)

3. 날짜 조건에 따라 엑셀에서 이메일 보내기

마지막 방법은 마감일이 현재 날짜로부터 일주일 이내일 경우 이메일을 발송하는 것입니다. 이 글을 작성한 날짜는 2022년 5월 19일이므로, 7일 이내에 해당하는 행은 5행 한 곳뿐입니다. VBA 코드를 사용해 해당 인원에게 이메일을 전송해 보겠습니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

단계별 진행 방법:

  • 먼저 첫 번째 방법과 동일하게 모듈 창을 연 뒤 아래 코드를 입력합니다.
Public Sub Send_Email_Date_Condition()
    Dim rDate, rSend, rText As Range
    Dim pApp, pItem As Object
    Dim LRow, x As Long
    Dim lineBreak, pBody, rSendValue, mSubject As String
    On Error Resume Next
    Set rDate = Application.InputBox("Select Deadline Range:", "Exceldemy", , , , , , 8)
    If rDate Is Nothing Then Exit Sub
    Set rSend = Application.InputBox("Select Email Range:", "Exceldemy", , , , , , 8)
    If rSend Is Nothing Then Exit Sub
    Set rText = Application.InputBox("Select Email Topic Range:", "Exceldemy", , , , , , 8)
    If rText Is Nothing Then Exit Sub
    LRow = rDate.Rows.Count
    Set rDate = rDate(1)
    Set rSend = rSend(1)
    Set rText = rText(1)
    Set pApp = CreateObject("Outlook.Application")
    For x = 1 To LRow
        rDateValue = ""
        rDateValue = rDate.Offset(x - 1).Value
        If rDateValue <> "" Then
        If CDate(rDateValue) - Date <= 7 And CDate(rDateValue) - Date > 0 Then
            rSendValue = rSend.Offset(x - 1).Value
            mSubject = rText.Offset(x - 1).Value & " on " & rDateValue
            lineBreak = "<br><br>"
            pBody = "<HTML><BODY>"
            pBody = pBody & "Dear " & rSendValue & lineBreak
            pBody = pBody & rText.Offset(x - 1).Value & lineBreak
            pBody = pBody & "</BODY></HTML>"
            Set pItem = pApp.CreateItem(0)
            With pItem
                .Subject = mSubject
                .To = rSendValue
                .HTMLBody = pBody
                .Display 'We can also use .Send here
            End With
            Set pItem = Nothing
        End If
    End If
    Next
    Set pApp = Nothing
End Sub

VBA 코드 해설

  • 첫째, Send_Email_Date_Condition이라는 Sub 프로시저를 호출합니다.
  • 둘째, 필요한 변수 유형을 선언합니다.
  • 셋째, InputBox를 사용해 값의 범위를 지정받습니다.
  • 이후 메일 응용 프로그램으로 Outlook을 선택합니다.
  • 그다음 VBA CDate 함수를 사용해 해당 날짜가 현재 날짜로부터 7일 이내인지 확인합니다.
  • 코드 안에 이메일 내용을 설정합니다.
  • 마지막으로 ".Display"를 사용해 이메일 창을 표시합니다. 직접 보내기(Send)를 눌러야 발송되며, ".Send"를 사용하면 표시 없이 바로 전송할 수 있습니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

  • 다음으로 모듈을 저장하고 닫습니다.
  • 그런 다음 두 번째 방법과 동일하게 매크로(Macro) 창을 엽니다.
  • "Send_Email_Date_Condition"을 선택하고 실행(Run)을 누릅니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

  • 먼저 마감일 열(날짜 열)을 선택하고 확인(OK)을 누릅니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

  • 다음으로 이메일 열을 선택하고 확인(OK)을 누릅니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

  • 마지막으로 이메일 내용(제목) 열을 선택하고 확인(OK)을 누릅니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

  • 그러면 이메일 작성 창이 나타납니다. 보내기(Send)를 누르면 원하는 목표를 달성할 수 있습니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

추가로 읽으면 좋은 글: 날짜 기준으로 엑셀에서 자동으로 이메일 보내는 방법

알아두어야 할 사항

  • 이 글의 모든 방법에서 Outlook을 기본 메일 응용 프로그램으로 사용했습니다. 다른 메일 프로그램을 사용하려면 별도의 코드가 필요할 수 있습니다.

연습 섹션

각 방법별로 연습용 데이터셋을 엑셀 파일에 함께 준비해 두었습니다.

엑셀에서 조건이 충족되면 이메일을 자동으로 보내는 3가지 쉬운 방법

결론

지금까지 엑셀에서 조건이 충족될 때 이메일을 전송하는 3가지 방법을 알아보았습니다. 끝까지 읽어주셔서 감사합니다. 앞으로도 엑셀 실력 향상을 응원합니다!

관련 글

  • 매크로를 활용해 본문을 포함한 엑셀 이메일 전송 방법(쉬운 단계별 가이드)
  • 엑셀에서 Outlook으로 자동 이메일 전송하는 방법(4가지)
  • 셀 내용에 따라 엑셀에서 자동으로 이메일 보내는 방법(2가지)
  • 엑셀 파일을 이메일로 자동 전송하는 방법(실용적인 3가지 방법)
  • VBA를 사용해 엑셀 워크시트에서 자동 알림 이메일 보내기
  • 공유된 엑셀 파일에서 접속자 확인하는 방법(빠른 단계별 가이드)