• 최초 작성일: 2002-02-26
  • 최종 수정일: 2026-09-30
  • 조회수: 13 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: OnKey 메서드에 대하여

들어가기 전에

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

현재 Exceller의 강좌는 아래의 두 곳을 통해 제공되고 있습니다. http://www.iExceller.com 과 http://my.netian.com/~exceller

앞으로는 http://www.iExceller.com 사이트를 통해서만 강좌 파일을 올려야 할 것 같습니다. 네띠앙 측에서 서비스 기준을 변경하여 일정 용량을 초과하는 홈페이지에 대해서는 유료로 전환한다는 통보를 해 왔습니다.

따라서 미러 사이트와 통합이 필요한 시점이라 생각되어 두 사이트를 합치게 되었으므로 네띠앙 서버를 통해 접속을 해오시던 분들은 이용에 착오 없으시기를 바랍니다. 홈 정문 우측에 있는 '시작페이지로' 또는 '즐겨찾기에 추가' 아이콘을 클릭하시면 자동으로 여러분의 북마크가 Update 됩니다.

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

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

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


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

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

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

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

OnKey 메서드에 대하여

핵심 요약: OnKey로 단축키 만들기

Application.OnKey 메서드에 키 코드와 실행할 프로시저명을 지정하면 나만의 단축키를 만들 수 있고, 프로시저명을 생략하면 원래 상태로 복원됩니다.

  • 1단계: OnKey "{PgDn}", "PageDown"처럼 키와 프로시저를 연결합니다.
  • 2단계: Shift(+), Ctrl(^), Alt(%) 기호로 조합 키를 지정할 수 있습니다.
  • 3단계: OnKey "{PgDn}"처럼 두 번째 인수를 생략하여 원래대로 되돌립니다.

Step 1: 엑셀은 Big Brother?

엑셀은 George Orwell의 [1984년]에 나오는 Big Brother 입니다. 무슨 얘기냐고요? 당연히 궁금하실 것입니다. ^^

너무도 당연한 얘기지만, 엑셀은 사용자가 어떤 작업을 하고 있는지 항상 감시(?)합니다. 어떤 메뉴를 눌렀는 지, 어떤 오브젝트를 삽입하였는 지는 물론 어떤 데이터를 셀에 입력하고 있는 지 항상 모니터링 합니다.

이러한 특성을 응용하면 특정 키나 키 조합을 눌렀을 경우 특정 프로시저가 실행되도록 할 수 있습니다. 이 경우 사용되는 것이 Application 오브젝트의 OnKey 메서드 입니다.

Step 2: OnKey 메서드로 단축키 바꾸기

아래의 버튼을 클릭하신 다음, PageUp 키와 PageDown 키를 번갈아가며 눌러 보세요.

어떤 일이 생깁니까? PageUp 키나 PageDown 키를 누를 때마다 페이지 단위로 화면이 이동하는 것이 아니라 다섯 간씩 셀 포인터가 이동하지요?

이처럼 OnKey 메서드를 이용하면 자신만의 단축키를 만들거나 기존에 설정되어 있는 단축키를 무력화 시킬 수도 있는 것입니다. 코드를 볼까요?

Sub SetupOnKey()
    Application.OnKey "{PgDn}", "PageDown"
    Application.OnKey "{PgUp}", "PageUp"
    '''PgUp은 입력되는 키(또는 키 조합)를 의미하고 PageUp은 해당 키 또는 키 조합을 눌렀을 때
    '''실행할 프로시저 명을 의미합니다. 키를 지정할 때 사용할 수 있는 키 및 코드는 아래와 같습니다.
    '''Ctrl, Shift, Alt 등과 같은 특수 키와 조합하여 사용할 수도 있습니다.
End Sub

PgUp은 입력되는 키(또는 키 조합)를 의미하고 PageUp은 해당 키 또는 키 조합을 눌렀을 때 실행할 프로시저명을 의미합니다. 키를 지정할 때 사용할 수 있는 키 및 코드는 아래와 같습니다.

키코드
백스페이스{BS}
아래쪽 화살표{DOWN}
오른쪽 화살표{RIGHT}
왼쪽 화살표{LEFT}
위쪽 화살표{UP}
Break{BREAK}
Caps Lock{CAPSLOCK}
Clear{CLEAR}
Delete{DEL}
End{END}
Enter~
Enter(숫자 키패드){ENTER}
Esc{ESC}
F1~F15{F1}~{F15}
Help{HELP}
Home{HOME}
Insert{INSERT}
Num Lock{NUMLOCK}
Page Down{PGDN}
Page Up{PGUP}
Return{RETURN}
Scroll Lock{SCROLLLOCK}
Tab{TAB}

Ctrl, Shift, Alt 등과 같은 특수 키와 조합하여 사용할 수도 있습니다.

키코드
Shift+
Ctrl^
Alt%

예제에서 PageDown, PageUp 프로시저는 각각 셀 포인터를 다섯 칸 아래, 다섯 칸 위로 이동시키는 프로시저입니다.

Sub PageDown()
    On Error Resume Next
    ActiveCell.Offset(5, 0).Select
End Sub

Sub PageUp()
    On Error Resume Next
    ActiveCell.Offset(-5, 0).Select
End Sub

Step 3: 원상복귀시키기

이제 다시 원상복귀를 시켜 보도록 하지요. 아래의 버튼을 누르신 다음 PageUp 키나 PageDown 키를 눌러 보세요.

Sub CancelOnkey()
    Application.OnKey "{PgDn}"
    Application.OnKey "{PgUp}"
    '''즉 OnKey 메서드의 첫번째 인수(즉 키 또는 키 조합)만 전달하고 두번째 인수값은 생략하면
    '''원래 상태로 돌아가는 것입니다.

End Sub

즉 OnKey 메서드의 첫번째 인수(즉 키 또는 키 조합)만 전달하고 두번째 인수값은 생략하면 원래 상태로 돌아가는 것입니다.

자신이 자주 사용하는 단축키를 프로시저에 연결해 두고 사용하면 편리하겠지요? 많이 응용해 보시기 바랍니다.

오늘은 여기까지…

정리 — OnKey 메서드 핵심

구분 사용한 코드 역할
단축키 설정 Application.OnKey "{PgDn}", "PageDown" 키에 프로시저 연결
조합 키 + (Shift), ^ (Ctrl), % (Alt) 특수 키와 조합
Enter 키 ~ 또는 {ENTER} 큰 Enter 키와 숫자 키패드 구분
원상복귀 Application.OnKey "{PgDn}" 두 번째 인수 생략
용도 나만의 단축키 / 기존 단축키 무력화 업무 편의성 향상

자주 묻는 질문 (FAQ)

Q1. OnKey 메서드는 무엇을 하나요?

특정 키나 키 조합을 눌렀을 때 지정한 프로시저가 실행되도록 연결해 주는 Application 오브젝트의 메서드입니다.

Q2. Ctrl이나 Shift와 조합하려면 어떻게 하나요?

Shift는 +, Ctrl은 ^, Alt는 % 기호를 키 코드 앞에 붙입니다.

Q3. 바꾼 단축키를 원래대로 되돌리려면?

OnKey 메서드의 첫 번째 인수(키)만 전달하고 두 번째 인수를 생략하면 원래 동작으로 돌아갑니다.

마치며

자신이 자주 사용하는 단축키를 프로시저에 연결해 두면 작업이 훨씬 편리해집니다.