← コード一覧へ戻る
実務ダイアログ

日本語入力モードを指定して入力する(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で指定します。

  1. 入力・開始時

    フォームにtxtName・cmdOK・cmdCancelを配置

  2. 実行する処理

    txtName.IMEModeへfmIMEModeHiraganaを設定

  3. 結果

    対応IMEで日本語を入力し、表示ボタンで入力値を確認

InputBoxの代替です。フォームと標準モジュールの貼り付け先を分け、IME環境で動作を確認します。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    Windows版Excelで練習用.xlsmを用意し、Alt+F11→[挿入]→[ユーザーフォーム]でフォームを追加します。F4のプロパティ画面で(Name)をfrmJapanese7025にします。

  2. 2

    ツールボックスからTextBoxを1つ、CommandButtonを2つ配置し、各(Name)をtxtName・cmdOK・cmdCancelにします。フォームのコード画面へ【UserForm】区切りより下の3つのイベントSubを貼ります。

  3. 3

    [挿入]→[標準モジュール]を選び、【標準モジュール】部分のOption ExplicitとExample7025だけを貼ります。

  4. 4

    Example7025にカーソルを置きF5で開きます。txtNameをクリックして日本語入力を確認し、[表示]で文字を確認、[閉じる]で終了します。

使っている機能の公式ドキュメント(Microsoft Learn)