나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 코알라 (sis0351)

추천:  2
파일:     조회:  2620
제목:   [RE]키보드 스캔코드
     
  '==========================================================================
' 아래 코드는 엑사모의 황기성(님)의 코드입니다.
' 64비트를 사용하셔서 Error가 발생 되면
' 아래 링크 참조해서 적용해 보세요.
https://msdn.microsoft.com/ko-kr/library/office/ee691831
' 수고 하세요...!
'==========================================================================



Option Explicit
' 특정 키의 현재 상탤를 되돌리는 API 함수
' 키가 눌렸는지, 떼어져 있는지, 토글 상태인지를 검사한다
Public Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
'ScrollLock 키 상수는 VBA에서 제공하지 않으므로 사용자 정의
Private Const vbKeyScrollLock = 145


Sub dhMain()

Dim strQ As String

'해당 키가 눌려 있는지 확인하기 위해 키코드 상수를 이용한다

'Print
      strQ = "Shift 키 : " & dhGetKeyState(vbKeyShift)
      strQ = strQ & vbCr & "Esc 키 : " & dhGetKeyState(vbKeyEscape)
      strQ = strQ & vbCr & "Ctrl 키 : " & dhGetKeyState(vbKeyControl)
      strQ = strQ & vbCr & "Alt 키 : " & dhGetKeyState(vbKeyMenu)
      strQ = strQ & vbCr & "ScrollLock 키 : " & dhGetKeyState(vbKeyScrollLock)
      strQ = strQ & vbCr & "CapsLock 키 : " & dhGetKeyState(vbKeyCapital)
      strQ = strQ & vbCr & "Num Lock키 : " & dhGetKeyState(vbKeyNumlock)
'  strQ = strQ & vbCr & "F1 : " & dhGetKeyState(vbKeyF1)

 MsgBox strQ, vbInformation
 
End Sub

Function dhGetKeyState(ByVal lngKey As Long) As Boolean

Dim lngRtn As Long
    lngRtn = GetKeyState(lngKey)
 
 '해당 키가 눌려 있는 상태인지 여부를 확인
 Select Case lngKey
       '토글키의 경우 첫번째 비트값을 찾는다
        Case vbKeyCapital, vbKeyNumlock, vbKeyScrollLock
             dhGetKeyState = CBool(GetKeyState(lngKey) And 1)
        Case Else
             dhGetKeyState = CBool(GetKeyState(lngKey) And &H8000)
            'CBool(GetKeyState(lngKey) <0)
 End Select
End Function
 
[불량 게시물 신고]  
        
  

작성일 : 2017-04-29(13:01)
최종수정일 : 2017-04-29(13:02)
 


 ◎ 관련글

  제 목   작성자   날짜
키보드 스캔코드 조삿갓 2017-04-24
[RE]키보드 스캔코드 코알라 2017-04-29