한국GPT협회 표준교재

501. 엑셀 VBA 자동화 (제조데이터)

실험·공정 데이터를 함수와 VBA로 가공·분리·취합하고, 집계표·그래프를 PPTX에 자동 삽입 — 코드는 AI가 쓴다

엑셀 VBA 자동화 (제조데이터)

Learning Objectives
  • AI에게 함수를 받아 실험·공정 데이터를 빠르게 가공한다.
  • VBA로 데이터 처리를 자동화하고, 조건별 분리·다중 파일 취합을 수행한다.
  • 집계표·그래프를 PPTX 보고자료에 자동 삽입한다.
"코드 몰라도 됩니다." VBA 한 줄도 직접 쓰지 않습니다. 무엇을 하고 싶은지를 AI에게 설명하면 코드를 받아 붙여넣고 실행만 합니다. 핵심은 코드를 읽는 능력이 아니라 요구사항을 정확히 명세하는 능력입니다.

AI로 엑셀 다루기 — 함수와 코드

원하는 결과를 설명하면 AI가 함수·VBA 코드를 써 줍니다. 모든 실습은 아래 제조 생산 데이터로 진행합니다.

사례

엑셀 함수 받기

제조 · Production_Data

학습 안내읽기 + 따라하기. 엑셀 실습을 시작합니다. 조건에 맞는 데이터가 몇 건인지 세는 함수를 AI에게 받아 봅니다.

"특정 조건의 데이터가 몇 건인지"는 가장 자주 쓰는 집계입니다. 한 가지 조건이면 COUNTIF를 AI에게 받습니다.

조건별 개수 세기 — COUNTIF
엑셀 함수 알려줘. O열의 값이 'L'인 데이터의 총 개수를 세는 함수.
필요한 결과받는 함수(예)
O열이 'L'인 데이터 개수=COUNTIF(O:O, "L")
관찰 포인트. COUNTIF는 범위 · 조건 두 가지만 있으면 됩니다. 조건 값은 큰따옴표로 감쌉니다("L"). 한 가지 조건만 셀 때 쓰며, 조건이 둘 이상이면 다음 실습의 COUNTIFS를 씁니다.
실습

COUNTIFS 함수 받기

실습 · Production_Data

학습 안내산출. 사례를 응용해, 두 가지 조건을 동시에 만족하는 데이터 개수를 세는 COUNTIFS 함수를 AI에게 받아 셀에 넣습니다.

달성 목표
실습 파일에서 O열의 값이 'L'이면서 S열의 값이 'Good'인 데이터의 총 개수를 COUNTIFS로 구한다.
두 조건 개수 세기 — COUNTIFS
엑셀 함수 알려줘. O열의 값이 'L'이면서 S열의 값이 'Good'인 데이터의 총 개수를 세는 함수.
필요한 결과받는 함수(예)
O열 'L' · S열 'Good' 개수=COUNTIFS(O:O, "L", S:S, "Good")

실습 순서

  1. 실습 파일을 열고 빈 셀에 위 함수를 붙여 넣는다.
  2. 조건 값을 바꿔 가며(예: 'Good' 대신 'Bad') 개수가 맞는지 한두 개 검산한다.
  3. "조건을 하나 더 추가"해 세 조건 COUNTIFS도 만들어 본다.
보안. 함수 자체에는 데이터가 들어가지 않습니다. 외부 AI에는 열 구조와 가상 샘플 몇 행만 주고 함수를 받아, 사내 실제 파일에 적용합니다.
이해

VBA 자동화란?

학습 안내읽기. 다음 실습부터 'VBA'로 엑셀을 자동화합니다. VBA가 무엇이고 왜 지금도 쓰는지 짧게 짚고 갑니다.

VBA(Visual Basic for Applications)마이크로소프트(Microsoft)가 만든, Office에 내장된 자동화 프로그래밍 언어입니다. 1993년 Excel 5.0에 처음 탑재된 이래 30년 넘게, 엑셀·워드·파워포인트·아웃룩에서 반복 작업을 매크로로 자동화하는 표준 도구로 쓰이고 있습니다.

