brunch

You can make anything
by writing

C.S.Lewis

by 류한석 Mar 26. 2024

액셀 초보자에서 곧바로 전문가 되기

feat. 출력 자동화 패턴 & VBA

이전 글에서 출력 자동화 패턴오토핫키 사례를 살펴보았습니다. 오늘은 대형언어모델로 VBA(Visual Basic for Applications) 스크립트를 출력하는 내용을 살펴보려고 합니다.


VBA는 마이크로소프트가 개발한 이벤트 중심의 스크립팅 언어로, 오피스 제품군에 내장되어 있습니다. 사용자는 VBA를 통해 오피스 응용 프로그램의 기능을 확장하고, 사용자 정의 함수를 생성하여 반복적인 작업을 자동화할 수 있습니다. 특히, 데이터 처리 작업을 많이 하는 액셀에서 VBA를 이용하는 사용자들이 많습니다. 기본 기능으로는 해결하기 어려운 복잡한 계산이나 데이터 분석 작업을 수행할 수 있기 때문입니다.


출력 자동화 패턴으로 VBA 스크립트를 생성해 이용하면, 사용자가 VBA 코딩에 익숙하지 않아도 모델이 생성한 스크립트를 활용하여 시간을 절약하고 원하는 결과를 얻을 수 있습니다.


프롬프트 예시를 통해 살펴보죠. 다음의 제가 작성한 프롬프트는 [요청] 내용만 바꾸면, 그에 따라 적합한 액셀용 VBA 스크립트를 출력해 주는 유용한 프롬프트입니다.



프롬프트


#입력

[요청]= 엑셀 시트의 “A1:A12” 범위에 있는 월별 매출액과 “B1:B12” 범위에 있는 매출 성장률을 이용해, 막대 그래프(월별 매출액)와 선 그래프(매출 성장률)를 표시하는 복합 차트를 생성해 주세요. 차트의 X축 레이블에 1~12월을 표시하고, 선 그래프 위에 해당 데이터 값을 표시해 주세요.


#처리

당신은 “액셀(Excel) 전문가”로 행동합니다. 당신은 사용자의 요구를 정확히 파악하고, 맞춤형 스크립트를 제작하여 액셀 작업을 자동화하는 역할을 맡고 있습니다. 다음의 지침에 따라 VBA(Visual Basic for Applications) 스크립트를 출력해 주세요.

- 지침1. 요구사항 분석: 사용자의 [요청]을 바탕으로 스크립트가 해결해야 할 문제와 기대하는 결과를 명확히 정의합니다. 필요한 경우, 추가 정보나 데이터 구조에 대해 사용자에게 문의하여 스크립트가 정확한 결과를 도출할 수 있도록 합니다.

- 지침2. 작업 단계 설계: 분석된 요구사항을 기반으로 스크립트가 수행할 작업의 단계별 계획을 세웁니다. 각 단계에서 필요한 입력, 처리 과정, 예상되는 출력을 상세하게 설계합니다. 효율성과 정확성을 높이기 위해, 반복되는 작업이나 복잡한 데이터 처리 과정을 단순화하는 방법을 고려합니다.

- 지침3. 스크립트 작성: 설계된 작업 단계를 바탕으로 스크립트를 작성합니다. 스크립트는 사용자의 요구사항을 충족시키는 데 초점을 맞추며, 가독성과 유지보수의 용이성을 고려하여 작성합니다. 주요 단계나 복잡한 로직에는 목적과 작동 방식을 설명하는 주석을 추가합니다. 작성된 스크립트를 테스트하여 예상치 못한 오류나 문제점을 사전에 발견하고 수정합니다.

- 지침4. 적용 방법 설명: 사용자가 스크립트를 액셀에 삽입하고 실행하는 방법을 쉽고 자세하게 안내합니다. 사용자가 스크립트를 자신의 상황에 맞게 조정하고자 할 때 필요한 수정 방법이나 주의 사항도 제공합니다.


#출력

[작업 단계]

[스크립트]

[적용 방법]


챗GPT(GPT-4)


요구사항 분석

사용자는 엑셀 시트의 "A1:A12" 범위에 있는 월별 매출액과 "B1:B12" 범위에 있는 매출 성장률을 사용하여 복합 차트(막대 그래프와 선 그래프)를 생성하고자 합니다. 이 차트에서 X축은 1월부터 12월까지를 표시하며, 선 그래프 위에는 매출 성장률의 데이터 값을 표시해야 합니다.


작업 단계 설계

1. 데이터 범위 설정: "A1:A12"에서 월별 매출액과 "B1:B12"에서 매출 성장률을 차트 데이터로 사용합니다.

2. 차트 생성: 빈 차트 객체를 생성하고, 막대 그래프로 월별 매출액을, 선 그래프로 매출 성장률을 표시합니다.

3. X축 레이블 설정: 1월부터 12월까지를 X축에 표시합니다.

4. 데이터 레이블 추가: 선 그래프에 매출 성장률의 값이 표시되도록 데이터 레이블을 추가합니다.

5. 차트 형식 및 스타일 조정: 차트의 가독성과 시각적 매력을 높이기 위해 형식과 스타일을 조정합니다.


스크립트


적용 방법

1. Excel을 열고 VBA 편집기 접근: 엑셀 파일을 열고, Alt + F11 키를 눌러 VBA 편집기를 엽니다.

2. 새 모듈 삽입: 삽입 메뉴에서 모듈을 선택하여 새 모듈을 추가합니다.

3. 스크립트 붙여넣기: 위에 제공된 스크립트를 새 모듈 창에 붙여넣습니다.

4. 매크로 실행: VBA 편집기에서 F5 키를 누르거나, 엑셀로 돌아와서 개발 도구 탭에서 매크로를 클릭한 후 CreateComboChart 매크로를 선택하여 실행합니다.

5. 차트 확인 및 조정: 매크로 실행 후 엑셀 시트에 생성된 차트를 확인합니다. 필요에 따라 차트의 위치, 크기, 스타일, 형식 등을 수동으로 조정할 수 있습니다.


주의 사항 및 조정 방법

- 데이터 범위: 이 스크립트는 "A1:A12"에 월별 매출액, "B1:B12"에 매출 성장률이 있다고 가정합니다. 데이터가 다른 셀에 위치한 경우, 스크립트 내에서 .SetSourceData Source:=ws.Range("A1:A12") 및 .SeriesCollection(2).Values = ws.Range("B1:B12") 부분의 범위를 적절히 수정해야 합니다.

- 차트 스타일: 생성된 차트의 스타일이나 색상 등을 변경하고 싶은 경우, 엑셀의 차트 도구를 사용하여 수동으로 조정할 수 있습니다. 스크립트에서 .ChartStyle = 10 부분을 다른 숫자로 변경하여 다른 기본 스타일을 적용할 수도 있습니다.

- 데이터 레이블 형식: 매출 성장률에 대한 데이터 레이블이 기본 형식으로 표시됩니다. 형식을 변경하고 싶은 경우, 엑셀의 차트 도구에서 데이터 레이블을 선택한 후, 원하는 형식을 설정할 수 있습니다.

- 차트 제목 및 레이블: 차트 제목이나 축 레이블은 스크립트에서 설정한 대로 생성됩니다. 이들을 변경하고 싶은 경우, 생성된 차트에서 직접 수정할 수 있습니다.

- 호환성 문제: 사용하는 엑셀 버전에 따라 일부 스크립트 기능이 지원되지 않을 수 있습니다. 문제가 발생하면, 엑셀의 도움말을 참조하거나, 최신 버전으로 업데이트를 고려해야 합니다.


이번 프롬프트는 GPT-3.5에서도 작동합니다. 혹 스크립트에 오류가 발생할 경우에는, 모델에 답변을 재요청해서 새롭게 생성된 스크립트를 사용하도록 합니다. 클로바, 제미나이도 스크립트를 출력하긴 하는데, 내용을 잘못 해석하거나 오류가 나는 등 제대로 작동하지 않는 경우가 많습니다. 출력된 스크립트를 수정해서 쓸 수는 있습니다.


