Access小僧:CapsLock, NumLock, IMEモードを設定(2) [コンピューター]
Accessのフォームのテキストボックスがフォーカス取得したら、
・CapsLock:OFF
・NumLock:ON
・IMEモード:半角英数、または、全角ひらがな
に設定するVBAで、別のリストボックスで何が選択されているかで、テキストボックスのIMEモードを切り替えられるようにしてみました。
【前回の記事】
Access小僧:CapsLock, NumLock, IMEモードを設定
変更したのは、フォームのクラスオブジェクトだけです。
【フォームのクラスオブジェクト】
Private Sub 検索_GotFocus()
'【機能】フォーカス取得後、IMEModeを設定、NumLockをON、CapsLockをOFF
'【変数】
Dim Name1 As String ' 名前
Dim Obj1 As Object ' オブジェクト
Dim myLI1 As Integer ' ListIndexの値
Dim myImeMode1 As Integer 'IME modeの値
'【実行コード】
myLI1 = [FieldName1].ListIndex
Debug.Print "[FieldName1].ListIndex=" & myLI1 & "[検索_GotFocus]"
Select Case myLI1
Case 0: Debug.Print "myLI=0(PW_Mng_ID) [検索_GotFocus]"
Case 1: Debug.Print "myLI=1(題名) [検索_GotFocus]"
Case 2: Debug.Print "myLI=2(パスワードNew) [検索_GotFocus]"
Case 3: Debug.Print "myLI=3(パスワードOld) [検索_GotFocus]"
Case 4: Debug.Print "myLI=4(パスワードNew更新日) [検索_GotFocus]"
Case 5: Debug.Print "myLI=5(X日以上経過) [検索_GotFocus]"
Case 6: Debug.Print "myLI=6(頭文字) [検索_GotFocus]"
End Select
Select Case myLI1
Case 0, 2, 3, 4, 5, 6
myImeMode1 = acImeModeAlpha ' 8
Case 1
myImeMode1 = acImeModeHiragana ' 4
Case Else
myImeMode1 = acImeModeAlpha ' 8
End Select
Name1 = Me.ActiveControl.Name ' アクティブなコントロールの名前
Debug.Print "Name1=" & Name1 & " [検索_GotFocus]"
Set Obj1 = Me.検索 ' このコントロールのオブジェクト
Debug.Print "Obj1.Name=" & Obj1.Name & " [検索_GotFocus]"
Call mySChkKey1(Name1, Obj1, myImeMode1) ' IMEMode(全角ひらがな)を設定、NumLockをON、CapsLockをOFF
Set Obj1 = Nothing ' オブジェクト変数を解放
End Sub
注1;テキストボックスの名前は「検索」です。
注2:リストボックスの名前は「FieldName1」です。
注3:IMEモードを全角ひらがなにする場合は、mySChkKey1の第3引数をacImeModeHiraganaにする。
・CapsLock:OFF
・NumLock:ON
・IMEモード:半角英数、または、全角ひらがな
に設定するVBAで、別のリストボックスで何が選択されているかで、テキストボックスのIMEモードを切り替えられるようにしてみました。
【前回の記事】
Access小僧:CapsLock, NumLock, IMEモードを設定
変更したのは、フォームのクラスオブジェクトだけです。
【フォームのクラスオブジェクト】
Private Sub 検索_GotFocus()
'【機能】フォーカス取得後、IMEModeを設定、NumLockをON、CapsLockをOFF
'【変数】
Dim Name1 As String ' 名前
Dim Obj1 As Object ' オブジェクト
Dim myLI1 As Integer ' ListIndexの値
Dim myImeMode1 As Integer 'IME modeの値
'【実行コード】
myLI1 = [FieldName1].ListIndex
Debug.Print "[FieldName1].ListIndex=" & myLI1 & "[検索_GotFocus]"
Select Case myLI1
Case 0: Debug.Print "myLI=0(PW_Mng_ID) [検索_GotFocus]"
Case 1: Debug.Print "myLI=1(題名) [検索_GotFocus]"
Case 2: Debug.Print "myLI=2(パスワードNew) [検索_GotFocus]"
Case 3: Debug.Print "myLI=3(パスワードOld) [検索_GotFocus]"
Case 4: Debug.Print "myLI=4(パスワードNew更新日) [検索_GotFocus]"
Case 5: Debug.Print "myLI=5(X日以上経過) [検索_GotFocus]"
Case 6: Debug.Print "myLI=6(頭文字) [検索_GotFocus]"
End Select
Select Case myLI1
Case 0, 2, 3, 4, 5, 6
myImeMode1 = acImeModeAlpha ' 8
Case 1
myImeMode1 = acImeModeHiragana ' 4
Case Else
myImeMode1 = acImeModeAlpha ' 8
End Select
Name1 = Me.ActiveControl.Name ' アクティブなコントロールの名前
Debug.Print "Name1=" & Name1 & " [検索_GotFocus]"
Set Obj1 = Me.検索 ' このコントロールのオブジェクト
Debug.Print "Obj1.Name=" & Obj1.Name & " [検索_GotFocus]"
Call mySChkKey1(Name1, Obj1, myImeMode1) ' IMEMode(全角ひらがな)を設定、NumLockをON、CapsLockをOFF
Set Obj1 = Nothing ' オブジェクト変数を解放
End Sub
注1;テキストボックスの名前は「検索」です。
注2:リストボックスの名前は「FieldName1」です。
注3:IMEモードを全角ひらがなにする場合は、mySChkKey1の第3引数をacImeModeHiraganaにする。
ヤバイぜ!、ありがとうございます。
(^^)/
by cheese999 (2023-10-14 22:02)