• 최초 작성일: 2000-11-23
  • 최종 수정일: 2026-09-29
  • 조회수: 20 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: Excel로 수강신청서 만들기

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

이번 시간에는 제목 그대로 Excel로 수강신청서를 만들어 보도록 하겠습니다. 일단 예제를 살펴보고 오시기 바랍니다.

잘 보셨지요? 사용자가 어떤 과목이나 등급을 선택하는지, 그리고 할인 여부 항목들 중에서 어떤 것에 체크를 하느냐에 따라 수강료계가 실시간으로 변하지요? Excel 본연의 기능과 VBA를 조금만 활용하면 이런 것 정도는 식은 죽먹기입니다. 그동안 Exceller의 강좌를 충실히… 충실히까지도 아니고 대충 따라하신 분들도 이 정도는 쉽게 만드실 수 있을 것입니다.

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 지음

📊 신간 전자책(PDF) · 287쪽 · 13500원

엑셀 대시보드를 만드는 최적의 '표준 3계층 구조'

  • 3초 안에 읽히는 화면 설계 감각 습득
  • Microsoft Excel MVP의 실전 노하우 수록
  • 중간마진 없는 합리적인 가격, 오직 아이엑셀러에서만!
지금 구매하기 완성 화면 보기

Excel로 수강신청서 만들기

핵심 요약

  • 양식 도구모음의 그룹상자와 옵션 단추, 확인란을 배치해 과목과 할인 조건을 선택하는 신청서를 만들 수 있습니다.
  • 선택된 옵션 단추와 확인란의 상태를 VBA에서 확인해 수강료를 누적하거나 할인·할증을 적용합니다.
  • 작성한 CalcPrice 매크로를 각 양식 컨트롤에 연결하면 사용자가 선택할 때마다 수강료가 자동으로 다시 계산됩니다.

참고: 이 글은 메뉴 방식(보기 - 도구 모음 - 양식) 시절의 화면 기준입니다. 리본 인터페이스의 Excel에서는 개발 도구 탭의 삽입 목록에서 양식 컨트롤의 그룹 상자, 옵션 단추, 확인란을 선택하면 같은 작업을 할 수 있습니다.

(1) "보기-도구 모음" 메뉴에서 "양식"을 클릭합니다. 그러면 아래와 같은 "양식" 도구모음이 나타나는데 이 중에서 "그룹상자"(빨간 동그라미)를 클릭하고 워크시트 내에 적당한 크기로 그려 넣습니다.

이 때 주의하실 점! "양식" 도구모음과 아주 비슷하게 생겨먹은 "컨트롤 도구 상자"라는 것이 있는데 이것을 선택하지 않도록 주의하세요. 아직도 많은 분들이 "컨트롤 도구 상자"에 있는 컨트롤 개체들을 워크시트에 그려 넣고서는 "왜 내 PC에서는 매크로를 컨트롤에 연결할 수 없습니까?" 또는 "컨트롤의 속성을 변경할 수 없습니까?"

하는 종류의 질문을 심심찮게 하십니다.

이 컨트롤 도구모음은 Excel 97버전부터 지원하는 것으로 "양식" 도구모음에 있던 그것보다 월등 지능이 우수한 녀석들입니다. VBA 강좌시간에 유저폼에서 사용하는 개체들이나 이벤트 프로시저를 사용할 때 사용하던 개체는 거의가 다 이 컨트롤 도구모음의 개체들입니다. 생긴 모습은 서로 비슷하지만 완전히 다른 것이지요.

Excel로 수강신청서 만들기 예제 화면 1
아이엑셀러
Excel로 수강신청서 만들기 예제 화면 2
아이엑셀러

(2) 이번에는 "옵션 단추"(파란 동그라미)를 클릭하고 (1)에서 그린 그룹상자 오브젝트 내부에 적당한 크기로 하나 그려넣고 캡션을 "초급"이라고 고칩니다. 캡션을 어떻게 고치느냐고요? 옵션 버튼을 한번 클릭하면 개체 주위에 핸들이 나타나는데 이 때 한번 더 클릭을 하면 캡션을 수정할 수 있습니다.

이런 방법으로 나머지 그룹상자와 옵션 버튼들을 그립니다.

Excel로 수강신청서 만들기 예제 화면 3
아이엑셀러

(3) 이번에는 "확인란" 아이콘을 클릭하고 적당한 위치/크기로 오브젝트를 하나 그립니다. 캡션도 "과거 수강 여부"라고 고쳐 보세요. 캡션을 수정하는 방법은 위 (2)와 같습니다.

(4) 이제 자동으로 수강료를 계산해 주는 코드를 하나 작성합니다. 아니 Excel 강좌 시간에 웬 VBA? 하시는 분이 계시겠지요? 그렇습니다! 분명히 지금은 Excel 강좌 시간이지만 이 정도 코드쯤은 알고 있어야 합니다. VBA를 사용하지 않는 것은 Excel을 반밖에, 아니 3분의 1밖에 사용하지 않는 것이나 마찬가지입니다. VBA와 사이가 안 좋아서(?) 담 쌓고 지내시는 분들이라도 이런 정도는 작성하고 수정하실 수 있어야 합니다.

