ChatGPT를 활용해 엑셀 매크로 프로그래밍을 쉽게 하는 방법

글자 크기

엑셀 매크로 프로그래밍은 엑셀을 자동화하는 매우 강력한 기능을 제공합니다. 하지만 엑셀 매크로에 대한 경험이 없다면 시작하기가 쉽지 않습니다. 이 글에서는 이런 분들을 위해 ChatGPT를 활용해 엑셀 매크로 프로그래밍을 쉽게 하는 방법에 대해 알아보겠습니다.




ChatGPT를 활용해 엑셀 매크로 프로그래밍을 쉽게 하는 방법

이 글은 이미 ChatGPT에 사용자 등록이 되어 있고, 기초적인 프로그래밍 지식이나 경험이 있다는 가정하에 작성했습니다. 그러나 누구나 적용해볼 수 있도록 최대한 쉽게 작성했으니 따라해 보시기 바랍니다.

이 글에서 사용한 엑셀 예제 파일은 아래 링크를 통해 다운로드 받을 수 있습니다. 

엑셀 예제파일 다운로드


먼저 아래 그림과 같이 ‘사원명부’라는 시트가 있습니다. 이 데이터 중 직위를 기준으로 구분해서 각각의 시트를 만들어 보겠습니다.

조건은 다음과 같습니다. 

  • F열의 ‘직위’를 기준으로 구분해서 각 직위 이름으로 시트를 생성할 것
  • 1행의 타이틀을 각 직위 시트 1행에 복사할 것
  • 모든 데이터에 대해 F열의 직위를 구분해서 각 시트에 2행부터 차례대로 행 단위로 붙여넣기 할 것

ChatGPT를 활용해 엑셀 매크로 프로그래밍을 위한 예제 데이터입니다


위의 데이터와 조건을 가지고 ChatGPT를 활용해 엑셀 매크로 프로그래밍을 해 보도록 하겠습니다. 먼저 아래와 같이 ChatGPT에 로그인합니다. 저는 유료 서비스를 이용하고 있으나, 이 글에서는 무료 버전인 ChatGPT 3.5를 활용하도록 하겠습니다.

ChatGPT에 로그인 합니다


아래 프롬프트를 복사하여 ChatGPT에 붙여넣기한 후 엔터를 누릅니다.

아래 조건대로 엑셀 매크로 프로그래밍을 작성해줘.

조건 1: F열의 '직위'를 기준으로 구분해서 각 직위 이름으로 시트를 생성할 것
조건 2: 1행의 타이틀을 각 직위 시트 1행에 복사할 것
조건 3: 모든 데이터에 대해 F열의 직위를 구분해서 각 시트에 2행부터 차례대로 행 단위로 붙여넣기 할 것


ChatGPT에 제시한 프롬프트를 입력합니다


아래 화면과 같이 ChatGPT가 주어진 조건에 따라 엑셀 매크로 코드를 작성해 주었습니다. 제대로 작성되었는지 확인하기 위해 엑셀에서 실행해 보겠습니다.

ChatGPT가 작성해 준 엑셀 매크로 코드를 복사합니다


ChatGPT가 작성해 준 코드는 아래와 같습니다. 코드에서 9번째 줄에 있는 “원본시트명”을 “사원명부”로 변경한 후 전체 복사합니다. 

Sub 분류와_복사()
Dim 원본시트 As Worksheet
Dim 새시트 As Worksheet
Dim 마지막행 As Long
Dim i As Long
Dim 직위 As String

' 원본 시트 선택
Set 원본시트 = ThisWorkbook.Sheets("원본시트명")

' 마지막 행 계산
마지막행 = 원본시트.Cells(Rows.Count, "F").End(xlUp).Row

' 원본 시트에서 각 직위별로 시트 생성 및 데이터 분류
For i = 2 To 마지막행
직위 = 원본시트.Cells(i, "F").Value

' 직위 시트가 없으면 생성
If Not 시트_존재(직위) Then
Set 새시트 = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
새시트.Name = 직위
' 타이틀 복사
원본시트.Rows(1).Copy Destination:=새시트.Rows(1)
Else
Set 새시트 = ThisWorkbook.Sheets(직위)
End If

' 데이터 복사
원본시트.Rows(i).Copy Destination:=새시트.Rows(새시트.Cells(Rows.Count, "A").End(xlUp).Row + 1)
Next i
End Sub

Function 시트_존재(시트명 As String) As Boolean
Dim 시트 As Worksheet
On Error Resume Next
Set 시트 = ThisWorkbook.Sheets(시트명)
시트_존재 = Not 시트 Is Nothing
End Function


엑셀에서 Alt + F11 키를 눌러 VBA 에디터를 실행한 다음, 아래와 같이 왼쪽 사이드에서 마우스 오른쪽 키를 클릭하여 메뉴를 열고 ‘삽입 → ‘모듈’을 클릭합니다.  

엑셀에서 VBA 에디터를 오픈합니다


아래와 같이 새로 생성된 모듈에 위에서 복사한 코드를 ‘붙여넣기’하고 Ctrl+S 단축키를 눌러 저장합니다.

오픈한 VBA 에디터에 ChatGPT가 작성한 엑셀 매크로 소스를 붙여넣기 합니다


엑셀 상단 메뉴에서 ‘보기’ → ‘매크로’를 순서대로 클릭하여 매크로 선택창을 연 후, 매크로를  ‘실행’을 클릭합니다.

엑셀 매크로를 실행합니다


ChatGPT가 생성한 매크로를 그대로 복사하여 실행한 결과가 아래와 같이 나왔습니다. 확인해보니 원하는 대로 직위를 기준으로 시트가 만들어졌고 각 시트명에 해당하는 데이터가 복사되었습니다.

엑셀 매크로를 실행한 후 얻은 결과입니다. 원하는 데로 결과가 나온 것을 확인할 수 있습니다.


신기하지 않으신가요? 한 줄의 코드도 직접 작성하지 않고 서술형의 명령만 입력하여 엑셀 매크로 프로그램을 작성하고, 그 코드를 실행하여 원하는 결과까지 얻었으니 말입니다.

저의 경우에는 이렇게 ChatGPT를 활용해 엑셀 매크로 프로그램의 뼈대를 만든 후 필요한 세부적인 컨트롤이나 처리는 직접 소스 코드를 수정하여 구현하고 있습니다. 이렇게 하면 프로그래밍 기초 지식이 있는 분들이 ChatGPT를 활용할 경우 프로그래밍 시간을 상당히 단축할 수 있습니다.

오늘은 ChatGPT를 활용해 엑셀 매크로 프로그래밍을 쉽게 하는 방법에 대해 알아보았습니다. 엑셀 매크로에 대한 사전 지식이 부족하더라도 ChatGPT를 이용하면 간편하게 매크로 프로그램을 작성할 수 있어 업무 생산성이 크게 향상됩니다. 다만 원하는 결과물을 얻기 위해서는 ChatGPT가 정확히 이해할 수 있도록 질의 문장을 잘 구성해야 합니다. 이 글의 내용을 참고하여 엑셀 자동화 작업에 ChatGPT를 활용해보시기 바랍니다.