ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

No.006

アイコン InputBox のテキスト ボックス入力時に日本語入力をオンにする 《SendKeys》

Excel2003/2007/2010/2013

InputBoxを起動するとき、特に何も処置しなければ、テキスト ボックスはそのときの日本語入力モードになります。
そこをいつでも日本語オンですぐに書けるようにする方法です。

InputBox起動前に、日本語入力をオンにすべく、1行次の記述を追加してみます。

  SendKeys "{kanji}"

SendKeysステートメントは、アクティブなアプリケーションにキーコードを送信する、つまり、キーを押したときの動作を実行させることができるものです。
上記の1行は、「半角/全角」キーを押すというキー操作です。

しかし、日本語オンであったときに上記1行が実行されると、日本語オフとなってしまいますよね。
そこで、現在の日本語入力状態を確認してからSendKeysを送ることにします。

次のサンプルを参考にしてください。

  Dim strInput As String
  If IMEStatus = vbIMEModeOff Then SendKeys "{kanji}"
  strInput = InputBox("お名前を入力してください。")
  Msgbox strInput

使用したIMEStatus関数は、現在のIMEの状態を返します。
引数はありません。詳細は調べてみてください。

さて、SendKeysステートメントは大変重宝しますので、覚えておくといいですよ。
下の<ヘルプmemo>で詳細をご確認ください。

ヘルプmemo

<SendKeysステートメント>

キーストロークまたはキーストロークの組み合わせを、キーボードから入力したときと同様にアクティブ ウィンドウに渡します。
 構文: SendKeys string[, wait]
 引数:
  string... 送信するキーストロークを表す文字列式を指定
  wait... 待機モードを指定するブール型の値[省略可]
      False(既定値)... キーが送信された直後にプロシージャに制御が戻される
      True... キーストロークが処理されてからプロシージャに制御が戻される
 ヒント:
  SendKeysステートメントにおける、キーボードの各キーの指定は、次のとおりです。
      BackSpace... {BACKSPACE}、{BS}、または {BKSP}
      Ctrl + Break... {BREAK}
      CapsLock... {CAPSLOCK}
      Del または Delete... {DELETE} または {DEL}
      ↓... {DOWN}
      End... {END}
      Enter... {ENTER} または {~}
      Esc... {ESC}
      Help... {HELP}
      Home... {HOME}
      Ins または Insert... {INSERT} または {INS}
      ←... {LEFT}
      NumLock... {NUMLOCK}
      PageDown... {PGDN}
      PageUp... {PGUP}
      PrintScreen... {PRTSC}
      →... {RIGHT}
      ScrollLock... {SCROLLLOCK}
      Tab... {TAB}
      ↑... {UP}
      F1... {F1}
      F2... {F2}
      F3... {F3}
      F4... {F4}
      F5... {F5}
      F6... {F6}
      F7... {F7}
      F8... {F8}
      F9... {F9}
      F10... {F10}
      F11... {F11}
      F12... {F12}
      F13... {F13}
      F14... {F14}
      F15... {F15}
      F16... {F16}
   Shift キー、Ctrl キー、または Alt キーと他のキーとの組み合わせを指定するには
   通常のキー コードの前に次のコードを単独、または組み合わせて記述します。
      Shift... +
      Ctrl... ^
      Alt... %
   Shiftキー、Ctrlキー、Altキーを押しながら他のキーを押す操作を指定するには
   キーのコードをかっこで囲みます。
   たとえば、Shiftキーを押しながら E と C を押す操作を指定するには
      "+(EC)"
   Shiftキーを押しながら Eを押し、Shiftキーを離して C を押す操作を指定するには
      "+EC"
   同じキー ストロークの繰り返しを指定するには、次の形式を使います。
      {key number}
   key と number の間には必ず半角のスペースが必要です。たとえば、
      {LEFT 10}
   の場合 ← キーを10回押すことを意味します。

関連ヘルプ

ブック内のすべてのワークシートで同じ処理を行う 《For Each~Next》
ブックを開くとき、閉じるときにマクロを自動実行したい 《イベント プロシージャ》
データを快速で検索するには 《Find》
アプリケーションを起動し動作させる 《Shell・SendKeys・Wait》
エラーの種類、そしてエラー処理の設置方法について 《On Error GoTo》
Excelのデータをテキスト ファイルに書き出す(出力する) 《Open・Print・Close》
ExcelからOutlookでメールを作成・送信する基本のVBA 《CreateObject関数》
Excelのメールアドレス データを使用し、Outlookのメールを自動送信する 《CreateObject関数》
ソートしたグループごとのデータを別ブックに分割するサンプルVBA
右クリック、印刷、上書き保存などブックに規制をかける 《イベント プロシージャ Cancel=True》
ページのトップへ戻る