다음은 모델이 생성한 스크립트를 액셀에 적용해서 만든 차트입니다.


VBA는 오피스 사용자가 업무를 보다 효율적으로 처리할 수 있도록 돕는 강력한 도구입니다. 기본적인 프로그래밍 개념을 이해한다면, 대형언어모델과 VBA를 이용해 오피스 응용 프로그램의 사용성과 기능성을 크게 향상시킬 수 있습니다.


대형언어모델의 특성상, 때에 따라서는 사용자가 기대한 결과가 나오지 않을 수도 있습니다. 아무래도 텍스트로 명령을 내리다 보니, 의사소통 문제로 모델이 프롬프트 내용을 잘못 해석하거나 오해해서 사용자 의도와 다른 결과를 내놓기도 합니다(네, AI와도 의사소통이 중요합니다!). 그럴 때는 잘못된 부분 또는 의도와 다른 부분에 대해 추가 요청을 해서 수정된 결과를 출력하도록 합니다.


이처럼 스크립트를 이용해 작업을 자동화할 때의 장점을 살펴보면 다음과 같습니다.


1. 시간 절약: 자동으로 처리하게 되면, 수작업으로 하나하나 처리하는 것보다 훨씬 빠릅니다. 또한 대량의 데이터 처리나 복잡한 계산이 필요한 작업을 스크립트로 자동화하면, 수작업으로는 처리하기 어려운 큰 규모의 작업도 쉽고 빠르게 처리할 수 있습니다.


2. 정확성 향상: 수작업으로 입력하거나 수정할 때 실수가 발생하기 쉽습니다. 스크립트를 사용하면 사람이 하는 실수를 줄이고 일관된 결과를 얻을 수 있습니다.


3. 반복 작업의 간소화: 일정한 패턴이나 조건에 따라 반복되는 작업을 자동화함으로써, 복잡하고 반복적인 작업을 단순화할 수 있습니다. 이는 작업의 효율성을 크게 높여 줍니다.


4. 재사용성: 한 번 작성된 스크립트는 다른 프로젝트에서도 재사용할 수 있습니다. 이는 장기적으로 작업 프로세스를 표준화하고 효율성을 높이는 데 기여합니다.


5. 사용자 맞춤화 및 유연성: 특정 작업 요구사항에 맞게 스크립트를 맞춤 설정할 수 있으며, 필요에 따라 쉽게 수정하고 업데이트할 수 있습니다. 이는 작업의 유연성을 증가시킵니다.


6. 복잡한 작업 가능: 일부 복잡한 작업은 수작업으로는 실행하기 어렵거나 불가능할 수 있습니다. 스크립트를 사용하면 이러한 작업도 자동으로 처리할 수 있습니다.


7. 학습 및 응용력 향상: 모델이 생성한 스크립트를 통해 사용자가 빠르게 학습하고 응용할 수 있습니다. 즉, 스크립트 구조와 작동 원리를 배우고, 자신의 용도에 맞게 수정하고 최적화하는 능력을 키워 나갈 수 있습니다.


8. 보고 및 문서화 용이성: 스크립트를 사용하면 작업 과정이나 결과를 자동으로 문서화하고 보고할 수 있습니다. 이는 프로젝트의 투명성과 추적 가능성을 높이는 데 도움이 됩니다.


유의할 점도 있습니다. 모델이 생성한 스크립트 실행 시 오류가 발생하거나 코드에 버그나 보안 문제가 존재할 수 있습니다. 그러므로 가능하면, 코드 내용을 이해할 수 있는 정도의 지식을 갖춘 상태에서 이용하는 것을 추천합니다. 그래야 문제를 해결할 수 있고, 사용할수록 역량이 향상될 수 있으니까요.


인간의 지능을 확장하는 것, 그것이 대형언어모델의 진정한 명제입니다.
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari