• 최초 작성일: 2005-03-09
  • 최종 수정일: 2026-09-30
  • 조회수: 8 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 즉석계산기능 흉내내기

들어가기 전에

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

Once long long time ago… 아주 아주 오래 전에 Exceller가 '즉석 계산기능'이라고 이름붙인 기능이 있었는데 기억이 나십니까? 상태표시줄 부분을 오른쪽 마우스 버튼으로 클릭하면 짠~ 하고 나타나는 단축 메뉴 있지 않습니까? 요런거 말입니다.

상태 표시줄을 마우스 오른쪽 버튼으로 클릭했을 때 나타나는 단축 메뉴 - 평균, 개수, 숫자 개수, 최대값, 최소값, 합계
아이엑셀러
권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

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

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


26년 경력 Microsoft MVP 권현욱(엑셀러) 대표 직강 1강 무료

🎁 파워툴스 마스터클래스 · 엑셀 바이브 코딩

AI에게 말로 지시해서 '나만의 엑셀 도구'를 만들고 리본에 장착합니다.

  • 코딩 지식 없이 시작 · 코드는 AI가 작성
  • 엑셀 리본에 내 탭과 버튼을 만들고 XLAM으로 공유
  • 1강 무료 수강 가능
수강 신청하기 강의 소개 보기

즉석계산기능 흉내내기

핵심 요약: 상태 표시줄에 여러 계산 결과 표시하기

기본 상태 표시줄은 선택한 한두 가지 계산 결과만 보여 주지만, SheetSelectionChange 이벤트를 사용하면 개수, 합계, 평균을 동시에 표시할 수 있습니다.

  • 1단계: ThisWorkbook 개체에 Workbook_SheetSelectionChange 이벤트 프로시저를 만듭니다.
  • 2단계: Target(선택 영역)에 Count, Sum, Average 함수를 적용합니다.
  • 3단계: 결과를 문자열로 만들어 Application.StatusBar에 표시합니다.

Step 1: 즉석 계산기능 살펴보기

보시는 것처럼 여섯 가지의 계산 방법 중에서 하나를 선택한 다음, 숫자가 입력된 영역을 선택하면 그 결과가 바로 작업 표시줄에 나타납니다(그래서 즉석 계산기능 이라고 명명해 본 것입니다).

숫자가 입력된 영역을 선택하면 상태 표시줄에 평균 값이 표시된 화면
아이엑셀러

그건 그렇다 치고… 계산 방법을 굳이 한 가지만 선택할 것이 아니라 두 개 혹은 그 이상의 계산 결과가 동시에 나타나도록 하면 더욱 편리하지 않을까요?

눈썰미가 있는 분이라면 이미 눈치 채셨을 법도 합니다만, 숫자가 들어있는 영역을 선택하면 개수, 합계, 평균 이 세 가지 계산 방법이 함께 표시되도록 이 파일은 이미 설정이 되어 있습니다.

숫자가 들어있는 영역을 선택하신 다음, 7시 방향으로 시선을 그윽하게 내려보면 상태 표시줄에 다음과 같이 세 종류의 계산 결과가 나타나 있음을 볼 수 있습니다.

상태 표시줄에 개수, 합계, 평균이 함께 표시된 화면
아이엑셀러

Step 2: 이벤트 프로시저 만들기

이러한 기능은 ThisWorkbook 오브젝트의 SheetSelectionChange 이벤트 핸들러 프로시저를 사용하면 가능합니다.

(1) <Alt> + F11 키를 눌러 VB Editor를 활성화시킵니다.

(2) 화면 왼쪽에 있는 프로젝트 탐색기에서 이 기능을 구현하려는 VBAProject, 즉 파일의 ThisWorkbook 개체를 더블 클릭합니다.

(3) 코드 창(Code Window)이 열리는데, 코드 창 상단에 있는 두 개의 드롭다운 버튼을 이용하여 Workbook과 SheetSelectionChange를 각각 선택하면 다음과 같이 Workbook_SheetSelectionChange 이벤트 프로시저가 생성됩니다.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

End Sub

여기서 파라미터(parameter, 매개변수)로 사용된 두 개의 변수 중 Sh는 해당 워크시트를, Target은 선택된 영역을 의미합니다.

(4) 이 이벤트 프로시저에 다음과 같은 코드를 작성합니다.

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

    Dim dblCount As Double
    Dim dblSum As Double
    Dim dblAverage As Double
    Dim strCalcResult As String
    On Error GoTo ErrorHandler

    ' 상태 표시줄에 표시할 계산 결과값을 각각의 변수에 저장해 둡니다.
    dblCount = Application.WorksheetFunction.Count(Target)
    dblSum = Application.WorksheetFunction.Sum(Target)
    dblAverage = Application.WorksheetFunction.Average(Target)

    If dblCount <> 0 Then
    ' Count 함수의 계산 결과가 0이 아니면 strCalcResult 변수에 Count, Sum, Average 함수의
    ' 사용 결과값을 문자열 형태로 담아둡니다.

        strCalcResult = "개수: " & dblCount & _
            " / 합계: " & dblSum & _
            " / 평균: " & dblAverage

        Application.StatusBar = strCalcResult
        ' 상태 표시줄에 계산 결과값을 뿌려줍니다.

    Else
    ' 계산 결과값이 0이면, 즉 오류가 발생하였으면 상태 표시줄을 초기 상태(default)로
    ' 되돌리고 프로시저를 빠져 나갑니다.

        Application.StatusBar = False
    End If
    Exit Sub

ErrorHandler:
    On Error GoTo 0
    Application.StatusBar = False

End Sub

조금만 응용력을 발휘하면 분산이나 표준편차, Median값 등에 대해서도 추가하실 수 있을 것입니다. 여력이 되는 분은 여러 가지 계산 방법 중에서 사용자가 마음대로 조합을 해서 표시할 수 있도록 인터페이스를 바꾸어 보시면 재미있겠지요?

오늘은 여기까지…

정리 — 즉석 계산 코드 핵심

구분 사용한 코드 역할
이벤트 Workbook_SheetSelectionChange 선택 영역이 바뀔 때마다 실행
선택 영역 Target 선택된 영역
계산 WorksheetFunction.Count / Sum / Average 개수, 합계, 평균 계산
표시 Application.StatusBar = strCalcResult 상태 표시줄에 결과 표시
초기화 Application.StatusBar = False 상태 표시줄을 기본 상태로 복원

자주 묻는 질문 (FAQ)

Q1. Workbook_SheetSelectionChange 이벤트는 언제 발생하나요?

통합 문서의 어느 시트에서든 선택 영역이 바뀔 때마다 발생합니다. 매개변수 Sh는 해당 시트를, Target은 선택된 영역을 의미합니다.

Q2. 상태 표시줄을 원래대로 되돌리려면 어떻게 하나요?

Application.StatusBar = False를 실행하면 상태 표시줄이 기본 상태로 돌아갑니다.

Q3. 분산이나 표준편차, 중앙값도 표시할 수 있나요?

네, WorksheetFunction에 Var, StDev, Median 같은 함수를 추가로 호출해 문자열에 이어 붙이면 됩니다.

마치며

조금만 응용력을 발휘하면 분산, 표준편차, 중앙값 등도 추가할 수 있고, 사용자가 원하는 계산 방법을 직접 고르도록 인터페이스를 바꿔 볼 수도 있습니다.