자동으로 이메일 보내기 하나의 크기에 맞는 메시지를 디자인하고 사용자에게 전달할 수 있습니다. 자동 이메일을 생성하고 전송함으로써 시간을 절약할 수 있습니다. 특정 시간에 이메일을 보낼 수 있기 때문에 이메일 자동화는 잠재 소비자와 소통하는 훌륭한 방법입니다. 적시에 적절한 사람에게 이메일 알림을 보내는 기능은 이메일 자동화의 가장 중요한 기능입니다. 이 기사에서는 다양한 VBA 매크로를 보여줍니다. 조건이 충족되면 자동으로 이메일을 보내는 엑셀의.
워크북을 다운로드하여 연습할 수 있습니다.
Excel에서 조건이 충족되면 자동으로 이메일을 보내는 3가지 방법
조건이 충족될 때마다 고객에게 이메일을 보내야 하는 경우가 많습니다. VBA 매크로 사용 , 메일링 기능을 사용자 정의할 수 있습니다. 결과적으로 VBA를 사용하여 동시에 여러 사람에게 이메일을 보낼 수 있습니다. 기술. 매크로가 포함된 이메일을 자동으로 보내려면 Outlook이 있어야 합니다. 우리 컴퓨터에 사전 설치되어 있습니다. 따라서 우리가 넣을 코드는 Outlook을 사용하여 수신자에게 이메일을 보냅니다. .
1. 셀 값에 따라 자동으로 이메일을 보내는 Excel VBA 매크로
Excel VBA 매크로를 사용하겠습니다. 데이터 세트의 특정 열 값을 기반으로 이메일을 자동으로 전송합니다. 아래 데이터세트를 사용하여 이 예를 보여줍니다. D5 셀의 셀 값이 10보다 큽니다. , 이메일을 자동으로 보내는 기능을 개발할 예정입니다.
슈퍼 매장의 일부 고객 세부 정보에 대한 다음 데이터 세트가 있다고 가정합니다. 데이터세트에는 B 열에 일부 고객의 이름이 포함되어 있습니다. , C 열의 이메일 주소 , 및 D 열의 제품 구매에 대한 일부 회비 . 이제 고객에게 청구서 지불을 요청하기 위해 이메일을 보내려고 하지만 여기에는 다음과 같은 조건이 있습니다. 고객의 청구서가 10보다 큰 경우 그래야만 이메일을 보내드립니다. 그럼 조건이 충족되면 셀 값을 기준으로 자동으로 이메일을 보내는 절차를 알아보겠습니다.
단계:
- 먼저 개발자 로 이동합니다. 리본의 탭입니다.
- 둘째, 코드 카테고리에서 Visual Basic 을 클릭하십시오. Visual Basic Editor 열기 . 또는 Alt + F11 을 누르십시오. Visual Basic Editor 열기 .
- 이렇게 하는 대신 워크시트를 마우스 오른쪽 버튼으로 클릭하고 코드 보기로 이동할 수 있습니다. . 또한 Visual Basic Editor로 이동합니다. .
- 이것은 Visual Basic Editor 에 나타납니다. 범위에서 테이블을 생성하기 위해 코드를 작성하는 곳입니다.
- 그리고 VBA 를 복사하여 붙여넣습니다. 아래에 표시된 코드.
VBA 코드:
Dim r As Range
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set r = Intersect(Range("D5"), Target)
If r Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10 Then
Call Send_Mail_Automatically1
End If
End Sub
Sub Send_Mail_Automatically1()
Dim ob1 As Object
Dim ob2 As Object
Dim str As String
Set ob1 = CreateObject("Outlook.Application")
Set ob2 = ob1.CreateItem(0)
str = "Hello!" & vbNewLine & vbNewLine & "To prevent further costs," _
& vbNewLine & "please pay before the deadline."
On Error Resume Next
With ob2
.To = Range("C5").Value
.cc = ""
.BCC = ""
.Subject = "Request to Pay Bill"
.Body = str
.Send
End With
On Error GoTo 0
Set ob2 = Nothing
Set ob1 = Nothing
End Sub
- 그런 다음 RubSub 버튼 또는 키보드 단축키 F5 누르기 .
- 그런 다음 매크로 대화 상자가 나타납니다. 오른쪽 매크로 를 클릭하십시오. 그런 다음 실행 을 누르십시오. 버튼.
- 이제 Outlook으로 이동하면 신청서를 작성하고 받은 편지함을 확인하면 VBA 매크로 를 통해 방금 보낸 메일을 찾아드립니다. Excel에서.
VBA 코드 설명
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Su
Set r = Intersect(Range("D5"), Target)
If r Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10 Then
Call Send_Mail_Automatically1
End If
End Sub
우리는 비공개 서브를 사용할 것입니다. 이것을 위해. 매크로 를 사용하지 않기 때문에 이 코드를 실행하는 창입니다. 셀 값이 변경되면 이 코드가 자동으로 실행됩니다. 비공개 구독을 사용합니다. 워크시트 변경으로 이벤트. 그런 다음 셀 수를 D5인 하나로 줄입니다. . 그런 다음 10 이상인지 확인합니다. . 마지막으로 조건이 충족되면 Send_Email_Automatically1 하위 절차 실행됩니다.
Sub Send_Mail_Automatically1()
Dim ob1 As Object
Dim ob2 As Object
Dim str As String
Set ob1 = CreateObject("Outlook.Application")
Set ob2 = ob1.CreateItem(0)
str = "Hello!" & vbNewLine & vbNewLine & "To prevent further costs," & vbNewLine & "please pay before the deadline."
On Error Resume Next
With ob2
.To = Range("C5").Value
.cc = ""
.BCC = ""
.Subject = "Request to Pay Bill"
.Body = str
.Send
여기에서는 Send_Email_Automatically1을 사용합니다. 하위 절차 . 그런 다음 변수 유형을 선언합니다. Outlook 을 사용합니다. 우리의 이메일 클라이언트로. 그런 다음 이메일 내용을 코드에 입력합니다. 문자열 이메일 본문을 표시한 다음 셀 값 C5로 이메일을 보내려고 합니다. , 고객의 이메일이 저장되는 위치에 제목을 '.Subject '. 이어 '.Send '을(를) 사용하여 이메일을 보냅니다.
자세히 알아보기: 셀 내용을 기반으로 Excel에서 자동으로 이메일 보내기(2가지 방법)
2. VBA 코드를 사용하여 마감일에 따라 자동으로 이메일 보내기
이 방법에서는 Excel VBA 매크로를 사용하여 청구서 만기일이 가까워지면 자동으로 이메일을 보냅니다. 이것은 일종의 알림 역할을 합니다. 이를 시연하기 위해 아래 데이터 세트를 사용합니다. 데이터 세트에는 B 열에 일부 고객 이름이 포함되어 있습니다. , C 열의 이메일 주소 , D 열에 보내려는 메시지 , 및 E 열의 만기일 . 그럼 조건이 만족되는 날짜에 따라 자동으로 메일을 보내는 단계를 알아보겠습니다.
단계:
- 먼저 개발 리본에서 r 탭.
- 둘째, Visual Basic을 클릭합니다. Visual Basic Editor 열기 .
- Visual Basic Editor를 여는 또 다른 방법 Alt + F11을 누르기만 하면 됩니다. .
- 또는 시트를 마우스 오른쪽 버튼으로 클릭한 다음 코드 보기를 선택합니다. .
- 시각적 기본 창이 열립니다.
- 그런 다음 VBA 코드를 복사하여 붙여넣습니다. 아래.
VBA 코드:
Public Sub Send_Email_Automatically2()
Dim rngD, rngS, rngT As Range
Dim ob1, ob2 As Object
Dim LRow, x As Long
Dim l, strbody, rSendValue, mSub As String
On Error Resume Next
Set rngD = Application.InputBox("Deadline Range:", "Exceldemy", , , , , , 8)
If rngD Is Nothing Then Exit Sub
Set rngS = Application.InputBox("Email Range:", "Exceldemy", , , , , , 8)
If rngS Is Nothing Then Exit Sub
Set rngT = Application.InputBox("Email Topic Range:", "Exceldemy", , , , , , 8)
If rngT Is Nothing Then Exit Sub
LRow = rngD.Rows.Count
Set rngD = rngD(1)
Set rngS = rngS(1)
Set rngT = rngT(1)
Set ob1 = CreateObject("Outlook.Application")
For x = 1 To LRow
rngDValue = ""
rngDValue = rngD.Offset(x - 1).Value
If rngDValue <> "" Then
If CDate(rngDValue) - Date <= 7 And CDate(rngDValue) - Date > 0 Then
rngSValue = rngS.Offset(x - 1).Value
mSub = rngT.Offset(x - 1).Value & " on " & rngDValue
l = "<br><br>"
strbody = "<HTML><BODY>"
strbody = strbody & "Hello! " & rngSValue & l
strbody = strbody & rngT.Offset(x - 1).Value & l
strbody = strbody & "</BODY></HTML>"
Set ob2 = ob1.CreateItem(0)
With ob2
.Subject = mSub
.To = rSendValue
.HTMLBody = strbody
.Send
End With
Set ob2 = Nothing
End If
End If
Next
Set ob1 = Nothing
End Sub
- 또한 F5 키를 누릅니다. 또는 Sub 실행을 클릭합니다. 버튼을 눌러 코드를 실행하세요.
- 이제 마감일 열 범위를 선택하고 확인을 클릭합니다. .
- 마찬가지로 이메일 열 범위를 선택하고 확인을 누릅니다. 계속합니다.
- 그런 다음 메시지 열 범위를 선택하고 확인을 클릭합니다. .
- 그리고, 그게 다야. 이제 메시지가 이메일 주소로 전송됩니다. Outlook을 확인할 수 있습니다. 확인하기 위해 받은편지함.
VBA 코드 설명
Public Sub Send_Email_Automatically2()
Dim rngD, rngS, rngT As Range
Dim ob1, ob2 As Object
Dim LRow, x As Long
Dim l, strbody, rSendValue, mSub As String
On Error Resume Next
Set rngD = Application.InputBox("Deadline Range:", "Exceldemy", , , , , , 8)
If rngD Is Nothing Then Exit Sub
Set rngS = Application.InputBox("Email Range:", "Exceldemy", , , , , , 8)
If rngS Is Nothing Then Exit Sub
Set rngT = Application.InputBox("Email Topic Range:", "Exceldemy", , , , , , 8)
If rngT Is Nothing Then Exit Sub
LRow = rngD.Rows.Count
Set rngD = rngD(1)
Set rngS = rngS(1)
Set rngT = rngT(1)
Set ob1 = CreateObject("Outlook.Application")
여기서 다시 비공개 구독을 사용합니다. , Send_Email_Automatically2 Sub의 이름입니다. . 절차 . 변수 종류를 선언합니다. 그런 다음 InputBox 를 사용합니다. 값 범위를 제공합니다. 그런 다음 Outlook 을 선택합니다. 우리의 메일 클라이언트로.
For x = 1 To LRow
rngDValue = ""
rngDValue = rngD.Offset(x - 1).Value
If rngDValue <> "" Then
If CDate(rngDValue) - Date <= 7 And CDate(rngDValue) - Date > 0 Then
rngSValue = rngS.Offset(x - 1).Value
mSub = rngT.Offset(x - 1).Value & " on " & rngDValue
l = "<br><br>"
strbody = "<HTML><BODY>"
strbody = strbody & "Hello! " & rngSValue & l
strbody = strbody & rngT.Offset(x - 1).Value & l
strbody = strbody & "</BODY></HTML>"
Set ob2 = ob1.CreateItem(0)
With ob2
.Subject = mSub
.To = rSendValue
.HTMLBody = strbody
.Send
그런 다음 VBA CDate를 사용합니다. 날짜가 현재 날짜로부터 7일 이내인지 확인하는 함수입니다. 그런 다음 코드에서 이메일 내용을 설정합니다. 마지막으로 '.Send를 사용합니다. '를 눌러 이메일을 보내주세요.
자세히 알아보기: 날짜를 기준으로 Excel에서 자동으로 이메일을 보내는 방법
유사한 수치
- 공유 Excel 파일에 누가 있는지 확인하는 방법(빠른 단계 사용)
- Excel에서 통합 문서 공유를 활성화하는 방법
- VBA를 사용하여 Excel 워크시트에서 자동으로 미리 알림 이메일 보내기
- Excel을 사용하여 Outlook에서 대량 이메일을 보내는 방법(3가지 방법)
- 첨부 파일이 있는 Excel에서 이메일을 보내기 위해 매크로를 적용하는 방법
3. 여러 조건이 충족되면 Excel VBA를 사용하여 자동으로 이메일 보내기
이 방법에서는 다시 VBA를 사용합니다. 매크로 이메일을 보내려고 하지만 이 때 여러 조건이 충족되는 경우에만 메시지가 고객에게 전송됩니다. 그럼 자동으로 이메일을 보내는 과정을 살펴보겠습니다.
단계:
- 시작하려면 개발자를 클릭하세요. 리본의 탭입니다.
- 둘째, Visual Basic Editor 실행 Visual Basic을 클릭하여 .
- 또는 Visual Basic Editor에 액세스할 수 있습니다. Alt + F11을 눌러 .
- 또는 오른쪽 클릭 시트에서 코드 보기를 선택합니다. 메뉴에서.
- 시각적 기본 창이 나타납니다.
- 여기에 코드를 작성하세요.
VBA 코드:
Sub Send_Email_Automatically3()
Dim wrksht As Worksheet
Dim add As String, mSub As String, N As String
Dim eRow As Long, x As Long
Set wrksht = ThisWorkbook.Sheets("Multiple Conditions")
With wrksht
eRow = .Cells(.Rows.Count, 5).End(xlUp).Row
For x = 5 To eRow
If .Cells(x, 4) >= 1 And .Cells(x, 5) = "Yes" Then
add = .Cells(x, 3)
mSub = "Request to Pay Bill"
N = .Cells(x, 2)
Call Multiple_Conditions(add, mSub, N)
End If
Next x
End With
End Sub
Sub Multiple_Conditions(mAddress As String, mSubject As String, eName As String)
Dim ob1 As Object
Dim ob2 As Object
Set ob1 = CreateObject("Outlook.Application")
Set ob2 = ob1.CreateItem(0)
With ob2
.To = add
.CC = ""
.BCC = ""
.Subject = mSub
.Body = "Hello!" & N & ", To prevent further costs, please pay before the deadline."
.Attachments.add ActiveWorkbook.FullName
.Send
End With
Set pMail = Nothing
Set pApp = Nothing
End Sub
- 마지막으로 F5 키 를 누릅니다. 코드를 실행합니다.
- 매크로 그 후에 대화 상자가 나타납니다. 그런 다음 적절한 매크로 를 선택하십시오. 실행을 누릅니다. 버튼.
- 마찬가지로 이전 방법에서 Outlook을 열면 사서함을 보면 VBA 매크로를 통해 방금 보낸 이메일이 표시됩니다. Excel에서.
VBA 코드 설명
Sub Send_Email_Automatically3()
Dim wrksht As Worksheet
Dim add As String, mSub As String, N As String
Dim eRow As Long, x As Long
Set wrksht = ThisWorkbook.Sheets("Multiple Conditions")
With wrksht
eRow = .Cells(.Rows.Count, 5).End(xlUp).Row
For x = 5 To eRow
If .Cells(x, 4) >= 1 And .Cells(x, 5) = "Yes" Then
add = .Cells(x, 3)
mSub = "Request to Pay Bill"
N = .Cells(x, 2)
Call Multiple_Conditions(add, mSub, N)
여기서는 두 가지 다른 절차를 사용합니다. Send_Email_Automatically3 첫 번째 하위 프로시저의 이름입니다. . 우리는 '여러 조건을 설정했습니다. '를 시트로 만들고 변수 를 선언합니다. 종류. 그런 다음 마지막 행 번호를 찾습니다. 또한 우리의 값은 5 행에서 시작하기 때문에 , 5 행을 이동했습니다. 코드 끝까지.
Sub Multiple_Conditions(mAddress As String, mSubject As String, eName As String)
Dim ob1 As Object
Dim ob2 As Object
Set ob1 = CreateObject("Outlook.Application")
Set ob2 = ob1.CreateItem(0)
With ob2
.To = add
.CC = ""
.BCC = ""
.Subject = mSub
.Body = "Hello!" & N & ", To prevent further costs, please pay before the deadline."
.Attachments.add ActiveWorkbook.FullName
.Send
그런 다음 Multiple_Conditions를 호출합니다. , 두 번째 하위 절차 . Outlook 을 선택합니다. 우리의 메일 클라이언트로. 그런 다음 코드에서 이메일 내용을 설정합니다. 첨부파일 사용 기술, 우리는 이메일에 Excel 파일을 추가하고 있습니다. 그런 다음 이메일을 사용하여 '.Send '.
자세히 알아보기: Excel에서 조건이 충족되면 이메일을 보내는 방법(3가지 쉬운 방법)
결론
위의 방법은 Excel에서 조건이 충족되면 자동으로 이메일 보내기에 도움이 됩니다. . 이것이 도움이 되기를 바랍니다! 질문, 제안 또는 피드백이 있으면 의견 섹션에 알려주십시오. 또는 ExcelDemy.com에서 다른 기사를 볼 수 있습니다. 블로그!
관련 기사
- Excel에서 Outlook으로 자동 이메일을 보내는 방법(4가지 방법)
- 매크로를 사용하여 본문과 함께 Excel에서 이메일을 보내는 방법(간단한 단계 포함)
- Excel 매크로:셀의 주소로 이메일 보내기(2가지 쉬운 방법)
- Excel 스프레드시트에서 여러 이메일을 보내는 방법(2가지 쉬운 방법)
- 본문과 함께 Excel에서 이메일을 보내는 매크로(3가지 유용한 사례)
- 수정 가능한 Excel 스프레드시트를 이메일로 보내는 방법(3가지 빠른 방법)