Caps Lock 전환
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