평창올림픽 로고 애니메이션
엑셀 VBA, 움직이는 도형으로 애니메이션을?! - 평창올림픽 로고 만들기
이 강의에서는 엑셀 VBA로 도형을 클릭하면 그림이 움직이는 평창올림픽 로고 애니메이션을 제작하는 방법을 다룹니다. VBA를 처음 접하는 입문자도 제공된 코드를 복사·붙여넣기만으로 동일한 결과를 만들 수 있도록 단계별로 안내하며, 매크로 지정·코드 편집기 활용·텍스트 상자 연동까지 VBA의 기본 흐름을 자연스럽게 익힐 수 있습니다.
실습자료를 준비했어요
수업에서 사용한 예제 파일과 보충 자료를 한 곳에 정리했습니다!👇
강의 요약
2018 평창동계올림픽 개막을 기념하여 새로운 VBA 강의를 준비했습니다. 이번 강의에서는 평창올림픽의 성공적인 개최를 기원하며, 엑셀 VBA로 평창올림픽 로고 애니메이션을 직접 제작해봅니다.

엑셀 VBA의 첫 번째 강의로, VBA를 처음 접하는 초보자도 코드를 복사·붙여넣기만으로 손쉽게 따라 할 수 있도록 강의를 구성했습니다. 모든 코드를 완벽히 이해하기보다는, 'VBA로 이런 기능도 구현할 수 있구나' 하는 정도로 가볍게 살펴보며 VBA의 가능성을 체험해보세요.
1. 이미지에 매크로 입히기
- 예제파일을 처음 열면 상단에 '콘텐츠 사용' 버튼이 표시됩니다. 해당 버튼을 클릭하여 매크로 기능을 활성화합니다.

- 성화 이미지를 마우스 우클릭한 뒤 '매크로 지정' 메뉴로 이동합니다.

- 매크로 목록에서 'Torch_Macro'를 선택한 뒤 '확인' 버튼을 눌러 성화 이미지에 매크로를 연결합니다.

2. 매크로 편집기에 코드 추가하기
- '개발도구' 탭에서 'Visual Basic'을 클릭하거나 단축키 Alt + F11을 눌러 매크로 편집기로 이동합니다.

- 좌측 프로젝트 탐색기에서 Btn_Action 모듈을 더블클릭하여 코드 창을 엽니다.

- 아래 코드를 복사한 뒤 기존 Torch_Click 프로시저의 내용을 다음과 같이 변경합니다.
Sub Torch_Click() Dim WB As Workbook Dim WS As Worksheet Set WB = ThisWorkbook Set WS = WB.Worksheets("Sheet1") With WS.Shapes("TextBox").TextFrame2.TextRange .Text = "" HappyOlympic .Text = "평창올림픽 성공기원" End With End Sub
- '삽입' 탭으로 이동한 뒤 '텍스트 상자' - '가로 텍스트 상자'를 추가합니다.

- 추가한 텍스트 상자를 선택한 뒤, 이름 상자에서 이름을 'TextBox'로 변경합니다.

3. 매크로 동작 확인하기
이제 평창올림픽 로고 애니메이션 매크로가 모두 완성되었습니다. 로고를 원하는 위치로 이동한 뒤 성화 이미지를 클릭하면, 올림픽 로고 애니메이션이 동작합니다.

ws.Shapes("textbox").TextFrame2.TextRange.Text = ""
에서 오류가 발생할 경우, 도형의 이름이 'textbox'로 설정되어 있는지 확인해보시겠어요?^^
만약 다른이름, (예: textbox1, 텍스트박스) 등으로 설정되어 있을경우,
Shapes("textbox") 이부분에 값을 변경해주셔야 합니다 ^^
제 답변이 도움이 되셨길 바랍니다.^-^
감사합니다.
Sub Torch_Click()
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Worksheets("sheet1")
ws.Shapes("textbox").TextFrame2.TextRange.Text = ""
HappyOlympic
End Sub
이렇게 작성 했는데 자꾸 오류가 나네요. 함 봐주시기를 부탁드립니다.
작성하신 코드에는 문제가 없어보입니다.
아래 내용을 추가로 알려주시겠어요?
1. 어떤 Runtime 오류가 발생하시나요? 번호를 적어주시겠어요?
2. 어디에서 오류가 발생하시나요?
3. 사용중인 엑셀 버전이 어떻게 되시나요?
감사합니다 ^^~
오빠두 영상을 통해 VBa를 배워볼려 하는데 어느 영상부터 봐야할지 모르겠네요..
이번 화도 VBA 명령문에 대한 설명이 없어서요.. 어떤 영상부터 봐야할까요?
어떻게 공부하면 효율적으로 공부할 수 있을까요?
VBA 기초 입문 강의 --> 퀵 VBA 강의 순서로 직접 따라해보면서 연습하시면 금방 VBA에 대해 이해할 수 있으실 겁니다.
기초입문은 다소 이론적인 내용이며, 퀵 VBA 강의에서는 각 명령문에 대한 설명을 자세히 해 드렸습니다 ^^
제 답변이 도움이 되셨길 바랍니다.
감사합니다.
본문 1-2 Torch_Click 매크로가 Torch_Macro 로 오기재되어있습니다~^^
강의 감사합니다!
1. 본문 1-2 Torch_Click 매크로가 Torch_Macro 로 오기재되어있습니다~^^
2. 본문의 Torch_Click 매크로 코드 중 With구문인
With WS.Shapes("TextBox").TextFrame2.TextRange
.Text = "" HappyOlympic
.Text = "평창올림픽 성공기원"
End With
에서 HappyOlympic 이 개행되지 않아 에러가 발생합니다.
Sub Torch_Click()
Dim WB As Workbook
Dim WS As Worksheet
Set WB = ThisWorkbook
Set WS = WB.Worksheets("Sheet1")
WS.Shapes("TextBox").TextFrame2.TextRange.Text = ""
HappyOlympic
WS.Shapes("TextBox").TextFrame2.TextRange.Text = "Congrats!!!"
End Sub
이렇게 하면 실행이 되고,
With 랑 End With를 넣은 예제에 있는 대로 하려면
Sub Torch_Click()
Dim WB As Workbook
Dim WS As Worksheet
Set WB = ThisWorkbook
Set WS = WB.Worksheets("Sheet1")
With WS.Shapes("TextBox").TextFrame2.TextRange
.Text = ""
HappyOlympic
.Text = "Congrats"
End With
End Sub
이렇게 하면 실행이 되네요. 무슨 차이이죠?
Dim WB As Workbook
Dim WS As Worksheet
Set WB = ThisWorkbook
Set WS = WB.Worksheets("Sheet1")
With WS.Shapes("TextBox").TextFrame2.TextRange
.Text = ""
End With
HappyOlympic
With WS.Shapes("TextBox").TextFrame2.TextRange
.Text = "Congrats"
End With
End Sub
이렇게 End With를 한번 더 써주어야 에러가 안생기네요. 무슨 차이인지는 아직 잘 모르겠네요. ㅎㅎㅎ
강의 수강완료!! 20.12.01