brunch

You can make anything
by writing

C.S.Lewis

by 주과장 Oct 04. 2024

나의 매크로 제작기

내가 처음 매크로 제작을 시작하게 된 이유는 매우 단순했다. 반복적인 업무에서 벗어나고 싶었다. 

엑셀은 업무의 대부분을 차지하는 도구였고, 데이터 정리나 보고서 작성 같은 기본적인 작업은 충분히 익숙했다. 나는 엑셀을 사용하는 데 큰 문제는 없었고, 일반적인 사무직으로서 필요한 수준의 기능은 무리 없이 사용할 수 있었다. 하지만 점점 더 복잡하고 반복적인 작업이 늘어나면서, "뭔가 자동화할 수 있는 방법이 없을까?"라는 생각이 들었다. 그래서 나는 문득 나의 조언자 챗GPT에게 도움을 청하기로 했다.


처음 챗GPT에게 매크로에 대해 질문을 던졌을 때, 사실 나는 매크로가 무엇인지도 제대로 몰랐다. "매크로가 뭐야?"라는 기초적인 질문으로 시작했다. 그때 챗GPT는 "매크로는 엑셀에서 반복적인 작업을 자동화할 수 있는 도구야. Visual Basic for Applications(VBA)라는 언어로 작성할 수 있어"라고 설명해줬다. 솔직히 처음엔 'VBA'라는 단어조차 생소했다. '프로그래밍 언어를 배워야 한다고?' 그런걸 해야한다는 두려움이 밀려왔다.


하지만, 챗GPT가 말한 '자동화'라는 단어는 내가 찾는 명확한 답이 틀림없었다. 그래서 나는 더 깊이 들어가 보기로 결심했다. 하지만 나는 어려운게 싫었다. 그래서 내가 필요한 내용의 매크로를 만들어달라고 명령했다.


처음 시도한 매크로는, 함수나 기초적인 엑셀 기능으로는 할 수 없었던 특정값 가져오기, 사진넣기 등의 작업이였다. 직접 조정하거나 함수를 복잡하게 만들 것도 없이 매크로를 딱 만들어서 실행하니 얼마나 편했는지 모른다. 하지만 완벽하지 않았다. 1개를 하면 1개가 안되고, 1개를 해결하면 또 다른 1개가 안되었다.

그리고 완성했다고 생각했지만, 자동화라고 하기에 불편함이 있었고, 그걸 보완하기 위해 더 깊이 파볼 수 밖에 없었따.


결론은 나도 매크로를 할 줄 알아야 한다는 것으로 나버렸다. 그래야 질문하고, 코드를 바꾸라고 할 때 통쨰로 주고 내가 바꾸기를 원하지 않는 코드까지 바꿔버리는 사태는 일어나지 않기 때문이다. 

솔직히 처음에는 너무 어려워 보였다. '코드'라는 것을 작성해 본 적이 없었기 때문이다. "이게 될까?"라는 생각으로 망설였지만, 챗GPT에게 한 줄 한 줄 설명해달라는 조건과 주의사항까지 붙여가며 답해달라는 명령을 추가로 붙여, 내가 이 작업을 하면서 배워갈 수 있게 유도했다.


 나는 VBA 편집기를 열고, 챗GPT가 제공한 예제 코드를 따라가면서 조금씩 예제를 수정하기 시작했다. 그치만 사실 수정한 건 거의 없었다. 코드는 복사붙여넣기를 하면 끝이고, 특정 셀이나 조건부만 조금 조정하는걸 수정하면 되었다. 그것조차도 인공지능에게 물어보면서 했다. 여기서 뭘 수정해야 특정셀에 특정 조건을 만들어주는지 세세하게 물어보면, 진짜 너무 잘 가르켜주기에.


예시사진

