日本語入力モードを指定して入力する(InputBoxの代替)
InputBoxでは直接指定できない日本語入力モードを、UserFormのTextBoxで指定します。
実行前に確認
- Windowsの日本語IMEが利用できる環境向けです。IMEの種類・設定によって動作が異なるため実機で確認します。
- InputBoxにはIMEMode引数がありません。この例は入力フォームによる代替です。SendKeysでIMEキーを送る方法はフォーカス依存のため使いません。
- フォームを閉じた後のIME状態は環境に依存します。OS全体のIME設定を固定する処理ではありません。
1サンプルコード
'【標準モジュール】次の部分を貼り付けます。
Option Explicit
Sub Example7025()
frmJapanese7025.Show
End Sub
'【UserForm frmJapanese7025】以下はフォームのコード画面へ貼ります。
'Option Explicitは各モジュールの先頭に1回だけ置きます。
'この区切りより下を標準モジュールには貼らないでください。
Private Sub UserForm_Initialize()
Me.Caption = "日本語入力の練習"
Me.txtName.IMEMode = fmIMEModeHiragana
Me.cmdOK.Caption = "表示"
Me.cmdCancel.Caption = "閉じる"
End Sub
Private Sub cmdOK_Click()
MsgBox CStr(Me.txtName.Value)
End Sub
Private Sub cmdCancel_Click()
Unload Me
End Sub図で見る日本語入力モードを指定して入力する(InputBoxの代替)の流れ
イメージ図InputBoxでは直接指定できない日本語入力モードを、UserFormのTextBoxで指定します。
入力・開始時
フォームにtxtName・cmdOK・cmdCancelを配置
実行する処理
txtName.IMEModeへfmIMEModeHiraganaを設定
結果
対応IMEで日本語を入力し、表示ボタンで入力値を確認
InputBoxの代替です。フォームと標準モジュールの貼り付け先を分け、IME環境で動作を確認します。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
Windows版Excelで練習用.xlsmを用意し、Alt+F11→[挿入]→[ユーザーフォーム]でフォームを追加します。F4のプロパティ画面で(Name)をfrmJapanese7025にします。
- 2
ツールボックスからTextBoxを1つ、CommandButtonを2つ配置し、各(Name)をtxtName・cmdOK・cmdCancelにします。フォームのコード画面へ【UserForm】区切りより下の3つのイベントSubを貼ります。
- 3
[挿入]→[標準モジュール]を選び、【標準モジュール】部分のOption ExplicitとExample7025だけを貼ります。
- 4
Example7025にカーソルを置きF5で開きます。txtNameをクリックして日本語入力を確認し、[表示]で文字を確認、[閉じる]で終了します。