Computer >> 컴퓨터 >  >> 소프트웨어 >> 우편

VBA 스크립트를 사용하여 Excel 스프레드시트에서 이메일을 보내는 방법

Microsoft Excel에서 이메일을 보내려면 몇 가지 간단한 스크립트만 있으면 됩니다. 이 기능을 스프레드시트에 추가하면 Excel에서 수행할 수 있는 작업을 실제로 향상시킬 수 있습니다.

우리는 VBA 스크립트와 동일한 작업을 수행할 수 있지만 프로그래밍 지식이 없어도 수행할 수 있는 훌륭한 Excel 매크로를 많이 다루었습니다. 그러나 모든 PC 정보로 스프레드시트 보고서를 만드는 것과 같이 VBA로만 할 수 있는 고급 작업이 많이 있습니다.

이 튜토리얼을 비디오로 시청하시겠습니까? 우리가 당신을 덮었습니다!

Excel에서 이메일을 보내는 이유

Microsoft Excel 내에서 이메일을 보내야 하는 데에는 여러 가지 이유가 있습니다.

문서나 스프레드시트를 매주 업데이트하는 직원이 있고 업데이트가 완료되면 이메일 알림을 받고 싶을 수 있습니다. 또는 연락처 스프레드시트가 있고 한 번에 모든 연락처에 하나의 이메일을 보내고 싶을 수 있습니다.

Excel에서 이메일 브로드캐스트를 스크립팅하는 것이 복잡할 것이라고 생각할 수 있습니다. 전혀 그렇지 않습니다.

이 기사의 기술은 Excel VBA에서 오랫동안 사용할 수 있었던 기능인 Collaboration Data Objects를 사용합니다. (CDO).

VBA 스크립트를 사용하여 Excel 스프레드시트에서 이메일을 보내는 방법

CDO는 OS의 초기 세대부터 Windows에서 사용되는 메시징 구성 요소입니다. 예전에는 CDONTS라고 부르다가 Windows 2000과 XP가 등장하면서 "CDO for Windows 2000"으로 바뀌었습니다. 이 구성 요소는 Microsoft Word 또는 Excel 내의 VBA 설치에 이미 포함되어 있으며 사용할 준비가 되었습니다.

구성 요소를 사용하면 VBA가 포함된 Windows 제품 내에서 이메일을 매우 쉽게 보낼 수 있습니다. 이 예에서는 Excel의 CDO 구성 요소를 사용하여 특정 Excel 셀의 결과를 전달할 이메일을 보냅니다.

1단계:VBA 매크로 만들기

첫 번째 단계는 Excel 개발자 탭으로 이동하는 것입니다.

개발자 탭에서 삽입을 클릭합니다. 컨트롤 상자에서 명령 단추를 선택하십시오.

VBA 스크립트를 사용하여 Excel 스프레드시트에서 이메일을 보내는 방법

시트에 그린 다음 매크로를 클릭하여 새 매크로를 만듭니다. 개발자 리본에서.

VBA 스크립트를 사용하여 Excel 스프레드시트에서 이메일을 보내는 방법

만들기를 클릭하면 버튼을 누르면 VBA 편집기가 열립니다.

도구로 이동하여 CDO 라이브러리에 대한 참조를 추가합니다.> 참조 편집기에서.

VBA 스크립트를 사용하여 Excel 스프레드시트에서 이메일을 보내는 방법

Windows 2000용 Microsoft CDO 라이브러리를 찾을 때까지 목록을 아래로 스크롤합니다. . 확인란을 선택하고 확인을 클릭합니다. .

VBA 스크립트를 사용하여 Excel 스프레드시트에서 이메일을 보내는 방법

확인을 클릭하면 , 스크립트를 붙여넣는 함수의 이름을 기록해 둡니다. 나중에 필요합니다.

2단계:CDO "From" 및 "To" 필드 설정

이렇게 하려면 먼저 메일 개체를 만들고 이메일을 보내는 데 필요한 모든 필드를 설정해야 합니다.

많은 필드가 선택사항이지만 보낸사람받는 사람 필드는 필수입니다.

Dim CDO_Mail As Object
Dim CDO_Config As Object
Dim SMTP_Config As Variant
Dim strSubject As String
Dim strFrom As String
Dim strTo As String
Dim strCc As String
Dim strBcc As String
Dim strBody As String
strSubject = "Results from Excel Spreadsheet"
strFrom = "rdube02@gmail.com"
strTo = "rdube02@gmail.com"
strCc = ""
strBcc = ""
strBody = "The total results for this quarter are: " & Str(Sheet1.Cells(2, 1))

이것의 멋진 점은 전체 이메일 메시지를 사용자 정의하고 strBody 변수.

&를 사용하여 메시지의 구성요소를 결합합니다. 문자열을 사용하여 위에 표시된 것처럼 Microsoft Excel 시트의 데이터를 이메일 메시지에 바로 삽입할 수 있습니다.

3단계:외부 SMTP를 사용하도록 CDO 구성

다음 코드 섹션에서는 외부 SMTP 서버를 사용하여 이메일을 보내도록 CDO를 구성합니다.

이 예는 Gmail을 통한 비 SSL 설정입니다. CDO는 SSL을 사용할 수 있지만 이는 이 기사의 범위를 벗어납니다. SSL을 사용해야 하는 경우 Github의 이 고급 코드가 도움이 될 수 있습니다.