나는 너무 흥분되었다. 매크로의 실행 방식과 구조만 조금 이해하고 난 후, 아는 부분만 바꾸면서 인공지능이 준 코드 그대로, 인공지능이 가르쳐준 대로 엑셀에서 실행 버튼을 눌렀다. 그리고 내가 원하던 자동화 기능이 뚝딱 만들어지는 것을 보고 너무 기뻤다. 이 작은 성취감이 나에게 더 큰 도전을 할 수 있는 자신감을 주었다. 내가 한 것은 아닐것이라 말해도 소용없다. 이 까지 오는데 얼마나 고생했는데, 나는 명령하는자, 그리고 제작하는것은 인공지능! 얼마나 유용한지 아는가? 성과라면 성과를 냈다 할 수준이다.


조금 더 매크로에 익숙해지자, 이제는 반복적인 작업을 자동화하고 싶어졌다. 매일 반복되는 데이터 정리 작업을 생각하면, 같은 작업을 수백 번 반복해야 하는 지루함에서 벗어나고 싶었다. 그래서 나는 챗GPT에게 또 다른 매크로를 제작할 것을 명령했다.

이 과정에서 나는 엑셀 매크로의 강력함을 실감했고, 더 많은 것을 배우고 싶어졌다.

매크로의 기본적인 사용법을 익힌 후, 나는 더 고급 기능을 사용해보고 싶었다. "사용자 정의 함수를 만들어서 자주 쓰는 계산식을 간편하게 호출할 수 있으면 좋겠다"는 생각이 들었다. 그래서 챗GPT에게 사용자 정의 함수를 만드는 방법을 물어봤다. 챗GPT는 VBA에서 사용자 정의 함수를 만드는 방법과 예제를 제공해줬다.


이 함수를 엑셀에서 호출해 보니, 정말로 내가 원하는 대로 작동했다. '와, 이제 엑셀에서 나만의 함수를 쓸 수 있구나!' 하고 감탄했다. 또한, 나는 매크로를 더 쉽게 사용할 수 있도록 버튼을 만들어 보고 싶었다. 그래서 챗GPT에게 "버튼을 클릭하면 매크로가 실행되게 할 수 있을까?"라고 물었다.


챗GPT는 폼 컨트롤을 사용하는 방법을 설명해주었고, 나는 엑셀 시트에 버튼을 추가하고 매크로를 연결하는 방법을 배웠다. 버튼을 클릭하자, 내가 만든 매크로가 자동으로 실행되는 것을 보며 나는 또 한 번 기쁨을 느꼈다. 


물론 매번 오류가 발생했고, 그 또한 인공지능에게 물어봤다. 그러면 차근차근 설명하면서 이해시켜주다보니, 정말 수월하고 쉽다는 생각이 들었다.


"코드를 작성하는 게 이렇게나 복잡하고 어려운 일이구나"라는 생각이 들었지만, 오류를 하나씩 해결해 나가면서 점점 더 자신감을 가지게 되었다. 오류가 발생할 때마다 조금씩 더 배우고, 더 나은 코드를 작성하게 되었다.


내 매크로 제작기는 이렇게 챗GPT와 함께한 긴 여정이었다. 처음에는 그저 단순한 엑셀 사용자가 더 효율적인 작업을 하고 싶어서 시작했지만, 이제는 엑셀을 넘어 자동화의 세계로 발을 내딛게 되었다. 매크로는 단순히 반복적인 작업을 줄이는 도구가 아니라, 나의 업무 효율을 극대화하고, 나의 업무 능력을 한 단계 끌어올려 주는 도구가 되었다.


챗GPT와의 대화를 통해 기초적인 질문부터 시작해서 복잡한 문제 해결까지, 나는 끊임없이 배우고 도전하며 나의 능력을 발전시켜 나갔다. 앞으로도 더 많은 것을 배우고, 더 복잡한 매크로를 만들어내기 위해 계속해서 노력할 것이다. 이 여정은 끝나지 않았다. 매크로 제작기는 계속된다.




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari