• ベストアンサー

[_(アンダーバー)の感知について

OS:windows2000pro VB:VB6.0sp5 keyDown関数を用いて、アンダーバーを感知しようとしているのですが、できません keycode,shift = (1)226,0 = [\] keycode,shift = (2)16,1 = [shift] となります どのようにすれば良いのでしょうか?  また、keyDown関数にて感知可能の場合 keycode,shift = ?,? の場合でしょうか? よろしくお願いいたします

  • nao0
  • お礼率10% (50/483)

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

  • ベストアンサー
  • AlexSuns
  • ベストアンサー率67% (78/115)
回答No.2

調査方法: テキストボックスを2つ配置 設定するプロパティは「Multiline」をTrueにする テキストボックスのキーイベントにて下記のように Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)      'キー情報出力   Me.Text2.SelStart = Len(Me.Text2.Text) + 1   Me.Text2.SelText = "KeyCode -> " & KeyCode & " Shift -> " & Shift & vbCrLf    End Sub この様にすれば、直前に押下されたキー情報を取得できます ちなみに   'アンダースコア検知   If (Shift And vbShiftMask) And (KeyCode = 226) Then     Me.Text2.SelStart = Len(Me.Text2.Text) + 1     Me.Text2.SelText = "アンダースコアです" & vbCrLf   End If あと理解しているといいもの Shift、Ctrl、および Alt の各キーの状態の検出 http://www.microsoft.com/japan/developer/library/VBCon98/vbcondetectingshiftctrlaltstates.htm

その他の回答 (1)

  • ctrlzr
  • ベストアンサー率29% (18/62)
回答No.1

keyPressイベントではダメですか? keyPressは入力した文字の検知、keyDownは押されたキーの検知です。

関連するQ&A

  • Ctrl + Cなど複数の入力キーの感知

    TextBoxでコピーや貼り付け機能などをつけようと思い。 以下のように書きましたが、うまくいきません。 さらに以下の書き方だと例えば、Shift + Zを押した時に Zの文字がテキストボックスに書き込まれてしまいます。 一般的にはどうやって複数のキー入力を感知するのが王道なんでしょうか? VBを勉強し始めたばかりで、わかりにくい説明で申し訳ないです。 Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown   'ctrl + Zで切り取り   If e.KeyCode = Keys.Z Then    If e.Control Then     MsgBox("aa")     TextBox1.Cut()    End If   End If End Sub

  • アンダーバーを入力する方法を教えてください

    OSを再インストールした際、キーボードの選択画面で、ドイツ語キーボードを使用しているにもかかわらず、『日本語キーボード』選んでしまいました。 言語はドイツ語と英語と日本語のIMEをインストールしているのですが、IMEで日本語を入力する場合のみ、アンダーバーがどのキーで入力できるのかがわかりません。シフト等を押しながらいろんなキーを試してみましたが、アンダーバーだけが見つかりませんでした。 どなたか、アンダーバーの出し方、もしくはキーボードの再設定の仕方をご存知ないでしょうか? よろしくお願いいたします。 キーボード:ドイツ語 OS:Windows XP 日本語版

  • Keydownイベントについて

    VB6.0について質問です。 FormでKeydownイベントが動きません。 どのような原因が考えられますか? コードは以下のように記述しています。 Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Select Case KeyCode Case vbKeyF8 cmd_F8.Value = True Case vbKeyF9 cmd_close.Value = True End Select End Sub

  • VB2008KeyDownの使い方が分かりまんせん

    VB2008 KeyDownの使い方も含め良く分かりません If e.KeyCode = Keys.Down Then e.KeyCode = 40 End If で実行すると、 「エラー 1 プロパティ 'KeyCode' は 'ReadOnly' です。」 とエラーが出ます。 何故エラーが出るのでしょうか?

  • ASCIIコードのNullコードの感知方法

    OS:windows2000pro VB:VB6.0sp5 ASCIIコードを文字に変換した後に、そのコードが Null であるか否かの確認する方法を ご教示くださいます様よろしくお願いいたします 補足:ASCIIコードで Null のコードをパターンに持つという方法もありますが・・・・

  • F2+Ctrl押下時のイベント記述方法

    VB6を使用しています。 F2+Ctrlを同時に押下した場合の処理の記述がうまくいきません。 Form_KeyDownイベントで下記のように記述しようと考えたのですが、KeyCodeに17が入ってしまいうまくいきません。 アドバイスをお願いします。 ----------------------- select case KeyCode  case vbKeyF2   If Shift = 2 Then   'Ctrl+F2押下時   ***処理   End If ※他のファンクションボタンの処理もあるのでcase文にしています。

  • アクセスVBAについて教えてください。

    アクセスVBAで KeyDown イベントに下記のプロシージャを書きました。 If KeyCode = 49 And Shift = 2 Then 都道府県 = “東京都” End If KeyCode = 49はキーボードの 「1」ということがヘルプのkeycodeの定数表より、 Vbkey1をイミディエトウィンドで調べることによりわかりました。 ?vbkey1 49 Shift = 2 はキーボードのの 「ctrl」のことみたいですが、「ALT」「shift」を指定したい場合の引数は何を入れればよいでしょうか。また、ヘルプで参照になるページがあれば教えてください。 それと vbkey の意味を教えてください。

  • エクセル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ににするってどういうことでしょうか?

  • アンダーバーの後の文字を大文字に変えたい

    エクセルの関数について質問です。 アンダーバー_の後の文字を大文字に変えて、 アンダーバー自体は消去したいのですが、作り方がわかりません たとえば、abc_def_ghiの場合ですとabcDefGhiのようなかんじです。 アンダーバーが何個出現するかは一定ではありません。 0個の場合もあります。 ご存知でしたらご教授ください。

  • VB6.0 KeyDownイベントの対応

    VB6.0を使ってプログラム中ですが、下記の  Command10_KeyDown で、複合キー「 Ctrl + ↓」 だとイベント KeyDown を受信できるのですが、単純な キー「↓」だと、イベント KeyDown を受信でず、他のボタンにフォーカスが移ってしまいます。 Comman10_GotFocus に何か対応策を入れて、単純な キー「↓」のイベント KeyDown を受信する方法はないでしょうか? Private Sub Command10_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 40 Then execsub001() End If End Sub Private Sub Commnad10_Click() execsub001() End Sub Private Sub Comman10_GotFocus() 上記問題への対応策を此処に記述したい End If Private Sub execsub110() 内容は省略 End Sub

専門家に質問してみよう