« EXCELで契約書管理 その4 | トップページ | 【EXCEL図書管理2180】ログイン機能の修正 »

2017年2月12日 (日)

【ExcelVBA】 InputboxでIMEをonにする。

 数字で選択してもらうとか、指定範囲を入力してもらうとか、値を入力してもらう場合、わざわざUserformを作成するまでもない時に、inputboxはなかなか簡便で便利です。 お手軽なだけに、いろいろと制御ができないことがあります。今回のテーマのように、INPUTBOXで、漢字を入力してもらうとか、英字を入力してもらうとかの場合に、IMEを切り替えてから入力するのも面倒です。希望のIME状態にして、inputboxで入力したいものです。
 

 

 
(1)コードで対応。
 ネットですでに紹介されています。
' ----------------------
Sub test_inputbox()
 
Dim Atai As Variant
 
'IMEモードがオフの時は、漢字キーを押す → 漢字入力状態にする。
If IMEStatus = vbIMEModeOff Then
    SendKeys "{kanji}"
End If
 
Atai = InputBox("入力して下さい。漢字入力状態", "test")
 
MsgBox Atai
 
'IMEモードがひらがなの時、漢字キーを押す → 英語モードにする。
If IMEStatus = vbIMEModeHiragana Then
    SendKeys "{kanji}"
End If
 
Atai = Application.InputBox("入力して下さい。:英語モード", "test")
 
MsgBox Atai
 
End Sub
' ----------------------
 IMEStatus= で候補がいろいろ表示されるので、なんとなく分かり易いです。
 
(2)セルの入力規則で、InputboxのIME制御をする。

Imetest

inputbox自体がIMEの制御の機能を持たないのであれば、制御をもつところの影響を受けるというか、何も関知しないのであれば、他で行えばということで、セルの入力規則の日本語の設定をまず行い、それから、INPUTBOXを表示すれば良いのではということでやってみました。
' ----------------------
Sub test_inputbox2()
Dim Atai As Variant
' 事前に、A3、B3セルに、データの入力規則を設定しておく。
' 漢字状態を解除する場合は、無効ではなく、オフ(英字)にすること。
Range("a3").Select ' ひらがなの入力規則~日本語入力~ひらがな
Atai = InputBox("入力して下さい。漢字入力状態", "test2")
MsgBox Atai
 
Range("b3").Select '入力規則~日本語入力~英語モード
Atai = InputBox("入力して下さい。:英語モード", "test2")
If Atai = False Then End
MsgBox Atai
 
Range("c3").Select '入力規則~日本語入力~オン
Atai = InputBox("入力して下さい。:オン", "test2")
If Atai = False Then End
MsgBox Atai
Range("b3").Select '入力規則~日本語入力~英語モード
Atai = InputBox("入力して下さい。:英語モード", "test2")
If Atai = False Then End
MsgBox Atai
 
Range("d3").Select  '入力規則~日本語入力~無効
Atai = InputBox("入力して下さい。:無効", "test2") ' 制御無効で、前の制御のままになる。
If Atai = False Then End
MsgBox Atai
End Sub
' 無効の場合と英語モード、オンとひらがな、微妙に動作が異なるような・・・・
' ----------------------
ちなみに、セルの入力規則の日本語入力の設定するコードは、
 http://excelwork.info/excel/datavalidation05/ を参照。
 

|

« EXCELで契約書管理 その4 | トップページ | 【EXCEL図書管理2180】ログイン機能の修正 »

「ExcelVBA」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/83128/64885634

この記事へのトラックバック一覧です: 【ExcelVBA】 InputboxでIMEをonにする。:

« EXCELで契約書管理 その4 | トップページ | 【EXCEL図書管理2180】ログイン機能の修正 »