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

No.006

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

2003/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回押すことを意味します。

twitter hatena line pocket

関連ヘルプ

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