• ベストアンサー

excelのInputBoxで日本語入力OFFにしたい

タイトルの通りです excelのInputBoxで日本語入力OFFにしたいのですが、 VBAでIME(MS-IME)を制御できるのでしょうか。 セルへの入力であれば、入力規則で出来るので、 イメージとしては、そんな感じです。

noname#16474
noname#16474

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 詳しい状況が分らないので、あまり正確にVBAのコードを書くことが出来ません。IMEをどこで使うかによっても変ってきます。なお、入力規則とはかなり違います。 まあ、一般的な方法を二つ書いておきます。 '-------------------------------------------- Sub IMEControl1() Dim Ret As String  If IMEStatus <> vbIMEModeOff Then    SendKeys "%{kanji}"  End If  Ret = Application.InputBox("入力してください。", Type:=2)  If Ret <> "" Then     MsgBox "IME-OFF with SendKey :" & Ret  End If End Sub '次は、Win32 API関数を使った方法です。 '-------------------------------------------- Private Declare Function ImmGetContext Lib "imm32.dll" (ByVal hWnd As Long) As Long Private Declare Function ImmReleaseContext Lib "imm32.dll" (ByVal hWnd As Long, ByVal hImc As Long) As Long Private Declare Function ImmSetOpenStatus Lib "imm32.dll" (ByVal hImc As Long, ByVal b As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As Long) As Long '-------------------------------------------- Sub IMEControl2()  Dim hImc As Long  Dim myHWnd As Long  Dim Ret As String   'バージョンチェック   If Application.Version > 9 Then   myHWnd = Application.hWnd   Else   myHWnd = FindWindow("XLMAIN", 0)   End If   hImc = ImmGetContext(myHWnd)   'IMEをOFF   If hImc <> 0 Then   Call ImmSetOpenStatus(hImc, 0)   Call ImmReleaseContext(myHWnd, hImc)   End If   Ret = Application.InputBox("入力してください。", Type:=2)   If Ret <> "" Then     MsgBox "IME-OFF with API :" & Ret   End If End Sub

noname#16474
質問者

お礼

コードまでありがとうございました SendKeys で対応することにしました

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

>日本語入力OFF (1)入力モードの初期値を英数にするということですか (2)結果入力値が全角ではない内容にしたいということですか。 (2)だと回答は大幅に変わるでしょう。 >セルへの入力であれば、入力規則で出来るので これも(1)のはず。 マクロの記録ではValidationの .IMEMode = xlIMEModeAlphaと出てきます。 TextBoxなどコントロールにはプロパティにIMEModeがあります。 InputBox関数自体にIMEを制御する機能はありません。 その対策として http://www.officetanaka.net/excel/vba/tips/tips16.htm に逆のケース(ONにするケース)が載ってます。 APIを使う例も。 (ただし私のケースでは、SendKeys ("{kanji}")はOnにならずOffになった。) 対策以下は自信なし。

noname#16474
質問者

お礼

>(1)入力モードの初期値を英数にするということですか こちらです。 SendKeys で対応することにしました。 参考URLありがとうございました。 >InputBox関数自体にIMEを制御する機能はありません と書いてあり、今回の質問の回答になりました。

