18 min read

발표자료 준비 시간 단축의 혁명 챗GPT와 VBA로 PPT 템플릿 자동 완성하기

발표자료 준비로 야근하는 날들이여 안녕! 챗GPT와 VBA를 활용해 회사 PPT 템플릿을 자동으로 채우는 혁신적인 방법을 소개합니다. 복잡한 코딩 지식 없이도 간단한 설정으로 발표자료 제작 시간을 대폭 줄일 수 있습니다. AI의 힘으로 업무 효율을 높이고 퇴근 시간을 앞당기세요.
발표자료 준비 시간 단축의 혁명 챗GPT와 VBA로 PPT 템플릿 자동 완성하기

안녕하세요, AI Ground 구독자 여러분!

오늘은 여러분의 PPT 작업을 크게 개선할 수 있는 방법을 소개해드리려고 합니다. ChatGPT를 활용해 회사 PPT 템플릿을 자동으로 채우는 방법, 함께 알아볼까요?


자동화된 PPT 작성 과정 살펴보기

먼저 빈 회사 PPT 템플릿이 있다고 상상해보세요. 아직은 내용이 없는 상태입니다.

우리 회사 PPT 템플릿 예시

이제 ChatGPT를 활용하여 내용을 생성합니다. 화면의 한 부분에서는 ChatGPT가 내용을 만들어내고 있고, 다른 한 부분에는 우리의 빈 PPT가 있습니다.

다음으로, 하나의 작업을 실행합니다!

그 결과, 빈 슬라이드가 자동으로 채워진 모습을 보실 수 있습니다.

우리 회사 PPT 템플릿에 맞춰 결과물 생성 예시


회사 템플릿에 맞춘 PPT 작성의 중요성

최근 기업 교육을 다니면서 중요한 점을 깨달았습니다.

  • 내용을 만들어내는 것도 중요하지만,
  • 많은 분들이 회사 템플릿에 맞춰 결과물을 만들어내고자 하는 강한 니즈가 있다는 거예요.

왜 그럴까요? 회사마다 고유한 브랜드 아이덴티티가 있고, 이를 PPT에도 반영하고자 하기 때문이죠. 또한 일관된 형식은 프레젠테이션의 전문성을 높이고 청중의 집중도를 향상시킵니다.

하지만 이 과정이 늘 쉽지만은 않죠. 시간은 부족하고, 양식은 복잡하고... 게다가 내용 작성에 집중하다 보면 형식을 맞추는 데 소홀해지기 쉽습니다.

그래서 저는 다양한 방법을 연구해왔는데요. 오늘은 우리 회사 PPT 양식에 결과물을 효율적으로 만들어내는 방법을 소개해드리려고 합니다.

이 방법은 ChatGPT와 VBA를 활용한 자동화 기법입니다. 이를 통해 다음과 같은 효과를 기대할 수 있어요

  1. 시간 절약: 템플릿 적용 시간을 크게 단축할 수 있습니다.
  2. 일관성 유지: 모든 슬라이드가 회사 양식에 맞게 자동으로 조정됩니다.
  3. 업무 효율성 향상: 형식 맞추기에 들이는 시간을 줄여 내용에 더 집중할 수 있어요.

가장 좋은 점은 코딩 경험이 없어도 이 방법을 쉽게 활용할 수 있다는 거예요.

추가 정보 안내

오늘 소개해드린 방법에 대해 더 자세히 알고 싶으신가요? 제가 운영하는 유튜브 채널 '똑햄'에서 관련 영상을 확인하실 수 있습니다.

  • 특히 ChatGPT 내에서 변수값을 변환하는 방법과
  • VBA 코드를 생성하는 방법에 대해 더 상세한 설명을 들으실 수 있을 거예요.
AI Ground 공조성 이사가 운영하는 유튜브 채널 '똑햄'


템플릿 만들기

