ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 챗gpt 무료버전으로 엑셀 매크로 만들기(엑셀 함수 정리도 한 번에!)
    카테고리 없음 2024. 6. 12. 17:57

    챗gpt 무료버전으로 엑셀 매크로 '완전 쉽게' 만들기

    - 엑셀 함수 오류로 일일이 복붙했던 노가다 작업도 깔끔하게 자동화!

     
    데이터 관리와 분석에 있어 필수적인 도구, 엑셀. 하지만 별도의 공부를 하지 않았던 저에게 엑셀의 깨알 같은 기능들을 사용해보기란 쉽지 않은 일이더라구요. 병합된 셀이 있으면 함수를 입력해서 드래그해도 오류 나기 십상이라 일일이 Ctrl+C, Ctrl+V를 쉴새 없이 눌러대며 반복 작업을 하기 일쑤였는데, 챗gpt를 사용하면서 꾀가 말짱해졌습니다. 노가다를 그만하고 싶어 챗gpt에게 엑셀 함수 정리를 해달라고 했더니 엑셀 매크로 만드는 방법을 알려주더라구요.
     
    코드, 스크립트 작성이란 거 1도 모르는 저도 완전 쉽게 가능했던 엑셀 매크로 만들기! 저는 챗gpt 유료버전을 사용하고 있지만 챗gpt 무료버전으로 엑셀 매크로 만들기도 충분히 가능합니다. 이번 포스팅에서는 제가 챗gpt를 통해 특정 열의 값이 변경될 때마다 수식을 자동으로 업데이트하는 엑셀 매크로를 만든 방법에 대해 소개해볼게요. 
     

    여기서 잠깐, 엑셀 매크로란?

    매크로는 VBA(Visual Basic for Applications) 언어를 사용해 엑셀의 작업을 자동화하는 기능입니다. 매크로를 통해 복잡한 계산, 데이터 정리, 보고서 생성 등을 버튼 클릭 한 번으로 처리할 수 있습니다. 매크로를 작성하기 위해서는 엑셀의 개발 도구 탭을 활성화해야 합니다.


    엑셀 개발 도구 탭 활성화 방법

    1. 엑셀 상단 메뉴에서 '파일'을 클릭한 후 '옵션'을 선택합니다.
    2. '리본 사용자 지정' 탭에서 '개발 도구'를 체크하여 활성화합니다.

    이제 개발 도구 탭에서 매크로를 작성하고 실행할 수 있습니다.


    챗gpt 무료버전으로 엑셀 매크로 간단하게 코드 작성 및 실행하기

    준비가 완료됐다면 챗gpt에 접속해주세요. 앞서 말씀 드린 것처럼 무료 버전으로도 충분히 가능합니다. 챗gpt에게 엑셀 매크로 코드로 필요한 내용에 대해 설명해주세요. 초기 프롬프팅을 할 때 챗gpt에게 페르소나를 부여하면 더 좋은 결과 값을 확보할 수 있습니다. 추가로 챗gpt에 첨부파일을 올릴 수 있기 때문에 엑셀이나 필요한 작업의 캡쳐본을 직접 업로드해서 설명하시면 챗gpt가 더 명확하게 요구 사항을 이해할 수 있습니다.
     

    챗gpt에게 엑셀 캡쳐본을 제시하며 "엑셀 자격증을 보유한 전문가"로서 답변해달라고 요청했습니다.

     
    저는 매월 은근 노가다 하게 되는 실적 정리표를 빠르게 정리하고 싶어서 챗gpt에게 매크로 코드 작성을 요청했어요. 실적표를 그대로 노출할 수 없어 유사하게 샘플을 작성해 봤는데, 보시다시피 '매출' 열에 병합된 행이 있어서 'Fee' 계산을 할 때 수식을 입력하고 밑으로 드래그를 하면 수식이 제대로 반영 안되거나 오류가 뜨더라구요. 그래서 그동안은 일일이 하나하나 수식을 거는 노가다를 했는데, 챗gpt한테 이 문제를 해결해달라고 했더니 매크로 코드를 작성해주기 시작합니다. 

    ■ 설명:
    • lastRow = Cells(Rows.Count, 8).End(xlUp).Row: 마지막 행을 찾습니다.
    • While i <= lastRow: 모든 행을 순회합니다.
    • If Cells(i, 8).MergeCells Then: 병합된 셀의 경우.
    • feeTotal = Cells(i, 8).Value: 병합된 셀의 값 가져오기.
    • Set mergeArea = Cells(i, 8).MergeArea: 병합된 셀 범위 설정.
    • lastMergeRow = mergeArea.Row + mergeArea.Rows.Count - 1: 병합된 셀의 마지막 행 찾기.
    • Cells(j, 11).Value = Round(feeTotal * Cells(j, 10).Value, 0): 수익 계산.
    • Cells(j, 11).NumberFormat = "#,##0": 셀 서식을 설정하여 소수점 없이 표시.

     
    이렇게 챗gpt가 작성해준 엑셀 매크로 코드를 복사하고 엑셀 창을 다시 열어주세요. ALT + F11을 누르면 VBA 편집기가 열리는데, "삽입 > 모듈"을 클릭해서 새 모듈을 추가합니다. 그러면 코드 창이 열리는데, 코드를 복사해서 붙여 넣기만 해주시면 됩니다.
     

    삽입 - 모듈 - 팝업창이 뜨면 챗gpt가 작성한 코드 붙이기

     
     
    이제 복사한 엑셀 매크로 코드를 코드 창에 붙여넣고, F5(새로고침)를 누르면?

    챗gpt 엑셀 매크로 코드 만들기로 한 번에 작업 완료!

     

     
    다만, 데이터를 수정할 때 마다 매크로를 돌려야 하는 번거로움이 있었어요. 그래서 자동 업데이트가 반영되게 해달라는 요청을 했고, 아래는 문제를 간단하게 해결하는 두 가지 방법입니다!

    자동 업데이트 첫 번째 방법. 이벤트 처리

    Worksheet_Change 이벤트를 사용하여 특정 열의 값이 변경될 때마다 자동으로 수식을 업데이트 하도록 설정하는 방법입니다. 챗gpt에게 "수식을 실시간 자동 업데이트 하고 싶다"고 요청하자 이벤트를 관리하는 엑셀 매크로 코드를 추가로 작성해줬어요.

     

    설명:
    • If Not Intersect(Target, Me.Columns("J")) Is Nothing Then: J열의 값이 변경된 경우에만 실행합니다.
    • Application.EnableEvents = False: 이벤트 중첩 방지.
    • Application.EnableEvents = True: 이벤트 재활성화.

     

    챗gpt가 작성하 코드는 다시 엑셀로 돌아와 ALT + F11을 눌러 VBA 편집기를 열고, 왼쪽 창에서 해당 시트를 더블 클릭해 코드 창을 엽니다. 참고로 저는 "Sheet1"이라고 나왔어요. 코드 창에 챗GPT가 작성한 코드를 붙여넣기 하면, 끝입니다.

     

    하지만 저는 이 방법이 잘 실행이 안되더라구요. 그럴 땐 두 번째 방법, 매크로 버튼을 추가하면 매크로를 쉽게 실행할 수 있습니다.
     

    자동 업데이트 두 번째 방법. 매크로 버튼 추가

    1. 엑셀로 돌아가서, 리본 메뉴에서 개발 도구 탭을 클릭합니다. 만약 개발 도구 탭이 보이지 않으면, 파일 > 옵션 > 리본 사용자 지정에서 개발 도구를 체크하여 활성화합니다.
    2. 개발 도구 탭에서 삽입 > 폼 컨트롤의 단추를 선택합니다.
    3. 워크시트에 단추를 클릭하여 추가한 후, UpdateTeamFee 매크로를 선택하여 연결합니다.
    4. 단추의 이름을 적절히 변경합니다. 예를 들어, 아래와 같이 "자동화 버튼" 등으로 변경하시면 됩니다.

     
    엑셀 매크로를 이용하면 이벤트 처리를 통해 반복적인 수식을 자동으로 업데이트가 가능해져 업무 효율성을 크게 높일 수 있습니다. 만약 매크로를 처음 사용하는 경우라면 저처럼 챗gpt의 도움을 빌려 간단하게 스크립트를 작성해보세요. 내가 그동안 몰랐던 엑셀의 다양한 확장 기능을 통해 업무 자동화를 이뤄내는 것 생각만큼 어렵지 않습니다!

Designed by Tistory.