티스토리 뷰

업무자동화

엑셀·구글 시트 매크로 기초: 견적서·정산서 자동 생성하는 법

기준이필요해 2026. 9. 15. 06:45

목차


    매크로 양식 준비

    요약: 입력 데이터와 문서 양식을 나누면 반복 작업의 기준이 잡힌다.

     

    지난달 견적서를 복사해 거래처와 금액을 바꾸는 일은 단순하지만 이전 내용이 남기 쉽다. 엑셀·구글 시트 매크로는 정해진 양식에 이번 달 데이터를 채우는 작업부터 시작하면 이해하기 편하다.

     

    자료를 비교하며 가장 중요하다고 느낀 점은 코드보다 입력 구조이다. 값이 들어갈 위치가 일정해야 자동 생성 결과도 확인하기 쉽기 때문이다.

     

    실습 파일에 입력, 양식 시트를 만든다. 예제에서는 입력 시트의 B2에 거래처명, B3에 기준월, B4에 확정 금액을 넣는다. 양식에도 같은 위치를 비워 두고 금액·날짜 표시 형식을 정한다. 해당 셀은 병합하지 않는다.

     

    양식 제목은 견적서나 정산서로 정한다. 아래 코드는 같은 파일 안에 양식 사본을 만들고 입력값을 채우는 기초 예제이다. 품목별 계산은 미리 준비한 수식이나 확인된 금액을 사용한다.

     

     

    엑셀 VBA 만들기

    요약: 양식을 복사하고 지정된 셀에 값을 넣는 매크로를 작성한다.

     

    윈도우용 엑셀에서 개발 도구의 Visual Basic을 열고 삽입 → 모듈에 다음 코드를 넣는다. 출처: Microsoft VBA 입문

    Sub MakeDoc()
        Dim book As Workbook, doc As Worksheet
        Set book = ThisWorkbook
        book.Worksheets("양식").Copy _
            After:=book.Sheets(book.Sheets.Count)
        Set doc = book.Sheets(book.Sheets.Count)
        doc.Range("B2:B4").Value = _
            book.Worksheets("입력").Range("B2:B4").Value
    End Sub

     

    실행하면 양식의 서식을 유지한 새 시트에 입력값이 채워진다. 예제의 셀 주소를 바꾸려면 입력 범위와 출력 범위의 크기를 맞춘다. 출처: Microsoft 시트 복사, 출처: Microsoft 셀 값 입력

     

    파일은 .xlsm으로 저장하고, 양식 컨트롤 버튼에 MakeDoc 매크로를 연결한다. 웹용 엑셀에서는 VBA를 실행할 수 없으므로 설치형 앱에서 작업한다. 출처: Microsoft 매크로 저장, 출처: Microsoft 버튼 연결, 출처: Microsoft 웹용 Excel 제한

     

     

    Apps Script 작성

    요약: 구글 시트에서도 양식 복사와 값 입력을 함수로 묶을 수 있다.

     

    구글 시트의 확장 프로그램 → Apps Script에서 다음 함수를 저장한다. 출처: Google 시트 매크로

    function makeDoc() {
      const book = SpreadsheetApp.getActiveSpreadsheet();
      const doc = book.getSheetByName('양식').copyTo(book);
      doc.getRange('B2:B4').setValues(
        book.getSheetByName('입력').getRange('B2:B4').getValues()
      );
    }

    copyTo는 양식을 복사하고, setValues는 입력표에서 읽은 값을 사본에 채운다. VBA 예제와 같은 셀 배치를 사용하므로 결과를 비교하기도 쉽다. 출처: Google 시트 복사, 출처: Google 범위 값 입력

     

    처음 실행할 때 요청되는 권한을 확인한다. 시트에 도형을 삽입하고 스크립트 할당에 괄호 없이 makeDoc을 입력하면 클릭 실행이 가능하다. 이 도형 버튼은 웹 브라우저에서 사용하며 모바일에서는 실행되지 않는다.

     

     

    PDF 저장과 제한

    요약: 사본 생성이 확인되면 PDF 저장과 처리 기록을 확장한다.

     

    예제의 완성 범위는 문서 시트 생성이다. PDF 자동 저장을 추가할 때는 VBA의 ExportAsFixedFormat이나 Google 공식 PDF 생성 예제를 활용할 수 있다. 출력 전에는 인쇄 영역과 페이지 잘림을 확인한다. 출처: Microsoft PDF 출력, 출처: Google PDF 생성 예제

     

    Apps Script의 일반 실행 시간 한도는 1회 6분이다. 거래처별 문서를 대량 생성한다면 나누어 처리할 필요가 있다. 

     

    자동화의 장점은 반복 입력을 줄이는 데 있다. 다만 잘못된 원본 값도 그대로 복사되며, 예제를 다시 실행하면 사본이 추가된다. 기준월·문서번호·생성 여부를 기록하는 설계가 필요한 이유이다.

     

    마치는 글

    요약: 작은 양식부터 검증하고 문서 종류와 저장 기능을 넓힌다.

     

    개인적으로는 복잡한 보고서보다 거래처와 금액이 명확한 양식부터 시작하는 편이 낫다고 판단한다. 시트 이름, 셀 위치, 금액, 출력 결과를 먼저 확인해야 한다. 처음에는 원본의 사본에서 실행하고 중요한 문서는 사람이 최종 검토하는 습관이 필요하다.

     

    이웃에게 공유하거나 자동화하고 싶은 문서 유형을 댓글로 남겨도 좋다.

     

     

    #엑셀매크로 #VBA #구글시트 #AppsScript #견적서자동생성 #정산서자동화 #문서자동화 #업무자동화 #반복업무 #생산성

     

    검증 출처