오늘 소개해드릴 PPT 자동화 작업을 위해서는 반드시 적절한 PPT 템플릿이 필요합니다. 각 회사나 개인마다 선호하는 양식이 다를 수 있지만, 이 방법을 효과적으로 활용하기 위해서는 몇 가지 주의사항을 반드시 지켜야 합니다.

주의사항

텍스트 포함 도형 그룹 해제

  • 모든 텍스트를 포함한 도형은 반드시 그룹 해제 상태여야 합니다.
  • 그룹 상태로 두면 텍스트 교체가 불가능해집니다.
  • 도형 그룹 해제를 위한 별도 절차가 필요하게 되면, 작업이 복잡해지고 ChatGPT가 생성한 코드가 제대로 작동하지 않을 가능성이 높아집니다.
텍스트를 포함한 도형은 반드시 '그룹 해제' 상태여야 한다.

변수의 고유성

  • 모든 변수는 중복되지 않는 고유한 값이어야 합니다.
  • 예를 들어, 모든 모듈을 {모듈}으로 설정하면 모두 한 번에 동일한 내용으로 바뀌게 됩니다.
  • 대신 {모듈1}, {모듈2}, {모듈3} 등으로 구분해야 합니다.
각 변수값은 중복되지 않은 고유한 값이어야 한다.

변수 표기법

  • ChatGPT가 이해할 수 있도록 특정 기호로 변수를 표기해야 합니다.
  • 이는 바꾸지 않아야 할 상수와 변수를 ChatGPT에게 명확히 구분시키기 위함입니다.
  • 예: {일시}, {장소}, {목적}
특정한 기호(이번 사례에선 중괄호 {} )로 변수와 상수를 구분해주어야 한다.

예시 템플릿

본 가이드에서는 제가 제공한 템플릿을 기준으로 설명을 진행하겠습니다. 이 템플릿은 위의 주의사항을 모두 고려하여 제작되었으며, 자동화 작업에 최적화되어 있습니다.

우리 회사 PPT 템플릿 예시


VBA 코드 작성

PPT 템플릿의 변수를 변환하는 VBA 코드 작성은 자동화 과정의 핵심입니다. 이 작업은 다음 세 단계로 진행됩니다.

  1. ChatGPT에게 PPT 템플릿을 제공하고, 변수를 추출합니다.
  2. 원하는 내용을 입력하여 변수 값을 생성합니다.
  3. VBA 코드를 작성합니다.

1. 템플릿 제공 및 변수 추출

먼저 ChatGPT에게 만든 PPT 템플릿을 제공합니다. 그리고 이 안에 {} 중괄호로 표현된 모든 변수를 추출하도록 요청합니다.

예시 프롬프트:

제공한 PPT 파일을 읽고, 슬라이드 내에 있 {변수} 모두 값을 정리해줘
1. ChatGPT에게 PPT 템플릿을 제공하고, 변수를 추출합니다.

2. 변수 값 생성

추출된 변수들에 대해, 우리가 채워넣으려는 실제 내용을 토대로 각 변수에 들어갈 값을 생성합니다.

예시 프롬프트:

'생성형 AI 실무 활용' 교육을 주제로 교육을 기획하고 있어. 앞서 정리한 변수에 맞춰 교육 커리큘럼을 기획해줘
- 5시간 교육
    1. 생성형 AI 트렌드와 챗GPT 개요
    2. 프롬프트 엔지니어링 개념 및 기초 실습
    3. RAG 개념 및 개념 익히기 실습
    4. 챗GPT 심화 실습
    5. AI를 활용한 업무 효율화/자동화 사례 공유
- 강사 : 일잘러 장피엠 (장병준)
- 부족한 내용은 임의로 작성해줘
    - {모듈 내용}은 3줄 이상으로 작성
2. 원하는 내용을 입력하여 변수 값을 생성합니다.

3. VBA 코드 작성

