엑셀 VBA 매크로를 사용하여 고지서나 명세서를 한번에 일괄로 자동 인쇄 하는 방법


엑셀을 활용하여 각종 고지서나 청구서 또는 다양한 명세서 등을 인쇄하거나 관리하기 위한 목록을 만들게 됩니다.
이렇게 만들어진 목록으로 해당 서식으로 인쇄해서 사용하기도 합니다.

각종 서식에 사용할 내용을 엑셀 목록으로 만들고 자동으로 해당 서식의 특정 셀 값으로 자동 입력되면서 한번에 자동 인쇄를 할 수 있으면 무척 편리하리라 생각됩니다.

이번 글에서는 엑셀 VBA 매크로를 사용하여 고지서나 명세서를 한번에 일괄로 자동 인쇄 하는 방법에 대해 알아보겠습니다.

엑셀 VBA 매크로를 사용하여 한번에 일괄로 자동 인쇄 하는 방법

간단한 예제 시나리오를 가지고 설명해 보겠습니다.
세대 명부가 있고, 각 세대에 고지서를 일괄로 자동 인쇄하는 VBA 매크로를 만들어 보겠습니다.

▼ 아래 시트는 세대 명부를 작성해 놓은 시트 입니다. 각 세대 별 관리비와 경비를 고지서에 표시해서 인쇄를 할 예정입니다.

엑셀 VBA 매크로를 사용하여 한번에 일괄로 자동 인쇄 하는 방법 1

▼ 아래 시트는 실제 인쇄 될 고지서(명세서) 서식 입니다.

  • A1 셀에는 세대 명부의 번호가 자동으로 기입됩니다. VLOOKUP에서 사용할 연결 번호 입니다.
    인쇄에 굳이 표시되지 않아도 되기 때문에 글자색을 배경색으로 해서 인쇄를 해도 표시가 되지 않게 해 주면 됩니다.
  • C7, F7, F10, F11, F12 셀은 세대 명부에서 해당 셀 값을 가져와서 인쇄할 때 각 세대 별 데이터가 인쇄 됩니다.
  • VLOOKUP에서 빨간 별표 모양으로 표시된 부분의 해당 셀 값의 위치 입니다.
엑셀 VBA 매크로를 사용하여 한번에 일괄로 자동 인쇄 하는 방법 2

▼ 세대 명단 시트와 명세서(고지서) 시트를 만들었으니 이제 VBA 매크로를 실행한 인쇄 시트를 만들어 보겠습니다.

  • D2, D3 셀은 인쇄할 범위를 지정하기 위한 셀 입니다.
    시작 번호와 종료 번호를 각각 입력하면 해당 번호에 해당하는 세대의 고지서(명세서)만 인쇄 됩니다.
  • 인쇄를 했을 때 바로 인쇄할 것인지, 미리보기로 인쇄할 것인지 선택하는 옵션 단추를 2개 추가해 줍니다.
    그리고 VBA 프로그램에서 쉽게 사용할 수 있도록 이름 상자에서 적당한 이름으로 변경해 줍니다.
  • 인쇄 버튼도 하나 추가해 줍니다. 아직 VBA 매크로를 만들지 않은 상태이기 때문에 시트에 버튼만 추가해 놓습니다.
    VBA 매크로를 만든 다음 해당 매그로를 지정해 주면 됩니다.
    매크로 실행 버튼을 추가하는 방법은 엑셀에서 매크로 실행 버튼을 삽입해서 간편하게 매크로를 실행하는 방법 글을 참고하시면 됩니다.
엑셀 VBA 매크로를 사용하여 고지서나 명세서를 한번에 일괄로 자동 인쇄 하는 방법

고지서나 명세서를 한번에 일괄로 자동 인쇄 하는 VBA 매크로 만들기

▶ 엑셀에서 한번에 일괄 자동 인쇄를 위한 VBA 매크로를 만들어 보겠습니다.

1. 개발 도구에서 Visual Basic을 선택해서 Microsoft Visual Basic for Applications 창을 엽니다.
엑셀 리본 메뉴에 개발 도구 메뉴가 없는 경우 엑셀에서 VBA(매크로)를 처음으로 시작할 때 참고하세요. 글을 참고하시면 됩니다.

2. VBA 화면에서 삽입 메뉴에서 모듈을 선택해서 새로운 모듈 창을 열고 아래의 VBA 코드를 작성해 줍니다.

Public Sub AutoPrint()
 
    Dim StartNo As Long
    Dim EndNo As Long
    Dim No As Long
 
    StartNo = Worksheets(“인쇄”).Range(“D2”).Value
    EndNo = Worksheets(“인쇄”).Range(“D3”).Value
    
    For No = StartNo To EndNo
    
        Worksheets(“명세서”).Range(“A1”).Value = No
        
        If Worksheets(“인쇄”).Shapes(“미리보기”).OLEFormat.Object.Value = 1 Then
            Worksheets(“명세서”).PrintPreview
        Else
            Worksheets(“명세서”).PrintOut
        End If
        
    Next
    
End Sub
고지서나 명세서를 한번에 일괄로 자동 인쇄 하는 VBA 매크로 만들기
  • AutoPrint 라는 매크로가 하나 만들어지게 됩니다.
  • 이렇게 만들어진 매크로를 앞 단락의 ‘인쇄‘ 시트의 인쇄 버튼에 [매크로 지정]으로 지정해 주면 됩니다.

고지서나 명세서를 한번에 일괄로 자동 인쇄 하는 VBA 매크로 실행 결과

▶ 아래는 인쇄 옵션에서 ‘미리보기‘를 선택하고 인쇄 버튼을 클릭했을 때 미리 보기로 인쇄 된 화면입니다.

  • 인쇄 미리 보기 닫기를 클릭해서 미리 보기를 닫으면 다음 번호의 세대 고지서가 다시 미리 보기로 인쇄 됩니다.
  • 만약 인쇄 옵션을 ‘바로인쇄‘로 선택해서 인쇄를 했다면 프린터로 바로 인쇄가 됩니다.
고지서나 명세서를 한번에 일괄로 자동 인쇄 하는 VBA 매크로 실행 결과

결론

엑셀에서 자동 일괄 인쇄는 무척 유용하게 사용할 수 있는 기능입니다.
비교적 간단한 VBA 프로그램으로 다량의 고지서, 청구서, 명세서와 같은 서식을 한번에 일괄로 자동 인쇄를 할 수 있어 무척 편리하게 사용할 수 있습니다.





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기