한영 전환, 입력 모드 반환 사용자 정의 함수
Chat-GPT o4-mini-high 버전을 이용해 생성한 코드다. 한글/영문 입력 모드를 반환하거나, 영문 모드, 한글 모드, 영문은 한글로, 한글은 영문으로 토글하는 코...
cafe.naver.com
Option Explicit
#If VBA7 Then
Private Declare PtrSafe Function GetForegroundWindow Lib "user32" () As LongPtr
Private Declare PtrSafe Function ImmGetContext Lib "imm32.dll" (ByVal hWnd As LongPtr) As LongPtr
Private Declare PtrSafe Function ImmReleaseContext Lib "imm32.dll" (ByVal hWnd As LongPtr, ByVal hIMC As LongPtr) As Long
Private Declare PtrSafe Function ImmGetConversionStatus Lib "imm32.dll" (ByVal hIMC As LongPtr, ByRef lpfdwConversion As Long, ByRef lpfdwSentence As Long) As Long
Private Declare PtrSafe Function ImmSetConversionStatus Lib "imm32.dll" (ByVal hIMC As LongPtr, ByVal fdwConversion As Long, ByVal fdwSentence As Long) As Long
#Else
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function ImmGetContext Lib "imm32.dll" (ByVal hWnd As Long) As Long
Private Declare Function ImmReleaseContext Lib "imm32.dll" (ByVal hWnd As Long, ByVal hIMC As Long) As Long
Private Declare Function ImmGetConversionStatus Lib "imm32.dll" (ByVal hIMC As Long, ByRef lpfdwConversion As Long, ByRef lpfdwSentence As Long) As Long
Private Declare Function ImmSetConversionStatus Lib "imm32.dll" (ByVal hIMC As Long, ByVal fdwConversion As Long, ByVal fdwSentence As Long) As Long
#End If
Private Sub UserForm_Initialize()
'입력 모드를 영문(알파벳)으로 설정
SetInputMode 0
End Sub
Private Sub SetInputMode(ByVal mode As Long)
#If VBA7 Then
Dim hWnd As LongPtr
Dim hIMC As LongPtr
#Else
Dim hWnd As Long
Dim hIMC As Long
#End If
Dim convMode As Long
Dim sentenceMode As Long
hWnd = GetForegroundWindow()
hIMC = ImmGetContext(hWnd)
If hIMC <> 0 Then
ImmGetConversionStatus hIMC, convMode, sentenceMode
ImmSetConversionStatus hIMC, mode, sentenceMode
ImmReleaseContext hWnd, hIMC
End If
End Sub
'매크로 > 모듈(Module)' 카테고리의 다른 글
| VBA에서 워크북을 열 때 네트워크 프린터 연결 때문에 지연 (0) | 2025.08.22 |
|---|---|
| Caps Lock 전환 (0) | 2025.05.09 |
| 바탕화면 경로 가져오기 (0) | 2024.06.02 |
| 선택시트를 지정 폴더에 시트 결합 PDF 출판 (0) | 2024.06.01 |
| 선택시트를 지정 폴더에 시트 단위로 PDF 출판 (0) | 2024.05.31 |