마지막으로, 템플릿에서 변수값을 변환하는 VBA 코드를 작성해달라고 요청합니다. 여기서 사용할 수 있는 최적화된 프롬프트가 있습니다. 이 프롬프트를 사용하면 안정적으로 코드를 생성할 수 있습니다.

최적화된 VBA 코드 생성 프롬프트:

제공한 PPT 파일에서 vba 코드로 {변수} 값을 '생성형 AI 실무 활용' 커리큘럼 값으로 바꾸는 코드를 만들어줘
- 파일 열고 닫는 코드 제외
- 표에서 셀이 구분된 경우 다른 텍스트로 작업할 것
- 표 안에 있는 변수는 별도의 단계를 추가하여 변환할 것
- {변수}가 부분 문자열로 결합된 것을 고려할 것
- 위 사항이 모두 반영되었는지 중간 결과를 확인하는 코드 추가
- 코드 작성 기본 흐름
    ' 사전에 원본 텍스트와 대체할 텍스트를 정의 (replacements.Add 함수 활용)
    ' 원본 텍스트와 교체할 텍스트를 키-값 쌍으로 추가
    ' 슬라이드와 도형을 순회하며 텍스트 교체

3. VBA 코드를 작성합니다.

ChatGPT로 코딩 작업을 할 때도 글쓰기와 마찬가지로 '예시' 혹은 '가이드라인'을 제공하는 것이 중요합니다.

이렇게 하면 원하는 결과물을 얻을 확률이 높아집니다. 위의 프롬프트는 여러 번의 시행착오를 거쳐 정제된 것이므로, 여러분도 그대로 사용하시면 좋은 결과를 얻을 수 있을 것입니다.

VBA 코드 샘플