Set CDO_Mail = CreateObject("CDO.Message")
On Error GoTo Error_Handling
Set CDO_Config = CreateObject("CDO.Configuration")
CDO_Config.Load -1
Set SMTP_Config = CDO_Config.Fields
With SMTP_Config
.Item("https://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("https://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("https://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("https://schemas.microsoft.com/cdo/configuration/sendusername") = "email@website.com"
.Item("https://schemas.microsoft.com/cdo/configuration/sendpassword") = "password"
.Item("https://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
.Item("https://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Update
End With
With CDO_Mail
Set .Configuration = CDO_Config
End With

4단계:CDO 설정 완료

이제 이메일을 보내기 위해 SMTP 서버에 대한 연결을 구성했으므로 CDO_Mail 개체에 대한 적절한 필드를 채우기만 하면 됩니다. , Send를 발행합니다. 명령.

방법은 다음과 같습니다.

CDO_Mail.Subject = strSubject
CDO_Mail.From = strFrom
CDO_Mail.To = strTo
CDO_Mail.TextBody = strBody
CDO_Mail.CC = strCc
CDO_Mail.BCC = strBcc
CDO_Mail.Send
Error_Handling:
If Err.Description <> "" Then MsgBox Err.Description

Outlook 메일 개체를 사용할 때 발생할 수 있는 팝업 상자나 보안 경고 메시지가 없습니다.

CDO는 단순히 이메일을 정리하고 SMTP 서버 연결 세부 정보를 활용하여 메시지를 시작합니다. 이메일을 Microsoft Word 또는 Excel VBA 스크립트에 통합하는 가장 쉬운 방법입니다.

명령 버튼을 이 스크립트에 연결하려면 코드 편집기로 이동하여 Sheet1을 클릭하세요. 해당 워크시트의 VBA 코드를 보려면

위의 스크립트를 붙여넣은 함수의 이름을 입력하십시오.

VBA 스크립트를 사용하여 Excel 스프레드시트에서 이메일을 보내는 방법

받은 편지함에서 받은 메시지는 다음과 같습니다.

VBA 스크립트를 사용하여 Excel 스프레드시트에서 이메일을 보내는 방법

참고 :전송이 서버에 연결하지 못했습니다라는 오류가 표시되는 경우 , With SMTP_Config 아래에 나열된 코드 줄에 올바른 사용자 이름, 비밀번호, SMTP 서버 및 포트 번호를 입력했는지 확인하십시오. .

더 나아가 전체 프로세스 자동화

버튼 하나만 누르면 Excel에서 전자 메일을 보낼 수 있다는 것은 정말 좋은 일입니다. 그러나 이 기능을 정기적으로 사용하고 싶을 수도 있습니다. 이 경우 프로세스를 자동화하는 것이 좋습니다.

이렇게 하려면 매크로를 변경해야 합니다. Visual Basic Editor로 이동하여 함께 만든 전체 코드를 복사하여 붙여넣습니다.

다음으로 ThisWorkbook을 선택합니다. 프로젝트에서 계층.

코드 창 상단에 있는 두 개의 드롭다운 필드에서 통합 문서를 선택합니다. 열기를 선택합니다. 방법 드롭다운에서.

위의 이메일 스크립트를 Private Sub Workbook_Open()에 붙여넣습니다. .

Excel 파일을 열 때마다 매크로가 실행됩니다.

VBA 스크립트를 사용하여 Excel 스프레드시트에서 이메일을 보내는 방법

다음으로 작업 스케줄러를 엽니다. .

이 도구를 사용하여 정기적으로 스프레드시트를 자동으로 열도록 Windows에 요청합니다. 이 때 매크로가 시작되어 이메일을 보냅니다.

VBA 스크립트를 사용하여 Excel 스프레드시트에서 이메일을 보내는 방법

기본 작업 만들기...를 선택합니다. 액션에서 메뉴를 선택하고 작업에 도달할 때까지 마법사를 통해 작업합니다. 화면.

프로그램 시작을 선택합니다. 다음을 클릭합니다. .

VBA 스크립트를 사용하여 Excel 스프레드시트에서 이메일을 보내는 방법

찾아보기 사용 버튼을 눌러 컴퓨터에서 Microsoft Excel의 위치를 ​​찾거나 경로를 복사하여 프로그램/스크립트에 붙여넣습니다. 필드.

그런 다음 인수 추가에 Microsoft Excel 문서의 경로를 입력합니다. 필드.

마법사를 완료하면 예약이 완료됩니다.

앞으로 몇 분 동안 작업을 예약하여 테스트를 실행한 다음 작동하는지 확인한 후 작업을 수정하는 것이 좋습니다.

참고 :매크로가 제대로 실행되도록 보안 센터 설정을 조정해야 할 수도 있습니다.

그렇게 하려면 스프레드시트를 열고 파일로 이동합니다.> 옵션> 신뢰 센터 .

여기에서 보안 센터 설정을 클릭합니다. , 다음 화면에서 라디오 다이얼을 차단된 콘텐츠에 대한 정보 표시 안 함으로 설정합니다. .

Microsoft Excel을 사용하세요

Microsoft Excel은 믿을 수 없을 정도로 강력한 도구이지만 최대한 활용하는 방법을 배우는 것이 다소 어려울 수 있습니다. 소프트웨어를 진정으로 숙달하려면 VBA에 익숙해져야 하며 이는 쉬운 일이 아닙니다.

그러나 결과는 스스로를 말해줍니다. 약간의 VBA 경험이 있으면 곧 Microsoft Excel이 기본 작업을 자동으로 수행하도록 하여 보다 긴급한 문제에 더 많은 시간을 집중할 수 있습니다.

VBA로 전문 지식을 쌓는 데는 시간이 걸리지만 꾸준히 하면 곧 노력의 결실을 보게 될 것입니다.

시작하기에 좋은 곳 중 하나는 Excel에서 VBA 사용에 대한 신뢰할 수 있는 자습서입니다. 이 작업을 마치면 Excel에서 이메일을 보내는 이 간단한 스크립트가 마치 어린애처럼 느껴질 것입니다.