関連するQ&A

  • InputBoxでの日本語オン、オフ設定方法

    InputBoxでの日本語オン、オフ自動設定方法が 知りたいです。 具体的には、 エクセルでいうところの、 データ(D)→入力規則(L)→「データの入力規則」ダイアログ内の 日本語タブで日本語入力オン、の設定を、 VB6.0 CCEのプロパティで設定したいです。 例)・InputBoxを2回連続で入力するとき 最初のInputBoxで、自動的に日本語入力オン (Enterキーで入力終了後) 次のInputBoxで、自動的に日本語入力オフ 開発環境:VB6.0 CCE です。 詳しい方、宜しくお願い致します。

  • inputboxの日本語入力切替について

    VBAのinputbox関数についての質問です inputboxを使ってデータの入力をしたいのですが、日本語入力のONとOFFを自動的に切り替えられる記述はありませんでしょうか。 現在の記述は sub 入力() Dim simei As String simei = InputBox("氏名を入力してください") range("b5").Value = Simei End su のような感じです。inputboxを表示するまえに、言語バーの日本語入力がONの状態になるようにしたいのですが…。よろしくお願いします。

  • EXCELで日本語入力ができなくなった

    ウィンドウズMeにEXCEL2002、IME2000です。 EXCELでのみ、日本語が入力できなくなりました。メモ帳などでは問題はなく、WORDでも普通に入力できます。 EXCELのセル入力時にもIMEツールバーはアクティブで、モードはひらがななのですが、半角英数でしか入力できないです。 EXCELのオプション関連を疑い、入力規則やオートコレクトなどのオプションを変えて見ましたが変化なしです。 IME関連でも設定や入力モードをいろいろ変えたり戻したりしましたがこれも変化ナシです。他のアプリケーションでは問題がないのですからこれは関係ないのかもしれません。 PCを再起動しても、いつもその状態です。 EXCELファイルを新規作成しても変わり無いです。 過去のEXCELファイルは開けます。それのすでに日本語が入っているセルを追加編集しようとしても日本語が入力出来ません。 これは設定がヘンなどではなく、なにか破損しているのでしょうか。 レジストリとかの操作でなんとかできるのでしょうか。 どなたかわかる方、教えてください。

  • IMEで¥¥入力すると日本語OFF

     何年か前から不思議に思っていたのですが、MS-IMEで¥¥と入力すると、かってに半角で\\となり、日本語入力モードがOFFになってしまうんですけどこうならない方法ってあるんですか?  最初に気が付いてからIMEのバージョンやOS、ハードが変わっても同じ現象になるので、たぶんWin95以降のIMEならバージョンを問わず同じ現象になるのではないかと思います。

  • 日本語入力offへの勝手な切替へを止める法

    MS-IME2000の日本語入力でのoff切替へのことでご教示ください。 このたびATOKからMS-IME2000へ切替へました。ところが文章入力中に、突然offに勝手に切替わってしまうことが頻繁に起こります。いま、英数字(全角、半角)入力だとMS-IME2000が判断してくれているのかもしれませんが、余計なお節介です。その都度いちいち日本語入力をonにしなければいけないので、文章入力リズムが狂はされること夥しいかぎりです。ワープロ専用機でもATOKでもこんなことはありませんでした。 なお、私はローマ字入力です。 この勝手に切替る過剰サービスを止める方法はありませんか。

  • エクセル inputboxの入力を編集モードで

    エクセルのvbaでinputboxで入力させているのですが規定値のすぐあとに続けて入力したいのですが、一回クリックしないとセルの入力のような編集モードになりません。何百と続けて入力したいのでその度クリックしないですむよにinputboxの入力が 編集モードにすることができますでしょうか? 例えば 2019/10/ が規定値で / のすぐあとに数字をいれたいのですが 2019/10/の部分が反転されているので一回クリックしなければなりません。

  • エクセル 入力規則

    エクセル2007を使用しています。仕事でデータ入力をしているのですが、ある特定のセルに、日本語入力をオンに設定しました。なので、そのセルに入力するときだけ日本語で入力ができ、それ以外のセルにはオフの状態に設定をしました。しかし、その特定のセル(日本語入力をオンに設定したセル)に移動しても、オンになりません。IMEツールバーが「あ」にならず「A」のままです。これは何か問題があるのでしょうか?入力の規則で、日本語入力をオンに設定したのに、反映されない症状について、お分かりになる方がいらっしゃいましたら、教えてくださいl。

  • ExcelのInputBoxに入力

    ExcelのVBAなどでInputBoxで入力待ちの状態に対して、例えばVBSなどの別のプログラムから 、その入力待ちの欄に値を入力することができますか? できるのであれば、どのようなコードになるのでしょうか? VBSやPowerShellなど、無料のものでお願いします。

  • ワード・エクセルで日本語入力できない。

    ウィンドウズ2000、ワード2000、エクセル2000、IME2000を使用しています。  突然、日本語入力ソフトIMEのON,OFFの切り替えがキーボードからできなくなり、日本語も入力できなくなりました。マウスで「A」をクリックすれば「あ」に切り替わります。  IMEツールバーを日本語入力「あ」にして、ワードでAのキーを押すと「ピィン」と音が鳴り文字が入力できません。エクセルだと日本語入力状態「あ」なのにアルファベットの小文字が入力されます。ちなみにメモ帳でも日本語入力状態でもアルファベットの小文字が入力されます。  再起動をしても日本語は入力されませんでした。  どなたかわかる方、教えてください。

  • エクセル 日本語入力及び貼り付け規制

    エクセルのセルに入力規制をかけて日本語入力は無効にしてあるので、セルに直接入力をすることはできないのですが、日本語が入力をされているセルをコピー&ペーストすると張り付いてしまいます。 この日本語の貼り付けも規制することはできないでしょうか? VBAでも関数でも構いません。 よろしくお願いいたします。

専門家に質問してみよう