이 기사에서는 Microsoft Excel에서 VBA를 사용하여 편지 병합을 자동화하는 방법에 대해 알아 봅니다.

편지 병합 :-데이터의 정보를 텍스트로 병합 한 다음 문서를 인쇄하는 소스입니다. 이러한 작업을 수행하기 위해 Microsoft Word를 사용합니다.

간단한 연습으로 이해하겠습니다.-보고서 시트에 편지 형식이 있고 편지 세부 정보도 변경하려는 VBA를 통해 편지 병합을 적용하려고합니다.

image 1

2 장입니다. 1 장에는 우리가 편지를주고 자하는 세부 사항이있는 데이터가 포함되어 있습니다. 첫 번째 데이터에서 A 열에는 이름, B 열에는 주소, C 열에는 도시, D 열 지역, E 열 및 F 열에는 우편 번호가 포함됩니다. 보고서 시트에서 이동할 수있는 명령 단추가 하나 있습니다.

image 2

2 ^ nd ^ 시트에는 2 개의 명령 버튼이있는 문자 형식이 있습니다. 데이터 시트에서 이동하는 하나의 단추와 두 번째 명령 단추는 편지 병합을 위해 작동하는 것입니다

image 3

먼저 Main Data의 Command 버튼에 대한 VBA 코드를 작성합니다. 아래 단계를 따라야합니다 :-* 먼저 워크 시트에 명령 단추를 삽입합니다.

  • 개발자 탭으로 이동 한 다음 Activexcontrol에서 명령 버튼을 삽입합니다.

  • 명령 버튼의 이름을 “Letter”라는 이름으로 바꾸고 이제 아래 언급 된 매크로를 할당합니다.-Private Sub Main_data_Click ()

Worksheets ( “Report”). Activate Range ( “A19”). Show End Sub 이제 보고서 시트에 두 번째 명령 단추를 삽입하고 첫 번째 시트로 이동할 매크로를 할당합니다. 아래 주어진 단계를 따라야합니다 :-* “Data”라는 이름으로 Command 버튼의 이름을 바꾸고 아래 언급 된 매크로를 할당합니다.-Private Sub CommandButton2_Click ()

Worksheets ( “Main_Data”). Activate Range ( “A1”). Show End Sub 이제 다음 단계에 따라 편지 병합에 대한 기본 코드를 작성합니다.-명령 단추를 삽입하고 이름을 “Letter Print”로 바꾼 다음 아래 언급 된 코드를 할당하십시오 :-Private Sub CommandButton1_Click ()

Dim StartrowAs Integer, lastrow As Integer Dim MsgAs String Dim TotalrecordsAs String Dim name As String, Street_AddressAs String, city As String, region As String, country As String, postal As String Totalrecords = “= counta (Main_Data! A : A)”

Range ( “L1”) = 총 레코드 Dim mydate As Date Set WRP = Sheets ( “Report”)

mydate = 날짜 WRP.Range ( “A9”) = mydate WRP.Range ( “A9”). NumberFormat = “[$ -F800] dddd, mmmm, dd, yyyy”

WRP.Range ( “A9”). HorizontalAlignment = xlLeft Startrow = InputBox ( “인쇄 할 첫 번째 레코드를 입력하십시오.”)

lastrow = InputBox ( “인쇄 할 마지막 레코드를 입력하십시오.”)

If Startrow> lastrow Then Msg = “ERROR”& vbCrLf & “시작 행은 마지막 행보다 작아야합니다.”

Msgbox Msg, vbCritical, “ExcelTip”

End If For i = Startrow To lastrow name = Sheets ( “Main_data”). Cells (i, 1)

Street_Address = Sheets ( “Main_data”). Cells (i, 2)

city ​​= Sheets ( “Main_data”). Cells (i, 3)

region = Sheets ( “Main_data”). Cells (i, 4)

country = Sheets ( “Main_data”). Cells (i, 5)

postal = Sheets ( “Main_data”). Cells (i, 6)

Sheets ( “Report”). Range ( “A7”) = 이름 & vbCrLf & Street_Address & vbCrLf & 도시 및 지역 및 국가 & vbCrLf & postal Sheets ( “Report”). Range ( “A11”) = “Dear”& “”& name & “,”

CheckBox1 = True If CheckBox1 Then ActiveSheet.PrintPreview Else ActiveSheet.PrintOut End If Next i End Sub Code 설명 :-먼저 변수를 정의한 다음 날짜 및 날짜 형식을 정의한 다음 마지막 행과 시작 행을 정의합니다. . 그런 다음 메시지를 전송하기위한 메시지 상자를 만들었습니다. 그런 다음 문자로 캡처하려는 데이터와 범위를 정의합니다.

  • 코드를 실행하려면 키보드에서 F5 키를 누르십시오.

  • 그런 다음 첫 번째 기록 지점을 입력해야합니다. 그 후 포인트의 마지막 기록을 입력하는 새 메시지 상자가 나타납니다.

image 4

image 5

  • 그러면 아래 표시된 문서가 표시됩니다

image 6

  • 편지는 메인 데이터에 언급 된 내용에 따라 업데이트됩니다.

이것이 Microsoft Excel에서 VBA를 통해 편지 병합을 자동화 할 수있는 방법입니다.