• 최초 작성일: 1999-10-09
  • 최종 수정일: 2026-09-29
  • 조회수: 43 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: DM 발송용 주소 인쇄

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

원본 통합 문서는 source 시트의 주소 데이터를 DM 발송용 주소 형식으로 재배치하는 예제로 구성되어 있습니다.

주소를 한 건씩 다시 입력하지 않고 VBA로 우편번호, 주소, 회사명, 수신자를 조합해 두 열의 주소 라벨 형태로 만드는 구조를 살펴봅니다.

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 지음

📊 신간 전자책(PDF) · 287쪽 · 13500원

엑셀 대시보드를 만드는 최적의 '표준 3계층 구조'

  • 3초 안에 읽히는 화면 설계 감각 습득
  • Microsoft Excel MVP의 실전 노하우 수록
  • 중간마진 없는 합리적인 가격, 오직 아이엑셀러에서만!
지금 구매하기 완성 화면 보기

DM 발송용 주소 인쇄

핵심 요약

  • source 시트의 성명, 회사명, 우편번호, 주소 데이터를 순서대로 읽어옵니다.
  • VBA에서 줄바꿈 문자를 조합해 우편번호·주소·회사명·수신자 형식의 라벨 문자열을 만듭니다.
  • 짝수와 홀수 레코드를 A열과 B열에 번갈아 배치해 DM 발송용 주소록을 생성합니다.

원본 주소 데이터

성명 회사명 우편번호 주소 비고
홍길동 ㈜대서양 202-502 서울시 영등포구 신길동 22
김유신 동아생명 121-110 서울시 종로구 석수동1-16
김만원 대한생명 120-515 서울시 마포구 공덕동 15-1
안경석 삼보컴퓨터 202-554 서울시 중구 태평동1가 광희빌딩1317
이재민 진코퍼레이션 140-013 서울시 용산구 한강로 3가 63번지
나윤미 ㈜태평양 202-556 서울시 중구 태평로 6가 66
전윤길 ㈜대서양 202-556 서울시 영등포구 신길3동 123
민음사 인도양㈜ 202-556 서울시 중구 태평로 1가 61
신영복 중앙일보 202-556 서울시 중구 태평로 1가 61
박병진 대구매일신문 202-556 서울시 중구 태평로 1가 61
신동우 일간스포츠 202-556 서울시 중구 태평로 1가 61
이규보 웅진코웨이 202-559 서울시 중구 신화동 2
이규태 삼부토건 121-020 서울시 마포구 공덕동 1125
이규진 녹색시민연합 110-592 서울시 종로구 중곡동 147
김담당 ㈜대서양 110-592 서울시 종로구 중곡동 148
이담당 동아생명 110-592 서울시 종로구 중곡동 149
권담당 대한생명 202-551 서울시 중구 회현동 1230번지
조담당 삼보컴퓨터 202-528 서울시 중구 충정로 6가
장백산 진코퍼레이션 202-591 서울시 중구 죽립동 25번지
조정리 ㈜태평양 202-151 서울시 중구 충정로 3가 608-3
박경래 ㈜대서양 150-590 서울시 영등포구 여의도동 1번지
홍경래 인도양㈜ 150-528 서울시 영등포구 여의도동 2번지
안국신 중앙일보 150-010 서울시 영등포구 여의도동 10-5
이효수 대구매일신문 202-545 서울시 중구 청파동 25
박세일 ㈜대서양 140-132 서울시 용산구 이촌동2가103-7
함석훈 동아생명 140-132 서울시 용산구 청파동2가 100-1
김공삼 대한생명 140-013 서울시 용산구 한강로1가 182번지
김대종 삼보컴퓨터 156-160 서울시 동작구 신대방동 680번지
나희선 진코퍼레이션 150-046 서울시 영등포구 당산동 6가 25번지
김원미 ㈜태평양 110-140 서울시 종로구 수색동 81-25
이선형 ㈜대서양 202-551 서울시 중구 회현동 6가 121-2
진준기 인도양㈜ 202-545 서울시 용산구 한강로 1가 100번지
민준호 중앙일보 110-592 서울시 종로구 청학동 147번지
박종수 대구매일신문 501-558 대구시 중구 계산동 1209번지
김종태 일간스포츠 135-260 서울시 강남구 논현동 쌍문빌딩 1000

주소 라벨 만들기 VBA

Option Explicit
Sub MakeLable()
    Dim rngStart As Range
    Dim strString As String
    Dim intNum As Integer
    Dim intNum1 As Integer
    Dim shtTarget As Worksheet
    Set rngStart = Sheets("source").Range("a2")
    
    For Each shtTarget In Worksheets
        If shtTarget.Name = "주소록" Then
            Application.DisplayAlerts = False
            MsgBox "같은 시트가 이미 있으므로 지우겠습니다...", , "DM발송용 주소인쇄//LPRINCE"
            shtTarget.Delete
        End If
    Next shtTarget
    
    Worksheets.Add.Name = "주소록"
    ActiveSheet.Columns.ColumnWidth = Range("a1").ColumnWidth * 4
    
    Do While rngStart.Offset(intNum, 0) <> ""
        If intNum Mod 2 = 0 Then
            intNum1 = 0
        Else
            intNum1 = 1
        End If
        '// 짝수 레코드는 A열에, 홀수 레코드는 B열에 인쇄
        
        strString = rngStart.Offset(intNum, 2) & Chr(10) & _
            rngStart.Offset(intNum, 3) & Chr(10) & _
            rngStart.Offset(intNum, 1) & Chr(10) & _
            rngStart.Offset(intNum, 0) & " 귀하"
        Range("a1").Offset(Int(intNum / 2), intNum1) = strString
        intNum = intNum + 1
    Loop
    
    MsgBox "출력작업이 잘 끝났습니다..." & Chr(10) & _
        "총 " & intNum & "명이 등록되어 있습니다", , _
        "작업 종료//By LPRINCE"
    Application.Goto Sheets("source").Range("a1"), True