Sub ReplaceVariables()
    Dim slide As slide
    Dim shape As shape
    Dim cell As cell
    Dim tbl As Table
    Dim replacements As Object
    Set replacements = CreateObject("Scripting.Dictionary")
    
    ' Define the original and replacement texts using replacements.Add function
    replacements.Add "{과정명}", "생성형 AI 실무 활용"
    replacements.Add "{일시}", "추후 협의"
    replacements.Add "{장소}", "추후 협의"
    replacements.Add "{목적}", "생성형 AI의 최신 트렌드와 실무 활용 방법을 이해하고 실습을 통해 업무에 직접 적용할 수 있는 역량을 강화합니다."
    
    replacements.Add "{모듈1}", "생성형 AI 트렌드와 챗GPT 개요"
    replacements.Add "{모듈1 내용}", "생성형 AI의 현재 트렌드와 주요 활용 사례를 알아봅니다." & vbCrLf & _
                                    "챗GPT의 기본 개념과 작동 원리를 이해하고 활용 가능성을 파악합니다." & vbCrLf & _
                                    "AI 기술이 미래 비즈니스에 어떻게 영향을 미치는지 살펴봅니다."
    
    replacements.Add "{모듈2}", "프롬프트 엔지니어링 개념 및 기초 실습"
    replacements.Add "{모듈2 내용}", "프롬프트 엔지니어링의 핵심 개념을 익히고 다양한 예제를 살펴봅니다." & vbCrLf & _
                                    "간단한 프롬프트 작성 및 수정 실습을 통해 AI의 응답을 효과적으로 제어하는 방법을 배웁니다." & vbCrLf & _
                                    "적절한 프롬프트를 통해 원하는 결과를 도출하는 전략을 학습합니다."
    
    replacements.Add "{모듈3}", "RAG 개념 및 개념 익히기 실습"
    replacements.Add "{모듈3 내용}", "Retrieval-Augmented Generation(RAG)의 원리와 활용 방안을 알아봅니다." & vbCrLf & _
                                    "RAG를 통해 대규모 데이터베이스에서 유용한 정보를 추출하고 활용하는 방법을 학습합니다." & vbCrLf & _
                                    "실습을 통해 RAG 개념을 적용해 보는 과정을 경험합니다."
    
    replacements.Add "{모듈4}", "챗GPT 심화 실습"
    replacements.Add "{모듈4 내용}", "챗GPT를 활용하여 다양한 업무 상황에 대응하는 심화 프롬프트를 작성합니다." & vbCrLf & _
                                    "비즈니스 문제 해결과 아이디어 발굴을 위한 실습을 진행합니다." & vbCrLf & _
                                    "다양한 산업 분야에서의 활용 사례를 통해 응용 범위를 넓혀봅니다."
    
    replacements.Add "{모듈5}", "AI를 활용한 업무 효율화/자동화 사례 공유"
    replacements.Add "{모듈5 내용}", "AI를 활용하여 실제 업무 효율화 및 자동화를 이룬 사례를 공유합니다." & vbCrLf & _
                                    "각 사례의 문제 해결 과정과 결과를 분석하며 적용 포인트를 파악합니다." & vbCrLf & _
                                    "교육 참가자들과 함께 토론하며 자신의 업무에 적용 가능한 아이디어를 모색합니다."
    
    replacements.Add "{과정 소요시간}", "5시간"
    replacements.Add "{강사명}", "일잘러 장피엠 (장병준)"
    replacements.Add "{강사이력}", "- 10년 이상 기업 AI 도입 및 디지털 트랜스포메이션 프로젝트 수행" & vbCrLf & _
                                    "- 다수의 생성형 AI 관련 강연 및 컨설팅 진행" & vbCrLf & _
                                    "- 국내외 유수 기업 대상 AI 실무 교육 강사 경력"
    
    replacements.Add "{특징1}", "실무 중심: 실제 업무에서 바로 적용할 수 있는 생성형 AI 활용 방법을 제공합니다."
    replacements.Add "{특징2}", "참여형 실습: 다양한 실습을 통해 생성형 AI 기술을 직접 경험하고 체득합니다."
    replacements.Add "{특징3}", "전문 강사: 다년간의 AI 프로젝트 경험을 가진 전문 강사의 지도로 학습 효과를 극대화합니다."

    ' Loop through slides
    For Each slide In ActivePresentation.Slides
        ' Loop through shapes in each slide
        For Each shape In slide.Shapes
            If shape.HasTextFrame Then
                If shape.TextFrame.HasText Then
                    Dim originalText As String
                    originalText = shape.TextFrame.TextRange.Text
                    
                    ' Replace text in normal text boxes
                    Dim key As Variant
                    For Each key In replacements.Keys
                        originalText = Replace(originalText, key, replacements(key))
                    Next key
                    shape.TextFrame.TextRange.Text = originalText
                End If
            End If
            
            ' If shape is a table
            If shape.HasTable Then
                Set tbl = shape.Table
                Dim row As Integer, col As Integer
                
                ' Loop through all cells in the table
                For row = 1 To tbl.Rows.Count
                    For col = 1 To tbl.Columns.Count
                        If tbl.Cell(row, col).Shape.HasTextFrame Then
                            If tbl.Cell(row, col).Shape.TextFrame.HasText Then
                                originalText = tbl.Cell(row, col).Shape.TextFrame.TextRange.Text
                                
                                ' Replace text in table cells
                                For Each key In replacements.Keys
                                    originalText = Replace(originalText, key, replacements(key))
                                Next key
                                tbl.Cell(row, col).Shape.TextFrame.TextRange.Text = originalText
                            End If
                        End If
                    Next col
                Next row
            End If
        Next shape
    Next slide
    
    ' Display message box to confirm replacements were made
    MsgBox "모든 변수 값이 성공적으로 대체되었습니다.", vbInformation, "교체 완료"
    
End Sub


VBA 코드 실행