Sub CalcPrice()
    '//코드는 하나도 어려울 것이 없습니다. 좀 길어서 그렇지 If 함수를 여러 번 중복해서
    '//사용해 주었을 뿐입니다. A라는 버튼이 눌려졌으면 변수에 1이라는 값을, B란 버튼이
    '//선택되었으면 변수에 2라는 값을, 또 다른 어떤 버튼이 선택되었으면 변수에 또 어떤
    '//값을 대입하라… 이러한 것을 컴퓨터가 알아 들을 수 있게끔 번역을 해 놓은 것이
    '//바로 아래와 같은 요상한 문자들이지요. 찬찬히 살펴보시면 다중 If 문과 흡사하다는
    '//것을 느끼실 것입니다.
    Dim curPrice As Currency

    With ActiveSheet
        If .OptionButtons("optExcel1") = xlOn Then
            curPrice = 50000
        ElseIf .OptionButtons("optExcel2") = xlOn Then
            curPrice = 60000
        ElseIf .OptionButtons("optExcel3") = xlOn Then
            curPrice = 70000
        ElseIf .OptionButtons("optExcel4") = xlOn Then
            curPrice = 80000
        End If

        If .OptionButtons("optWord1") = xlOn Then
            curPrice = curPrice + 30000
        ElseIf .OptionButtons("optWord2") = xlOn Then
            curPrice = curPrice + 40000
        ElseIf .OptionButtons("optWord3") = xlOn Then
            curPrice = curPrice + 50000
        End If

        If .OptionButtons("optPPT1") = xlOn Then
            curPrice = curPrice + 10000
        ElseIf .OptionButtons("optPPT2") = xlOn Then
            curPrice = curPrice + 20000
        ElseIf .OptionButtons("optPPT3") = xlOn Then
            curPrice = curPrice + 30000
        End If

        If .OptionButtons("optAccess1") = xlOn Then
            curPrice = curPrice + 50000
        ElseIf .OptionButtons("optAccess2") = xlOn Then
            curPrice = curPrice + 55000
        ElseIf .OptionButtons("optAccess3") = xlOn Then
            curPrice = curPrice + 60000
        End If

        If .OptionButtons("optVisio1") = xlOn Then
            curPrice = curPrice + 35000
        ElseIf .OptionButtons("optVisio2") = xlOn Then
            curPrice = curPrice + 40000
        ElseIf .OptionButtons("optVisio3") = xlOn Then
            curPrice = curPrice + 45000
        End If

        '//어떤 체크박스가 선택되었는지 확인
        If .CheckBoxes("chkPast") = xlOn Then curPrice = curPrice - 10000
        If .CheckBoxes("chkOneTime") = xlOn Then curPrice = curPrice * 0.9
        If .CheckBoxes("chkFirst") = xlOn Then curPrice = curPrice - 10000
        If .CheckBoxes("chkCard") = xlOn Then curPrice = curPrice + 10000
    End With
    Range("Price") = curPrice
End Sub

(5) 마지막으로 옵션 버튼과 체크버튼(확인란 버튼)에 이 코드를 연결해 줍니다. 연결하는 방법은… 옵션 버튼을 마우스 오른쪽 버튼으로 클릭합니다.

Excel로 수강신청서 만들기 예제 화면 4
아이엑셀러
Excel로 수강신청서 만들기 예제 화면 5
아이엑셀러

이런 식으로 각각의 옵션 버튼과 체크 버튼들에 대해 "매크로 지정"을 해 주면 각 오브젝트를 클릭할 때마다, 즉 과목이나 할인 적용 여부 항목에 체크를 해 줄 때마다 자동으로 계산이 되는 것입니다.

VBA와 별로 친하지 않는 분들도 이번 강좌는 꼭 소화해 두시기 바랍니다. ^^

다음 시간에…

2000-11-23

정리 — Excel로 수강신청서 만들기

구분내용
컨트롤양식 도구모음의 그룹상자, 옵션 단추, 확인란을 사용
주의양식 도구모음과 비슷한 컨트롤 도구 상자는 매크로 연결 방식이 달라 선택하지 않도록 주의
이름옵션 단추 optExcel1 등, 확인란 chkPast, chkOneTime, chkFirst, chkCard
코드CalcPrice 프로시저에서 선택된 옵션의 금액을 더하고 할인·추가 항목을 반영한 뒤 Range("Price")에 대입
연결각 옵션 단추와 확인란을 마우스 오른쪽 버튼으로 클릭해 매크로 지정

자주 묻는 질문 (FAQ)

Q1. 양식 도구모음과 컨트롤 도구 상자는 무엇이 다른가요?

생김새는 비슷하지만 전혀 다른 컨트롤입니다. 컨트롤 도구 상자는 Excel 97부터 지원하며 유저폼이나 이벤트 프로시저에서 쓰는 개체들이므로, 워크시트의 개체에 매크로를 연결하려면 양식 도구모음을 사용해야 합니다.

Q2. 수강료는 어떤 원리로 자동 계산되나요?

옵션 단추가 켜져 있는지 If 문으로 확인해 과목별 금액을 변수에 더하고, 확인란의 선택 여부에 따라 할인이나 추가 금액을 반영한 뒤 그 값을 Price 이름의 셀에 넣습니다.

Q3. 코드를 옵션 단추와 확인란에 연결하려면 어떻게 하나요?

각 옵션 단추와 확인란을 마우스 오른쪽 버튼으로 클릭한 뒤 매크로 지정에서 작성한 프로시저를 연결합니다. 그러면 클릭할 때마다 수강료가 자동으로 다시 계산됩니다.

마치며

VBA와 친하지 않으신 분도 이 정도 코드는 작성하고 수정할 수 있도록 이번 내용을 꼭 소화해 두시기 바랍니다. VBA에 대한 기초 지식을 공부하실 분은 아이엑셀러 닷컴 사이트 상단 메뉴에서 [Excel 강의] - [Excel 입문]을 먼저 보시면 이해하기 쉽습니다.