- ベストアンサー
excelのInputBoxで日本語入力OFFにしたい
タイトルの通りです excelのInputBoxで日本語入力OFFにしたいのですが、 VBAでIME(MS-IME)を制御できるのでしょうか。 セルへの入力であれば、入力規則で出来るので、 イメージとしては、そんな感じです。
- オフィス系ソフト
- 回答数2
- ありがとう数5
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 詳しい状況が分らないので、あまり正確に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
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17068)
>日本語入力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になった。) 対策以下は自信なし。
お礼
>(1)入力モードの初期値を英数にするということですか こちらです。 SendKeys で対応することにしました。 参考URLありがとうございました。 >InputBox関数自体にIMEを制御する機能はありません と書いてあり、今回の質問の回答になりました。
関連するQ&A
- InputBoxでの日本語オン、オフ設定方法
InputBoxでの日本語オン、オフ自動設定方法が 知りたいです。 具体的には、 エクセルでいうところの、 データ(D)→入力規則(L)→「データの入力規則」ダイアログ内の 日本語タブで日本語入力オン、の設定を、 VB6.0 CCEのプロパティで設定したいです。 例)・InputBoxを2回連続で入力するとき 最初のInputBoxで、自動的に日本語入力オン (Enterキーで入力終了後) 次のInputBoxで、自動的に日本語入力オフ 開発環境:VB6.0 CCE です。 詳しい方、宜しくお願い致します。
- 締切済み
- Visual Basic
- 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/の部分が反転されているので一回クリックしなければなりません。
- ベストアンサー
- Visual Basic
- エクセル 入力規則
エクセル2007を使用しています。仕事でデータ入力をしているのですが、ある特定のセルに、日本語入力をオンに設定しました。なので、そのセルに入力するときだけ日本語で入力ができ、それ以外のセルにはオフの状態に設定をしました。しかし、その特定のセル(日本語入力をオンに設定したセル)に移動しても、オンになりません。IMEツールバーが「あ」にならず「A」のままです。これは何か問題があるのでしょうか?入力の規則で、日本語入力をオンに設定したのに、反映されない症状について、お分かりになる方がいらっしゃいましたら、教えてくださいl。
- 締切済み
- その他MS Office製品
- ExcelのInputBoxに入力
ExcelのVBAなどでInputBoxで入力待ちの状態に対して、例えばVBSなどの別のプログラムから 、その入力待ちの欄に値を入力することができますか? できるのであれば、どのようなコードになるのでしょうか? VBSやPowerShellなど、無料のものでお願いします。
- ベストアンサー
- Excel(エクセル)
- ワード・エクセルで日本語入力できない。
ウィンドウズ2000、ワード2000、エクセル2000、IME2000を使用しています。 突然、日本語入力ソフトIMEのON,OFFの切り替えがキーボードからできなくなり、日本語も入力できなくなりました。マウスで「A」をクリックすれば「あ」に切り替わります。 IMEツールバーを日本語入力「あ」にして、ワードでAのキーを押すと「ピィン」と音が鳴り文字が入力できません。エクセルだと日本語入力状態「あ」なのにアルファベットの小文字が入力されます。ちなみにメモ帳でも日本語入力状態でもアルファベットの小文字が入力されます。 再起動をしても日本語は入力されませんでした。 どなたかわかる方、教えてください。
- 締切済み
- オフィス系ソフト
- エクセル 日本語入力及び貼り付け規制
エクセルのセルに入力規制をかけて日本語入力は無効にしてあるので、セルに直接入力をすることはできないのですが、日本語が入力をされているセルをコピー&ペーストすると張り付いてしまいます。 この日本語の貼り付けも規制することはできないでしょうか? VBAでも関数でも構いません。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
コードまでありがとうございました SendKeys で対応することにしました