VBA 코드를 작성했다면 이제 템플릿 PPT 파일에서 실행해볼 차례입니다.

  • PPT 템플릿 파일 실행
    • PPT 템플릿 파일을 엽니다.

  • 개발 도구 메뉴 활성화
    • 개발 도구 메뉴가 보이지 않는다면 다음 단계를 따라 활성화합니다: 파일 > 옵션 > 리본 사용자 지정 > 개발 도구 체크
'리본 사용자 지정'에서 '개발 도구'를 찾아 체크 한다.

  • Visual Basic 실행
    • 개발 도구 탭에서 Visual Basic을 클릭합니다.
'개발 도구' 탭에서 'Visual Basic'을 클릭합니다.

  • 모듈 추가 및 코드 입력
    • Visual Basic 창이 뜨면, 프로젝트 관리 창에서 우클릭을 하여 모듈을 삽입한다.
    • ​모듈창이 열리면 기존에 있던 텍스트를 모두 지운 후, 챗GPT가 생성한 코드를 복사하여 붙여넣는다.
Visual Basic 창이 뜨면, 프로젝트 관리 창에서 우클릭을 하여 모듈을 삽입한다.
모듈창이 열리면 기존에 있던 텍스트를 모두 지운 후, 챗GPT가 생성한 코드를 복사하여 붙여넣는다.

  • 코드 실행
    • '재생' 버튼을 눌러 코드를 실행한다.
'재생' 버튼을 눌러 코드를 실행한다.

실행이 완료되면, 템플릿에 내용이 자동으로 채워진 것을 확인할 수 있습니다. 이 방식의 장점은 원본 텍스트 서식을 잘 유지하므로 마무리 작업에 시간이 덜 든다는 것입니다.

  • 마무리 작업으로는 텍스트 블록의 좌우 너비가 제멋대로 변하는 것을 잡아주는 정도이다
무리 작업으로는 텍스트 블록의 좌우 너비가 제멋대로 변하는 것이다. (10초 이내)

최종 결과물 예시

작업이 끝난 후 '다른 이름으로 저장'을 활용하면 원래 템플릿은 그대로 보존하면서 새로운 결과물 파일을 별도로 생성할 수 있습니다.


마무리

오늘 우리는 ChatGPT를 활용하여 회사 PPT 템플릿에 맞춰 내용을 자동으로 채우는 방법을 알아보았습니다.

코드 작성이나 새로운 기능 사용이 낯설게 느껴질 수 있지만, 이 기분만 극복하면 실제 사용은 그리 어렵지 않습니다.

템플릿 만들기 등 첫 설정에 시간이 좀 걸리지만, 이후에는 여러분의 시간을 크게 아껴줄 것입니다.

AI Ground 뉴스레터 구독자라면 이미 ChatGPT로 슬라이드 내용 만들기에 익숙하실 텐데요. 여기에 오늘 배운 방법을 더해 회사 PPT 양식에 자동으로 내용을 채워넣어 보세요.

앞으로도 AI를 활용한 MS Office 작업 효율화 방법을 계속 다룰 예정이니 기대해 주세요!


AI Ground 교육이 제공하는 차별화된 학습 경험

AI Ground 교육 프로그램은 기업 실무에서 생성형 AI 기술을 효과적으로 활용할 수 있는 역량을 기르는 것을 목표로 하고 있습니다. 이론 교육과 함께 실습 위주의 체험식 학습을 강조하는 것이 교육 철학입니다.

  • 다양한 생성형 AI 도구를 직접 활용해볼 수 있는 실습 기회 제공
  • 기업에서 실제로 마주칠 수 있는 문제 상황을 가정한 프로젝트 수행
  • 유료 ChatGPT 계정 대여를 통한 데이터 처리/분석/시각화, 웹 검색, 파일 학습 등 고급 기능 활용 실습

AI 실무 적용, 어렵지 않아요!

생생한 사례와 전문가의 노하우가 가득한
AI Ground 뉴스레터에서 디지털 전환의 시대를 미리 준비하세요.
지금 바로 구독하고 AI 활용의 노하우를 만나보세요!