요약
이 문서에서는 Microsoft Word 문서의 데이터를 사용하는 Visual Basic for Applications 매크로와 Microsoft Outlook에서 메시지를 보내는 Microsoft Excel 통합 문서에 대해 설명합니다.
추가 정보
중요합니다
Microsoft에서 제공하는 프로그래밍 예제는 예시를 위한 것일 뿐이며 이와 관련하여 명시적이거나 묵시적인 어떠한 보증도 하지 않습니다. 이는 상품성이나 특정 목적에 대한 적합성의 묵시적인 보증을 포함하며 이에 제한되지 않습니다. 이 문서에서는 예제에 사용되고 있는 프로그래밍 언어와 프로시저를 만들고 디버깅하는 데 사용되는 도구를 사용자가 잘 알고 있는 것으로 가정합니다. Microsoft 지원 엔지니어는 사용자에게 도움이 되도록 특정 프로시저에 대한 기능을 설명할 수 있지만 사용자의 특정 요구 사항에 맞도록 예제를 수정하여 추가 기능을 제공하거나 프로시저를 구성하지는 않습니다.
다음 예제에서는 워크시트에 정의된 이름이 두 개 있다고 가정합니다.
- 제목 셀 첫 번째 정의된 이름은 메시지 제목 줄이 포함된 셀을 참조합니다(예: "테스트 메시지입니다.").
- 두 번째 정의된 이름인 tolist받는 사람 목록이 포함된 가로 목록의 첫 번째 셀을 참조합니다(예: "John Doe", "Jane Doe" 등).
Microsoft Word 문서도 있어야 합니다. 이 문서의 텍스트는 매크로에서 메일 메시지의 메시지 본문으로 사용됩니다.
Sub SendOutlookMessages()'Dimension variables.
Dim OL As Object, MailSendItem As Object
Dim W As Object
Dim MsgTxt As String, SendFile As String
Dim ToRangeCounter As Variant
'Identifies Word file to send
SendFile = Application.GetOpenFilename(Title:="Select MS Word " & _
"file to mail, then click 'Open'", buttontext:="Send", _
MultiSelect:=False)'Starts Word session
Set W = GetObject(SendFile)'Pulls text from file for message body
MsgTxt = W.Range(Start:=W.Paragraphs(1).Range.Start, _
End:=W.Paragraphs(W.Paragraphs.Count).Range.End)'Ends Word session
Set W = Nothing
'Starts Outlook session
Set OL = CreateObject("Outlook.Application")
Set MailSendItem = OL.CreateItem(olMailItem)
ToRangeCounter = 0
'Identifies number of recipients for To list.
For Each xCell In ActiveSheet.Range(Range("tolist"), _
Range("tolist").End(xlToRight))
ToRangeCounter = ToRangeCounter + 1
Next xCell
If ToRangeCounter = 256 Then ToRangeCounter = 1
'Creates message
With MailSendItem
.Subject = ActiveSheet.Range("subjectcell").Text
.Body = MsgTxt
'Creates "To" list
For Each xRecipient In Range("tolist").Resize(1, ToRangeCounter)
RecipientList = RecipientList & ";" & xRecipient
Next xRecipient
.To = RecipientList
.Send
End With
'Ends Outlook session
Set OL = Nothing
End Sub