Excel & IT Info

아이엑셀러 닷컴, 엑셀러TV

VBA

[VBA 입문] 17강. 챗GPT로 VBA 코딩하는 법

권현욱(엑셀러) 2023. 10. 11. 08:00
반응형

들어가며

일시적 유행, 광풍을 넘어 이제는 하나의 현상이 되어 가고 있습니다. 챗GPT에 대한 이야기입니다. 챗GPT는 엑셀의 기본 기능은 물론이고 복잡한 수식도 척척 만들어줍니다. 자신이 하려는 바를 명확히 요약할 수만 있다면 얼마든지 해법을 찾을 수 있습니다.

이번 강의에서 알려드리는 방법을 응용하면 매크로나 VBA를 전혀 모르더라도 VBA 코드를 만들어서 업무에 활용할 수 있습니다. 기대가 되시죠? 부푼 기대를 안고 출발합니다.

권현욱(엑셀러) | 아이엑셀러 닷컴 대표 · Microsoft Excel MVP · Excel 솔루션 프로바이더 · 작가

(이미지: unsplash.com)

이 콘텐츠는 <챗GPT + 엑셀 업무자동화 정석>(권현욱 저, 디지털북스 출간)에서 편집, 인용한 것입니다.

주의할 점

이 강의는 챗GPT의 기본적인 내용이나 사용법을 처음부터 소개하지는 않습니다. 챗GPT를 잘 몰라도 이해하는 데는 지장이 없지만, 챗GPT에 대한 이해가 부족하다면 다음 강의를 선행학습 하고 보실 것을 추천합니다.

 

 

챗GPT나 구글 바드(Bard) 같은 인공지능(AI)을 생성형(Generative) AI라고 합니다. 생성형 AI의 문제로 지목되는 것 중 대표적인 것이 저작권 침해와 환각(hallucination) 현상입니다. 챗GPT를 이용하여 코딩을 할 때에는 이런 문제들로부터는 자유롭습니다. 문제는 다른 데 있습니다.

 

생성형 AI는 정해진 답을 내놓는 것이 아니라 AI가 학습을 통해 결과를 그때그때 만들어내는 특징이 있습니다. 따라서 비슷하거나 심지어는 같은 명령(프롬프트)을 사용하더라도 결과는 달라질 수 있습니다. 

 

만약 강의에서 하라는 대로 따라 했음에도 원하는 결과가 나오지 않는다면 프롬프트를 조금씩 바꿔가면서 원하는 결과를 얻을 때까지 반복해 보시기 바랍니다. VBA에 대한 지식이 있다면 챗GPT가 만든 코드를 수정함으로써 시간을 단축할 수 있습니다.


챗GPT로 VBA 코딩하기 1

For ~ Next 문을 배울 때 구구단 테이블을 만들어 보았습니다. 언뜻 보면 쉬워 보여도 반복문, 셀 주소, 레인지 개체 등에 대한 개념이 서 있지 않으면 까다로울 수 있습니다. 챗GPT를 활용하면 간단하게 해결할 수 있습니다.

 

(이미지: 아이엑셀러 닷컴)

 

챗GPT를 이용하여 일반적인 구구단 테이블을 만드는 것은 너무도 쉽습니다. 프롬프트 창에 "구구단 테이블을 작성하는 vba 코드는?" 이렇게만 질문해도 코딩을 해 줍니다. Cells 속성도 이해할 겸 해서, 일부러 조금 조건을 복잡하게 지정해 보겠습니다.

 

(1) 챗GPT 프롬프트 창에 명령(프롬프트)을 입력하고 ENTER 키를 누릅니다.

 

(이미지: 아이엑셀러 닷컴)

 

(2) 일부러 까다로운 조건을 준 것이 무색하리만치 챗GPT는 쉽게 결과를 내놓습니다. [Copy code] 아이콘을 눌러 코드를 복사합니다. 검은색 배경이라 코드가 흐리게 보이지만 챗GPT가 생성한 코드를 그대로 복사해서 사용하기 때문에 상관없습니다.

 

(3) 워크시트로 가서 ALT + F11을 누릅니다. Visual Basic Editor에서 [삽입] - [모듈] 메뉴를 클릭하여 빈 모듈을 삽입합니다.

 

(4) CTRL + V를 눌러서 (2)에서 복사한 코드를 붙여 넣기 합니다.

 

(이미지: 아이엑셀러 닷컴)

 

(5) 프로시저 내부에 커서를 두고, 표준 도구 모음에 있는 [Sub/사용자 정의 폼 실행] 아이콘을 클릭하거나 F5 키를 누릅니다. 워크시트에 구구단 테이블이 만들어집니다.

 

챗GPT를 이용하여 어떻게 코드를 만들고 엑셀에서 사용하는지 그 흐름과 순서를 이해하는데 주안점을 두고 살펴보세요.


챗GPT로 VBA 코딩하기 2 

그림과 같이 데이터 중간중간에 빈 행이 있습니다. 간격도 불규칙하죠. 데이터량이 많은데 빈 행을 모두 삭제해야 한다면 꽤나 성가십니다. 챗GPT로 해결할 수 있을까요? 상황을 정확히 전달하면 챗GPT가 VBA 코드를 만들어줍니다.

 

(이미지: 아이엑셀러 닷컴)

 

(1) 챗GPT 프롬프트 창에 명령(프롬프트)을 입력하고 ENTER 키를 누릅니다.

 

(이미지: 아이엑셀러 닷컴)

 

(2) 코드창 우측 상단에 있는 [Copy code] 아이콘을 눌러 코드를 복사합니다.

 

(3) 워크시트로 가서 ALT + F11을 누릅니다. Visual Basic Editor에서 [삽입] - [모듈] 메뉴를 클릭하여 빈 모듈을 삽입합니다.

 

(4) CTRL + V를 눌러서 챗GPT가 만든 코드를 붙여넣기 합니다.

 

(이미지: 아이엑셀러 닷컴)

 

(5) 프로시저 내부에 커서를 두고, 표준 도구 모음에 있는 [Sub/사용자 정의 폼 실행] 아이콘을 클릭하거나 F5 키를 누릅니다. 시트 내에 있던 모든 빈 행들이 한꺼번에 제거됩니다.

매크로나 VBA 코드가 포함된 엑셀 파일을 저장할 때에는 'Excel 매크로 사용 통합 문서(*.xlsm)' 형태로 저장해야 합니다. 매크로가 포함된 문서를 'Excel 통합 문서(*.xlsx)'로 저장하면 매크로가 모두 제거된 채 저장됩니다.

나가며

우리는 지금까지 VBA를 열심히 공부해 왔기에 이런 정도의 코드는 챗GPT 도움 없이도 가능하리라 생각합니다. 하지만 챗GPT 경험이 없는 사람이라면 일순간에 VBA 프로그래머가 되는 환상적인 경험이 되었을 겁니다.

 

이제 여러분은 VBA의 기본적인 사항을 모두 섭렵하시게 되었습니다. 거기에 챗GPT로 코딩하는 방법까지 장착했으니 지금까지 배운 것만 잘 응용해도 많은 문제들을 해결할 수 있습니다. 축하합니다.

 

Excel과 VBA의 모든 것 아이엑셀러 닷컴 · 강사들이 숨겨 놓고 보는 엑셀러TV