누가Microsoft가 개발

마이크로소프트가 만들어 Office 제품군에 기본 탑재했습니다. 별도 설치 없이 엑셀 안에서 바로 씁니다.

언제부터1993년 Excel 5.0

1993년 Excel 5.0에 처음 도입되어 30년 넘게 이어진, 검증된 기능입니다. 그 전에는 XLM 매크로를 썼습니다.

무엇을반복 작업 자동화

셀 서식, 파일 분리·취합, 다른 Office 앱 제어까지 — 사람이 반복하던 일을 클릭 한 번으로 처리합니다.

지금은코드는 AI가

예전엔 VBA 문법을 직접 익혀야 했지만, 이제 원하는 동작만 설명하면 AI가 코드를 써 줍니다. 우리는 요구사항만 정확히 주면 됩니다.

왜 지금도 VBA인가. VBA 자동화는 데이터가 사내 PC 밖으로 나가지 않습니다. AI가 짜 준 코드를 내 엑셀에서 실행하므로, 외부 AI를 직접 못 쓰는 보안 환경에서도 안전하게 업무를 자동화할 수 있습니다.
사례

조건별 배경색 VBA

사례 · Production_Data

학습 안내산출. 조건에 맞는 셀에 자동으로 배경색을 칠하는 VBA를 AI에게 받아 실행합니다. 눈여겨볼 데이터를 한눈에 보이게 만듭니다.

달성 목표
실습 파일에서 조건에 맞는 셀에 배경색을 자동으로 칠하는 VBA를 받아 실행한다.
조건별 배경색 VBA
엑셀 VBA 작성해줘. O열의 값이 'L'인 셀에 노란색 배경색을 적용한다 S열의 값이 'Good'인 셀에 노란색 배경색을 적용한다 O열이 'L'이고 S열이 'Good'인 행의 A열에 주황색 배경색을 적용한다

실습 순서

  1. Alt+F11로 VBA 편집기를 열고, 삽입 → 모듈에 받은 코드를 붙여 넣는다.
  2. F5 또는 개발 도구 → 매크로로 실행한다.
  3. O열·S열에 노란색, 두 조건을 모두 만족한 행의 A열에 주황색이 칠해졌는지 확인한다.
  4. 오류가 나면 메시지를 그대로 복사해 AI에 붙여 "수정된 전체 코드"를 받는다.
보안 — 디버깅 시. 실제 설비 데이터를 그대로 첨부하지 않습니다. 같은 열 구조의 가상 샘플을 만들어 디버깅하면 데이터를 내보내지 않고도 코드를 완성할 수 있습니다.

VBA 파일 분리

조건에 따라 데이터를 시트·파일로 나눕니다.

사례

파일 분리 — 품질 기준 시트

제조 · Production_Data

학습 안내읽기 + 따라하기. 실습 파일의 통합 데이터를 품질(S열: Good/Bad) 기준으로 시트를 나누는 시연입니다. 프롬프트는 엑셀 구조를 길게 설명하지 않고 명령만 간결히 적습니다 — AI가 데이터를 직접 파악하게 합니다.

양품(Good)과 불량(Bad)을 따로 보려면 품질 값으로 나눠야 합니다. 손으로 필터·복사 대신 VBA가 S열 값 기준으로 시트를 자동 생성합니다.

입력
통합 시트
Good·Bad 섞임
VBA 실행
한 번 클릭
품질값으로 분류
결과
품질별 시트
Good·Bad 탭
파일 분리 VBA
엑셀 VBA 작성해줘. S열의 값별로 시트를 나눠 데이터를 분리한다 머리글 행은 모든 시트에 복사한다
관찰 포인트. 구조를 길게 설명하지 않아도 "데이터가 몇 개인지 파악한다"고 하면 AI가 마지막 행을 스스로 찾습니다. 단 "머리글을 모든 시트에 복사", "같은 시트가 있으면 다시 만든다" 같은 경계 조건은 한 줄씩 빠뜨리지 말고 적습니다.
실습

파일 분리 직접 해보기

제조 · 단계별 도전

학습 안내산출. 시연을 출발점으로, 분리 기준을 바꿔 직접 프롬프트를 작성합니다. 완료한 사람이 다음 단계에 도전하세요.

달성 목표
실습 파일을 팀(O열) 기준 → 평일/주말 기준으로 나누는 VBA를 AI에게 받아 실행한다.

NORMAL팀(O열)별로 별도 엑셀 파일 저장

O열(팀: L/M/N) 값 기준으로 별도의 엑셀 파일로 저장한다.

📁 팀별_분리결과
📄
Production_Data_team_L.xlsx
📄
Production_Data_team_M.xlsx
📄
Production_Data_team_N.xlsx

HARD평일과 주말로 분리

A열(생산일자)의 요일을 따져 평일과 주말 데이터를 별도 엑셀 파일로 저장한다. 토·일이면 주말, 그 외는 평일.

📁 평일주말_분리결과
📄
평일.xlsx
📄
주말.xlsx
보안. 분리·저장은 모두 사내 PC 로컬에서 실행됩니다. 데이터가 외부로 나가지 않으므로 보안에 위배되지 않습니다.

VBA 파일 취합

흩어진 여러 파일을 한 번에 모읍니다.

사례

파일 취합 — 3개를 한 시트로

제조 · 분리→취합

학습 안내읽기 + 따라하기. 분리의 반대입니다. 팀 L·M·N의 데이터 파일 3개를 한 시트로 합치는 시연입니다. 프롬프트는 명령만 간결히 적습니다.

팀별로 따로 받은 파일을 분석하려면 하나로 합쳐야 합니다. 아래 세 파일을 사용합니다.

입력
팀별 3개 파일
team_L·M·N
VBA 실행
한 번 클릭
순서대로 누적
결과
통합 시트
3팀 한 시트
파일 취합 VBA
엑셀 VBA 작성해줘. 같은 폴더의 Production_Data_team_L.xlsx, Production_Data_team_M.xlsx, Production_Data_team_N.xlsx 세 파일을 연다 세 파일의 데이터를 한 시트에 차례로 합친다 첫 파일만 머리글을 포함하고, 나머지는 데이터만 붙인다 어느 파일에서 왔는지 제일 우측 열에 파일명을 적는다 VBA가 실행된 날짜와 시간을 제일 우측 열에 넣는다
관찰 포인트. 파일명을 코드에 정확히 지정하면 매번 파일을 고르지 않아도 됩니다. "첫 파일만 머리글 포함"이 빠지면 머리글이 3번 반복됩니다.
실습

파일 취합 직접 해보기

제조 · 단계별 도전

학습 안내산출. 취합 방식을 자동화 수준이 높게 바꿔 갑니다. 사람이 손대는 부분이 줄어드는 것을 체감하십시오. 완료한 사람이 다음 단계에 도전하세요.

달성 목표
취합 방식을 파일 선택 팝업 → 폴더 선택으로 높여, 파일을 일일이 지정하지 않아도 되게 만든다.

NORMAL파일 선택 팝업으로 여러 파일 취합

실행하면 파일 선택창이 떠서 여러 파일을 한꺼번에 선택할 수 있고, 고른 파일들을 한 시트로 취합한다. 사례의 고정 파일명 대신 사용자가 그때그때 고른다.

HARD폴더 선택 창으로 폴더 안의 모든 파일 취합

실행하면 폴더 선택창이 뜨고, 고른 폴더 안의 모든 엑셀(.xlsx)을 자동으로 찾아 취합한다. 매크로 파일 자신은 제외한다.

실습 순서

  1. NORMAL: "파일 선택창에서 여러 파일을 고르면 모두 한 시트로 합치게 해 줘"로 받아 실행한다.
  2. HARD: "폴더를 고르면 그 안의 모든 엑셀을 합치게 해 줘"로 바꿔 실행한다.
  3. 버튼(양식 컨트롤)에 매크로를 연결해 클릭 한 번으로 돌게 만든다.
보안. 취합은 사내 PC에서만 돕니다. AI에는 폴더 경로나 실제 데이터가 아니라 처리 규칙만 설명합니다.

집계표·그래프 PPTX 자동화

집계와 차트를 만들어 보고용 PPTX에 자동으로 넣습니다.

사례

엑셀 → PPTX 집계표

제조 · Production_Data

학습 안내읽기 + 따라하기. 실습 파일로 팀별 품질(Good/Bad) 집계표를 만들고, 그 표를 PPTX 1페이지에 자동으로 넣는 시연입니다.

달성 목표
팀(L/M/N)별 Good·Bad 건수와 불량률 집계표를 만들어 PPTX 1번 슬라이드에 그림으로 삽입한다. 데이터가 갱신되면 다시 실행만 하면 된다.
STEP 1
집계표
팀×품질 COUNTIFS
STEP 2
PPTX 삽입
1번 슬라이드에 표
결과
품질보고.pptx
자동 저장
팀별품질보고.pptx — 1번 슬라이드
팀별 품질 실적 (자동 집계)
GoodBad불량률
L782222.0%
M851515.0%
N722828.0%
팀별 집계표 → PPTX 1페이지 VBA
엑셀 VBA 작성해줘. 'Production_Data' 시트에서 O열(팀)별로 S열의 Good 개수, Bad 개수, 불량률(전체 중 Good 비율)을 집계표로 만든다. 새로운 PowerPoint 파일을 만들고 이 집계표를 1번 슬라이드에 표로 넣는다.
관찰 포인트. 엑셀에서 만든 표·차트를 PPTX에 넣을 때는 PowerPoint 객체 모델을 따로 참조합니다. "PowerPoint VBA에서"라고 명시해야 올바른 코드가 나오고, 표는 그림으로 붙여야 서식이 깨지지 않습니다.
실습

차트를 PPTX에

제조 · 단계별 도전

학습 안내산출. 집계표에서 한 발 더 나아가 차트를 만들어 PPTX 여러 페이지에 배치합니다. 완료한 사람이 다음 단계에 도전하세요.

달성 목표
팀별 점유율 파이차트와 분포 박스플롯·히스토그램을 만들어 PPTX 여러 슬라이드에 넣는다. HARD에서는 그림의 위치·크기까지 지정한다.

NORMAL양품·불량 팀 점유율 파이차트 → PPTX 2페이지

양품(S열 Good)O열 팀(L/M/N) 점유율 파이차트와, 불량(S열 Bad)의 팀 점유율 파이차트 2개를 만들어 PPTX 2번 슬라이드에 넣는다.

HARD박스플롯·히스토그램 → PPTX, 위치·크기 지정

N열 값의 박스플롯P열 값의 히스토그램을 만들어 PPTX의 각 페이지에 넣되, 그림의 위치(Left/Top)와 크기(Width/Height)를 직접 지정한다.

실습 순서

  1. NORMAL: "양품과 불량 각각의 O열 팀 점유율 파이차트를 만들어 PowerPoint 2번 슬라이드에 넣어 줘"로 받아 실행한다.
  2. HARD: "N열 박스플롯과 P열 히스토그램을 만들어 슬라이드에 위치·크기를 지정해 넣어 줘"로 받아, 위치·크기 값을 바꿔 가며 배치를 조정한다.
  3. PowerPoint 객체 오류는 "PowerPoint VBA에서 ~"라고 명시해 수정 요청한다.
막힐 때. PowerPoint 자동화는 엑셀과 객체 모델이 다릅니다. 프롬프트에 "PowerPoint VBA에서"를 명시하고, 한글이 깨지면 "한글 문자열은 ChrW()로 처리해 줘"를 덧붙입니다. 박스플롯·히스토그램 차트는 엑셀 2016 이상에서 지원됩니다.