現在のIMEのモードを取得するには、「IMEStatus」関数を使います。
この関数では、現在のIMEモードに応じた数値が返されます。次の例では、それを「vbIMEModeNoControl」などの組み込み定数と比較する条件分岐で、分かりやすい表記に変換しています。
Dim strMode As String
Select Case IMEStatus
Case vbIMEModeNoControl
strMode = "コントロールなし"
Case vbIMEModeOn
strMode = "オン"
Case vbIMEModeOff
strMode = "オフ"
Case vbIMEModeDisable
strMode = "使用不可"
Case vbIMEModeHiragana
strMode = "ひらがな"
Case vbIMEModeKatakana
strMode = "全角カタカナ"
Case vbIMEModeKatakanaHalf
strMode = "半角カタカナ"
Case vbIMEModeAlphaFull
strMode = "全角英数"
Case vbIMEModeAlpha
strMode = "半角英数"
End Select
MsgBox strMode, vbOKOnly + vbInformation
|
これは特定のコントロールのIME入力モードプロパティを取得するものではありません。例えばコマンドボタンにフォーカスがある状態で実行すると、コマンドボタンではIMEは使えませんので、常に”使用不可”となります。
事前に任意のテキストボックスなどにフォーカスを移動してからこのプログラムを実行することで、そのテキストボックス入力でのIMEモードを取得できます。