• ベストアンサー

TextBox内で日本語入力中を判断する方法

TextBox内で「Enter」PUSHの有無を下記コードで実現しておりますが Private Sub TextBox1_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then     処理 End If End Sub 日本語変換の際(もじ→文字)の「Enter」を処理対象外にする方法を教えていただけないでしょうか? もしくは日本語入力中を判断する方法を教えていただけないでしょうか? 言語はVB6.0です。 よろしくお願い致します。

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

  • ベストアンサー
  • NYOI
  • ベストアンサー率58% (56/96)
回答No.1

KeyDownの方で判定してはだめですか? こちらなら変換の際のEnterは拾いません。 Private Sub TextBox1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then     処理 End If End Sub

suvaryu
質問者

お礼

KeyDownで実現できました。 ありがとうございます。

関連するQ&A

  • TextBoxに連続で入力する方法

    Form1に、TextBox1とTextBox2を配置しています。 TextBox1にKey入力を受け、Enter Keyで取り込む動作を、連続して行うためのプログラムを作ってみましたが、何故かEnter Keyの後、カーソルがTextBox2に移動してしまいます。Enter Keyの後、TextBox1.SetFocusで、カーソルをTextBox1にしているのですが何故が解らず困っています。Enter Kyeの後、カーソルがTextBox1に戻るようにするには、どのようにすれば良いのか教えて下さい。 PC環境は、OS=Win10 Excel=2010 です。作ったプログラムは以下の通りです。よろしくお願いします。 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyReturn Then Sheets("Sheet1").Range("A1") = TextBox1.Value TextBox1 = "" TextBox1.SetFocus End If End Sub

  • エクセルBVAのフォーム式のKeyCode~の意味がわかりません

    エクセルBVAです Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyDown Then KeyCode = 0 End If End Sub ヘルプをみると キーを押したとき、およびキーを離したときに続いて発生します。KeyDown イベントはキーを押すと発生し、KeyUp イベントはキーを離すと発生します。 キーってenterのことですかね? なら、 If KeyCode = vbKeyDown Then KeyCode = 0 End If で、KeyCodeを0ににするってどういうことでしょうか?

  • KeyUpイベントにて

    テキストボックスのKeyUpイベントにて『Enter』または『Tab』が押されたら処理をさせようと Private Sub Text_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Text.KeyUp If e.KeyCode = Keys.Enter or e.KeyCode = Keys.Tab Then   処理コード End If End Sub としたのですが『Enter』のときしか処理コードが反映されません ご教授お願いします

  • MSForms.ReturnInteger

    Excel VBAで 違うSubから textbox_keypress をコールしたいのですが、 vbKeyReturnを受け渡せません。 ****************************************** Private Sub StartButton_Click() Dim KeyCode As MSForms.ReturnInteger If EngTypeStartButton.Caption = "" Then KeyCode.Value = vbKeyReturn <---ここでエラーになる。 Call TextBox_KeyDown(KeyCode, 0) End If End Sub ****************************************** 『実行エラー91 オブジェクト変数またはWithブロック変数が設定されていません』 と表示されます。 vbKeyReturnの代わりに13としても結果は同じです。 受け側のSubは以下のような始まりです。 Private Sub TextBox_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) このSubは正常に動作しています。 どなたか私の間違いを教えていただけないでしょうか? よろしくお願いいたします。

  • vb コンボボックスのイベントについて

    こんばんわ。 コンボボックスで、 指定の値をマウス操作でクリックしたときと、 キーボードの上下で、移動後returnを押したときだけ、 MsgBox "処理実行" を実行したいです。 keystateを使ってみたのですが、前の情報が残っているのかうまくいきません。keystateの情報をクリアさせるか、シンプルに上記を動作させる何かよい方法はありますでしょうか。 Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer Dim flg1 As Boolean Private Sub form_load() Combo1.AddItem (11) Combo1.AddItem (22) Combo1.AddItem (33) Combo1.AddItem (44) End Sub Private Sub Combo1_Keyup(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then 'return flg1 = True Call Combo1_click End If End Sub Private Sub Combo1_click() If (GetKeyState(&H26) <> 0) Or (GetKeyState(&H28) <> 0) Then ' ↑↓ If flg1 = False Then Exit Sub End If End If MsgBox "処理実行" flg1 = False End Sub

  • エクセル VBA タブストップに対する質問2

    下記の「エクセル VBA タブストップに対する質問」に書き込みした者ですが、一難去ってまた一難です。又、暗雲が漂ってきました。 条件は下記といっしょで テキストボックスが1~5まであり、テキストボックス2~4まではデータが入っています。 全てのTabStopはTrue、TabIndexは順に1~5が入っています。 テキストボックス1に何もデータを入れないで、Enterが押された場合、 テキストボックス1をアクティブにしたいのですが、下記で質問した回答で動かしても、きちんと動いてくれません。 どうかご指導よろしくお願いいたします。 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Then 'ENTER If TextBox1.Value = "" Then TextBox1.SetFocus End If End If End Sub このコードでテキストボックス1に何も入れずにEnterを押すとテキストボックス2がアクティブになってしまいます。

  • VBA書き込み数値の加算?

    エクセル2000のVBAにて下記のコードを書き込み コマンドボタン1にてエクセルに入力処理後 Label8数値の加算をエクセル関数SUNを使用して =SUM(E4:E1000)を行ったのですが、加算数値が0になってしまいます。 =E4+E5+E6・・・・だと加算した数値が表示されます。 (さすがにこれは避けたいです) 何か方法があると思いますが教えていただけますでしょうか? Dim i As Integer Dim k As Integer Private Sub CommandButton1_Click() With ActiveSheet For k = 4 To 1000 If .Cells(k, 1) = "" Then .Cells(k, 1) = TextBox1 .Cells(k, 2) = Label6 .Cells(k, 3) = Label7 .Cells(k, 4) = TextBox2 .Cells(k, 5) = Label8 TextBox1 = "" Label6 = "" TextBox2 = "" Label7 = "" Label8 = "" Exit Sub End If Next k End With End Sub Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Then Label8 = Application.WorksheetFunction.Round(Val(Label7) * Val(TextBox2), 0) Label8 = Format(Label8, "#,##0") End If End Sub

  • VB2005 TextBoxの入力制限について

    はじめて質問させていただきます。 現在、VB2005を使ってプログラムを組んでいるのですが、半角カタカナだけをTextBoxに入力し、表示する方法がわかりません。 Private Sub TextBox6_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox6.KeyDown TextBox6.ImeMode = Windows.Forms.ImeMode.KatakanaHalf End Sub Private Sub TextBox6_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox6.KeyPress If (e.KeyChar < "ア"c Or e.KeyChar > "-"c) And e.KeyChar <> vbBack Then e.Handled = True End If End Sub ↑見にくいかもしれませんがコードです。 この方法ではだめなのでしょうか? 回答をお願いします

  • エラー処理について

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 38 Then PICOCX1.Outp PortB, 7, High PICOCX1.Outp PortB, 4, High End If If KeyCode = 40 Then PICOCX1.Outp PortB, 6, High PICOCX1.Outp PortB, 5, High End If If KeyCode = 37 Then PICOCX1.Outp PortB, 7, High PICOCX1.Outp PortB, 5, High End If If KeyCode = 39 Then PICOCX1.Outp PortB, 6, High PICOCX1.Outp PortB, 4, High End If End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) If KeyCode = 38 Then PICOCX1.Outp PortB, 7, Low PICOCX1.Outp PortB, 4, Low End If If KeyCode = 40 Then PICOCX1.Outp PortB, 6, Low PICOCX1.Outp PortB, 5, Low End If If KeyCode = 37 Then PICOCX1.Outp PortB, 7, Low PICOCX1.Outp PortB, 5, Low End If If KeyCode = 39 Then PICOCX1.Outp PortB, 6, Low PICOCX1.Outp PortB, 4, Low End If End Sub というプログラムですがこれがもしPICOCX1.Outp PortB, 4, Lowなどが実行できないとエラーとして返ってきてしまいます。このときエラー箇所をもう一度実行する方法はあるのでしょうか? お願いします。こちらの環境はVB6.0です。

  • 初歩的な質問ですみません。

    初歩的な質問ですみません。 テキストボックスのフォーカスを移す処理なんですけど、 Private sub Textbox1_Keydown以下略 if e.Keycode = Keys.Enter then Textbox2.Focus End sub これだとポンと音が鳴ってしまうのですが、 音が鳴らないようにするには、どうしたらいいのでしょうか? よろしくお願いします。

専門家に質問してみよう