Excel 스프레드시트에 나열된 사용자에게 이메일을 보내는 작업이 있었습니다. 각 이메일에는 각 사용자에 대한 개인 정보가 포함되어야 했습니다. 컴퓨터에 구성된 Outlook 프로필에서 이메일을 보낸 Excel의 VBA 매크로를 사용하여 시도했습니다. 여기 내 솔루션이 있습니다.
다음 열이 있는 Excel 파일이 있다고 가정합니다.
Email | Full Name | Last Password Change Date | Account status
내 임무는 이 템플릿에서 목록의 각 사용자에게 이메일을 보내는 것입니다.
제목 :woshub.com 도메인의 계정 상태본문 :%FullUsername%님,
woshub.com 도메인의 귀하의 계정은 %status% 상태입니다.
마지막 비밀번호 변경 날짜와 시간은 %pwdchange%입니다.
새 매크로 만들기:보기 -> 매크로 . 매크로 이름 지정(send_email) 만들기를 클릭합니다. :
표시되는 VBA 편집기에 다음 코드를 복사하여 붙여넣습니다(관련 설명을 작성했습니다). 이메일 전송을 자동화하기 위해 VBA 스크립트 내에서 Outlook 개체를 만들고 사용할 수 있는 CreateObject("Outlook.Application") 기능을 사용하겠습니다.
중요 . 보내는 컴퓨터에서 Outlook 프로필을 구성해야 합니다. 이 편지함(및 이메일 주소)은 이메일을 보내는 데 사용됩니다.
Sub send_email()
Dim olApp As Object
Dim olMailItm As Object
Dim iCounter As Integer
Dim Dest As Variant
Dim SDest As String
' Subject
strSubj = "Your account status on woshub.com domain"
On Error GoTo dbg
' Create a new Outlook object
Set olApp = CreateObject("Outlook.Application")
For iCounter = 1 To WorksheetFunction.CountA(Columns(1))
' Create a new item (email) in Outlook
Set olMailItm = olApp.CreateItem(0)
strBody = ""
useremail = Cells(iCounter, 1).Value
FullUsername = Cells(iCounter, 2).Value
Status = Cells(iCounter, 4).Value
pwdchange = Cells(iCounter, 3).Value
'Make the body of an email
strBody = "Dear " & FullUsername & vbCrLf
strBody = strBody & " Your account in woshub.com domain is in" & Status & “ state” & vbCrLf
strBody = strBody & "The date and time of the last password change is" & pwdchange & vbCrLf
olMailItm.To = useremail
olMailItm.Subject = strSubj
olMailItm.BodyFormat = 1
' 1 – text format of an email, 2 - HTML format
olMailItm.Body = strBody
olMailItm.Send
Set olMailItm = Nothing
Next iCounter
Set olApp = Nothing
dbg:
'Display errors, if any
If Err.Description <> "" Then MsgBox Err.Description
End Sub
이 Excel 파일을 .xlsm으로 저장합니다. (매크로를 지원하는 Excel 통합 문서 형식). 이메일을 보내려면 생성된 프로시저(매크로)를 선택하고 실행을 클릭하십시오.
매크로는 Excel 워크시트의 모든 행을 하나씩 살펴보고 목록의 각 수신자에게 이메일을 생성하여 보냅니다.