엑셀 반복 작업, 매크로 대신 파이썬으로 자동화하기

매달 똑같은 양식의 엑셀 파일을 열어 데이터를 정리하고, 셀 서식을 맞추고, 합계를 내는 작업을 반복하고 계신가요? 많은 분들이 이럴 때 VBA 매크로를 떠올리지만, 사실 엑셀 자동화 파이썬을 활용하면 훨씬 유연하고 관리하기 쉬운 방식으로 같은 작업을 처리할 수 있습니다. VBA 문법을 새로 배울 필요 없이, 이미 익숙한 파이썬 문법으로 엑셀 업무를 자동화하는 방법을 소개합니다.

왜 매크로 대신 파이썬일까

VBA 매크로는 엑셀 안에서만 동작하고, 파일이 바뀌거나 여러 엑셀 파일을 동시에 다뤄야 할 때는 한계가 뚜렷합니다. 반면 파이썬은 여러 파일을 한 번에 순회하며 처리할 수 있고, 다른 시스템(이메일 발송, 데이터베이스 연동, 웹 API 호출 등)과도 쉽게 연결됩니다. 코드도 텍스트 파일로 관리되기 때문에 버전 관리나 협업도 훨씬 수월합니다.

필요한 라이브러리

엑셀 자동화에는 보통 openpyxl 또는 pandas를 사용합니다. 서식이나 셀 단위 제어가 필요하면 openpyxl, 대량 데이터 집계나 분석 위주라면 pandas가 더 편리합니다. 설치는 아래처럼 간단합니다.

bash

pip install openpyxl pandas

실전 예제: 여러 파일 합치고 정리하기

매달 지점별로 올라오는 매출 엑셀 파일을 하나로 합쳐서 합계를 내는 작업을 자동화해보겠습니다.

python

import pandas as pd
from pathlib import Path

SOURCE_DIR = Path("./sales_reports")
OUTPUT_FILE = Path("./monthly_summary.xlsx")

def merge_sales_files(source_dir: Path) -> pd.DataFrame:
    all_data = []
    for file in source_dir.glob("*.xlsx"):
        df = pd.read_excel(file)
        df["지점"] = file.stem
        all_data.append(df)
    return pd.concat(all_data, ignore_index=True)

def summarize(df: pd.DataFrame) -> pd.DataFrame:
    return df.groupby("지점")["매출액"].sum().reset_index()

if __name__ == "__main__":
    merged = merge_sales_files(SOURCE_DIR)
    summary = summarize(merged)
    summary.to_excel(OUTPUT_FILE, index=False)
    print("월간 요약 파일이 생성되었습니다:", OUTPUT_FILE)

이 스크립트는 지정한 폴더 안의 모든 엑셀 파일을 읽어 하나로 합친 뒤, 지점별 매출 합계를 계산해 새 엑셀 파일로 저장합니다. 파일이 수십 개로 늘어나도 실행 시간만 조금 늘어날 뿐, 작업 방식은 동일하게 유지됩니다.

서식까지 다루고 싶다면

단순 집계를 넘어 셀 색상, 굵은 글씨, 조건부 서식까지 적용하고 싶다면 openpyxl을 함께 사용하면 됩니다. 예를 들어 특정 값 이상인 셀에 색을 입히는 작업도 몇 줄이면 충분합니다.

python

from openpyxl import load_workbook
from openpyxl.styles import PatternFill

wb = load_workbook(OUTPUT_FILE)
ws = wb.active
fill = PatternFill(start_color="FFC7CE", end_color="FFC7CE", fill_type="solid")

for row in ws.iter_rows(min_row=2, min_col=2, max_col=2):
    for cell in row:
        if cell.value and cell.value < 1000000:
            cell.fill = fill

wb.save(OUTPUT_FILE)

자동 실행까지 연결하기

이렇게 만든 스크립트는 윈도우 작업 스케줄러나 Make.com 같은 자동화 도구와 연결해 매달 정해진 날짜에 자동으로 실행되도록 설정할 수 있습니다. 여기에 이메일 발송 기능까지 추가하면, 사람이 손대지 않아도 매달 요약 리포트가 담당자에게 자동으로 전달되는 완전 자동화 파이프라인이 완성됩니다.

마무리

VBA 매크로에 익숙하지 않거나, 엑셀 파일 하나를 넘어 여러 시스템과 연결된 자동화가 필요하다면 파이썬이 훨씬 나은 선택입니다. 오늘 소개한 예제를 자신의 업무 양식에 맞게 조금씩 수정해나가면, 반복되던 엑셀 작업이 어느새 클릭 한 번, 혹은 자동 실행만으로 끝나는 경험을 하게 될 것입니다.