(VBA) Access 실행 단축키를 무효화 하는 방법

MS-Access

단축키(바로가기 키) 란?

단축키(바로가기 키)에 대한 아무런 제한을 두지 않는 Access 폼 화면(Access프로그램)을 만들었다면 다음 예처럼 Access가 기본으로 제공하는 단축키(바로가기 키)를 누름으로서 특정 기능을 실행 할 수 있습니다.

  • Ctrl + P 데이터 시트,폼 , 보고서의 인쇄 다이얼 로그 박스 열기
  • Ctrl + O 기존 데이터베이스 열기
  • Ctrl + F12 기존 데이터베이스 열기
  • F11 키 탐색 창 표시 또는 숨기기
  • 기타 등등 …

Access가 제공하는 기본 단축키(바로 가기 키) 일람은 다음의 공식 사이트를 참조 하세요.

Access의 바로 가기 키 - Microsoft 지원
레코드 탐색, 데이터 선택 및 창 작업에 대한 바로 가기를 포함하여 Windows에서 데스크톱 데이터베이스에 액세스하기 위한 바로 가기 키에 대해 알아봅니다.

Access의 기본 단축키(바로가기 키)가 문제가 되는 경우

다음 화면처럼 인쇄할 정보가 없는 폼 화면을 만들어도 Access 기본 단축키(바로가기 키) Ctrl + P 를 누르면 인쇄 대화 상자가 열립니다. 이 동작은 필요 없는 기능일 수 있으며 심플한 프로그램을 만들기 위해서는 필요 없는 단축키(바로가기 키)는 무효화하는 것이 좋습니다.

단축키(바로 가기 키) 무효화 코딩

다음 화면과 같이 작성하고자 하는 폼 화면의 On Key Down 이벤트에서 키를 무효화하는 프로그램을 작성합니다.

위 화면 (1) : 단축키(바로가기 키)를 무효화하고자 하는 폼을 선택합니다. 오른쪽 마우스 버튼 클릭으로 서브 메뉴를 표시합니다.

위 화면 (2) : [개체 보기] 서브 메뉴를 선택해 폼 화면을 표시합니다.

위 화면 (3) : 툴 바에서 [디자인 모드] 아이콘을 클릭하여 폼의 속성 시트를 표시합니다.

위 화면 (4) : […] 아이콘을 눌러 [코드 작성기]를 선택해 On Key Down의 [이벤트 프로시저]를 작성합니다.

위 화면 (5) : 다음 이벤트 프로시저가 자동으로 만들어지면 내부에 단축키 무효화 코딩을 합니다.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
End Sub

다음은 Ctrl + P 단축키의 무효화 코드입니다.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
   Dim intShiftDown As Integer
   Dim intAltDown As Integer
   Dim intCtrlDown As Integer
   intShiftDown = (Shift And acShiftMask) > 0
   intAltDown = (Shift And acAltMask) > 0
   intCtrlDown = (Shift And acCtrlMask) > 0
   Select Case KeyCode
     Case vbKeyP
         If intCtrlDown Then KeyCode = 0
   End Select
 End Sub

그리고 최종적으로 폼의 Key Preview를 [예]로 변경해야 합니다. 변경하지 않으면 위의 무효화 코드가 실행 되지 않습니다.

[주의사항] 복수의 폼 화면이 존재한다면 위의 작업을 모든 폼에서 똑같이 실행해야 합니다. 이 글에서는 [Form_탐색화면] 폼에만 적용했습니다.

결과 확인

위 글을 위해 Sample.accdb파일을 만들었습니다. 이 파일은 아래 화면의 (1)[Form_탐색화면], (2)[Form_첫화면], (4)[Form_두번째화면]의 3개의 폼으로 구성 되어 있습니다.

(1)[Form_탐색화면]은 (2)[Form_첫화면], (4)[Form_두번째화면]을 포함하고 있으며 초기 화면 표시에는 (2)[Form_첫화면]을 오른쪽 영역에 표시합니다.

(3)을 누르면 (4)[Form_두번째화면]을 오른쪽 영역에 표시합니다.

초기 화면 표시 때는 (1)[Form_탐색화면]에 제어가 있기 때문에 On Key Down 이벤트의 Form_KeyDown의 프로시저의 Ctrl + P 무효화 코드가 실행되어 인쇄 대화 상자가 열리지 않습니다.

그 외의 (2)[Form_첫화면],(4)[Form_두번째화면]에는 On Key Down 이벤트의 Form_KeyDown의 프로시저를 작성하지 않았기 때문에 다음의 동작에는 인쇄 대화 상자가 열립니다.

  • (2)[Form_첫화면]의 영역에 마우스를 클릭하여 Ctrl + P를 누름
  • (3) [두번째화면] 메뉴를 선택하여 Ctrl + P를 누름
  • (4)[Form_두번째화면]의 영역에 마우스를 클릭하여 Ctrl + P를 누름

(2)[Form_첫화면], (4)[Form_두번째화면]에도 (1)[Form_탐색화면]처럼 On Key Down 이벤트의 Form_KeyDown의 프로시저의 Ctrl + P 무효화 코드를 넣어주어 인쇄 대화 상자가 열리지 않게 할 수 있습니다.

샘플 파일

이 글에서 사용한 Sample.accdb 파일을 다운로드해서 실행 할 수 있습니다.

실행 환경은 다음과 같습니다.

프로세서 Intel(R) Core(TM) i7-7660U CPU @ 2.50GHz 2.50 GHz
설치된 RAM 4.00GB
시스템 종류 64비트 운영 체제, x64 기반 프로세서
에디션 Windows 10 Pro 버전 20H2
설치 날짜 ‎2021-‎02-‎04
OS 빌드 19042.789
경험 Windows Feature Experience Pack 120.2212.551.0

제목과 URL을 복사했습니다