Const VK_CAPITAL As Long = &H14
Const KEYEVENTF_KEYUP As Long = &H2
#If VBA7 Then
Private Declare PtrSafe Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
#Else
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
#End If
Private Sub UserForm_Initialize()
Dim isCapsLockOn As Boolean
'Caps Lock 키를 전환
'주의 SendKeys는 간단하지만, 일부 환경에서는 예상대로 작동하지 않을 수 있습니다
'SendKeys "{CAPSLOCK}", True
'Windows API 사용
'Caps Lock 상태 확인
isCapsLockOn = (GetKeyState(VK_CAPITAL) And 1) <> 0
'Caps Lock 상태 전환
If isCapsLockOn Then
'Caps Lock이 켜져 있으면 끔
'keybd_event VK_CAPITAL, 0, 0, 0
'keybd_event VK_CAPITAL, 0, KEYEVENTF_KEYUP, 0
Else
'Caps Lock이 꺼져 있으면 켬
keybd_event VK_CAPITAL, 0, 0, 0
keybd_event VK_CAPITAL, 0, KEYEVENTF_KEYUP, 0
End If
End Sub
'매크로 > 모듈(Module)' 카테고리의 다른 글
| VBA에서 워크북을 열 때 네트워크 프린터 연결 때문에 지연 (0) | 2025.08.22 |
|---|---|
| 입력 모드를 영문(알파벳)으로 설정 (1) | 2025.05.09 |
| 바탕화면 경로 가져오기 (0) | 2024.06.02 |
| 선택시트를 지정 폴더에 시트 결합 PDF 출판 (0) | 2024.06.01 |
| 선택시트를 지정 폴더에 시트 단위로 PDF 출판 (0) | 2024.05.31 |