- ベストアンサー
[_(アンダーバー)の感知について
OS:windows2000pro VB:VB6.0sp5 keyDown関数を用いて、アンダーバーを感知しようとしているのですが、できません keycode,shift = (1)226,0 = [\] keycode,shift = (2)16,1 = [shift] となります どのようにすれば良いのでしょうか? また、keyDown関数にて感知可能の場合 keycode,shift = ?,? の場合でしょうか? よろしくお願いいたします
- nao0
- お礼率10% (50/483)
- Visual Basic
- 回答数2
- ありがとう数0
- みんなの回答 (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)
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
- ベストアンサー
- Visual Basic
- アンダーバーを入力する方法を教えてください
OSを再インストールした際、キーボードの選択画面で、ドイツ語キーボードを使用しているにもかかわらず、『日本語キーボード』選んでしまいました。 言語はドイツ語と英語と日本語のIMEをインストールしているのですが、IMEで日本語を入力する場合のみ、アンダーバーがどのキーで入力できるのかがわかりません。シフト等を押しながらいろんなキーを試してみましたが、アンダーバーだけが見つかりませんでした。 どなたか、アンダーバーの出し方、もしくはキーボードの再設定の仕方をご存知ないでしょうか? よろしくお願いいたします。 キーボード:ドイツ語 OS:Windows XP 日本語版
- 締切済み
- デスクトップPC
- 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
- ベストアンサー
- Visual Basic
- VB2008KeyDownの使い方が分かりまんせん
VB2008 KeyDownの使い方も含め良く分かりません If e.KeyCode = Keys.Down Then e.KeyCode = 40 End If で実行すると、 「エラー 1 プロパティ 'KeyCode' は 'ReadOnly' です。」 とエラーが出ます。 何故エラーが出るのでしょうか?
- 締切済み
- Visual Basic
- ASCIIコードのNullコードの感知方法
OS:windows2000pro VB:VB6.0sp5 ASCIIコードを文字に変換した後に、そのコードが Null であるか否かの確認する方法を ご教示くださいます様よろしくお願いいたします 補足:ASCIIコードで Null のコードをパターンに持つという方法もありますが・・・・
- 締切済み
- Visual Basic
- F2+Ctrl押下時のイベント記述方法
VB6を使用しています。 F2+Ctrlを同時に押下した場合の処理の記述がうまくいきません。 Form_KeyDownイベントで下記のように記述しようと考えたのですが、KeyCodeに17が入ってしまいうまくいきません。 アドバイスをお願いします。 ----------------------- select case KeyCode case vbKeyF2 If Shift = 2 Then 'Ctrl+F2押下時 ***処理 End If ※他のファンクションボタンの処理もあるのでcase文にしています。
- ベストアンサー
- Visual Basic
- アクセス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
- ベストアンサー
- その他(プログラミング・開発)