| InputBox での漢字変換の設定 |
|
対象バージョン : 97, 2000, 2002, 2003
最終更新日 : 2005/04/25
(オリジナル作成日:1998/11/01)
概 要
InputBox 関数では、入力の際の漢字変換の設定が行えません。
InputBox 関数の前後で、Windows API を用いて IME の操作を行う方法です。
解 説
宣言
Declare Function ImmGetContext Lib "imm32.dll" (ByVal hwnd As Long) As Long
Declare Function ImmSetOpenStatus Lib "imm32.dll" _
(ByVal himc As Long, ByVal b As Long) As Long
Declare Function ImmGetConversionStatus Lib "imm32.dll" _
(ByVal himc As Long, lpdw As Long, lpdw2 As Long) As Long
Declare Function ImmSetConversionStatus Lib "imm32.dll" _
(ByVal himc As Long, ByVal dw1 As Long, ByVal dw2 As Long) As Long
Declare Function ImmReleaseContext Lib "imm32.dll" _
(ByVal hwnd As Long, ByVal himc As Long) As Long
Public Const IME_CMODE_NATIVE = &H1
Public Const IME_CMODE_KATAKANA = &H2
Public Const IME_CMODE_FULLSHAPE = &H8
Public Const IME_CMODE_ROMAN = &H10
Public Const IME_CMODE_ALPHANUMERIC = &H0
プロシージャ
Dim result As Long
Dim reply
Dim lpdw As Long
Dim lpdw2 As Long
Dim himc As Long
himc = ImmGetContext(hWndAccessApp)
result = ImmSetOpenStatus(himc, -1&)
result = ImmGetConversionStatus(himc, lpdw, lpdw2)
lpdw = IME_CMODE_NATIVE + IME_CMODE_FULLSHAPE + IME_CMODE_ROMAN
result = ImmSetConversionStatus(himc, lpdw, lpdw2)
reply = InputBox("値を入力してください")
result = ImmSetOpenStatus(himc, 0&)
result = ImmReleaseContext(hwndAccessApp, himc)
補 足
| 漢字変換(ひらがな表示) | IME_CMODE_NATIVE + IME_CMODE_FULLSHAPE + IME_CMODE_ROMAN |
| 漢字変換(カタカナ表示) | IME_CMODE_NATIVE + IME_CMODE_FULLSHAPE + IME_CMODE_ROMAN + IME_CMODE_KATAKANA |
| 全角英数 | IME_CMODE_FULLSHAPE |
※ローマ字漢字変換・かな漢字変換は、前回の IME
変換操作時の設定が残ります。