End Sub
Sub RecShow()
    Static blnShow As Boolean
    If blnShow Then
        ActiveSheet.DrawingObjects("MyRectangle").Width = 350
    Else
        ActiveSheet.DrawingObjects("myrectangle").Width = 0
    End If
    blnShow = Not blnShow
End Sub

참고: 위 코드의 RecShow 프로시저는 원문 워크시트의 도형(MyRectangle)의 너비를 바꿔 보이거나 숨기는 보조 매크로로, 주소 라벨을 만드는 MakeLable 프로시저와는 관계가 없습니다.

생성된 주소 라벨

202-502
서울시 영등포구 신길동 22
㈜대서양
홍길동 귀하
121-110
서울시 종로구 석수동1-16
동아생명
김유신 귀하
120-515
서울시 마포구 공덕동 15-1
대한생명
김만원 귀하
202-554
서울시 중구 태평동1가 광희빌딩1317
삼보컴퓨터
안경석 귀하
140-013
서울시 용산구 한강로 3가 63번지
진코퍼레이션
이재민 귀하
202-556
서울시 중구 태평로 6가 66
㈜태평양
나윤미 귀하
202-556
서울시 영등포구 신길3동 123
㈜대서양
전윤길 귀하
202-556
서울시 중구 태평로 1가 61
인도양㈜
민음사 귀하
202-556
서울시 중구 태평로 1가 61
중앙일보
신영복 귀하
202-556
서울시 중구 태평로 1가 61
대구매일신문
박병진 귀하
202-556
서울시 중구 태평로 1가 61
일간스포츠
신동우 귀하
202-559
서울시 중구 신화동 2
웅진코웨이
이규보 귀하
121-020
서울시 마포구 공덕동 1125
삼부토건
이규태 귀하
110-592
서울시 종로구 중곡동 147
녹색시민연합
이규진 귀하
110-592
서울시 종로구 중곡동 148
㈜대서양
김담당 귀하
110-592
서울시 종로구 중곡동 149
동아생명
이담당 귀하
202-551
서울시 중구 회현동 1230번지
대한생명
권담당 귀하
202-528
서울시 중구 충정로 6가
삼보컴퓨터
조담당 귀하
202-591
서울시 중구 죽립동 25번지
진코퍼레이션
장백산 귀하
202-151
서울시 중구 충정로 3가 608-3
㈜태평양
조정리 귀하
150-590
서울시 영등포구 여의도동 1번지
㈜대서양
박경래 귀하
150-528
서울시 영등포구 여의도동 2번지
인도양㈜
홍경래 귀하
150-010
서울시 영등포구 여의도동 10-5
중앙일보
안국신 귀하
202-545
서울시 중구 청파동 25
대구매일신문
이효수 귀하
140-132
서울시 용산구 이촌동2가103-7
㈜대서양
박세일 귀하
140-132
서울시 용산구 청파동2가 100-1
동아생명
함석훈 귀하
140-013
서울시 용산구 한강로1가 182번지
대한생명
김공삼 귀하
156-160
서울시 동작구 신대방동 680번지
삼보컴퓨터
김대종 귀하
150-046
서울시 영등포구 당산동 6가 25번지
진코퍼레이션
나희선 귀하
110-140
서울시 종로구 수색동 81-25
㈜태평양
김원미 귀하
202-551
서울시 중구 회현동 6가 121-2
㈜대서양
이선형 귀하
202-545
서울시 용산구 한강로 1가 100번지
인도양㈜
진준기 귀하
110-592
서울시 종로구 청학동 147번지
중앙일보
민준호 귀하
501-558
대구시 중구 계산동 1209번지
대구매일신문
박종수 귀하
135-260
서울시 강남구 논현동 쌍문빌딩 1000
일간스포츠
김종태 귀하

정리 — DM 발송용 주소 인쇄

구분내용
주제주소 원본 데이터를 DM 발송용 주소 라벨로 재배치하는 VBA
원본source 시트의 성명, 회사명, 우편번호, 주소
라벨 형식우편번호, 주소, 회사명, 수신자 귀하를 줄바꿈으로 조합
배치레코드를 A열과 B열에 번갈아 배치해 한 행에 두 명의 주소를 나란히 표시
주요 매크로MakeLable (주소록 시트를 새로 만들어 라벨 생성)

자주 묻는 질문 (FAQ)

Q1. 주소 라벨은 어떤 순서로 만들어지나요?

source 시트의 데이터를 위에서부터 차례로 읽어 우편번호, 주소, 회사명, 성명 귀하 순서로 줄바꿈 문자를 넣어 한 셀에 조합합니다.

Q2. 라벨은 어떻게 배치되나요?

첫 번째 레코드는 A열에, 두 번째 레코드는 B열에 번갈아 배치해 한 행에 두 명의 주소가 나란히 놓입니다.

Q3. 같은 이름의 주소록 시트가 이미 있으면 어떻게 되나요?

매크로가 같은 시트가 이미 있다는 메시지를 보여 준 뒤 기존 시트를 삭제하고 새로 만듭니다.

마치며

우편물 발송 작업이 잦다면 주소 라벨 생성 매크로로 반복 입력을 줄여 보시기 바랍니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.