Page 800 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼TextBoxのKeyPressイベントが掴めません。 なじぇ? 03/2/26(水) 0:05 ┗Re:TextBoxのKeyPressイベントが掴めませ... つん 03/2/26(水) 14:12 ─────────────────────────────────────── ■題名 : TextBoxのKeyPressイベントが掴めません。 ■名前 : なじぇ? ■日付 : 03/2/26(水) 0:05 -------------------------------------------------------------------------
はじめまして。いつも参考にさせてもらってます。 ユーザーフォーム中の TextBox の KeyPress イベント なんですが。 Private Sub TxtName_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) If KeyAscii <> 13 Then Exit Sub ・・・<処理の内容>・・・ End Sub 押下されたKeyが Enter-Key である場合のみ、ある何らかの処理を 行うようにしています。 が。 あるフォームBでは(2番目に表示されるフォーム)この記述でうまくいくのですが 別のフォームA(Bookを開いた時、Workbook_Openイベントで Showされる)だと、 Enter-Keyの押下時にこのイベントが発生してくれません。その他のKeyの押下なら このイベントを通るのですが。 初め、フレームの中にTextBoxを配置していたので、そのせいかと思ってフレームから 出してみたのですが、結果は変わりませんでした。 フォームによってコントロールへのイベントの渡り方が違うのでしょうか? 自分ではフォームAをBとで特別に違う作り方をしたつもりはないのですが。 原因をご存知の方、いらっしゃいましたらどうか宜しくご教示をお願いします。 |
なじぇ? さん、こんにちは 回答じゃないので、申し訳ないですが・・・ ちょっち試してみましたが、 こちらでは、ファイルオープン時にロードされたフォームでも、 それ以外のフォームでも、エンターキーでイベントは発生しませんでした。 何でやろ・・・?こっちがおかしいのかな? なじぇ?さんとこでは、少なくともファイルオープン時のフォーム以外はOKなんですよね・・・ それで、ヘルプを見てみたのですが、 '============================================== KeyPress イベントは、次のいずれかのキーを押すと発生します。 ・印刷可能キーボード文字 ・標準のアルファベット キーと Ctrl キーの組み合わせ ・特殊文字キーと Ctrl キーの組み合わせ ・Enter キー ・BackSpace キー KeyPress イベントは、次のいずれかの条件では発生しません。 ・Tab キーを押したとき ・Enter キーを押したとき ・方向キーを押したとき ・コントロール間でフォーカスの移動を引き起こすキーを押したとき '============================================== これって結局、「Enter キーを押したとき」は、OKなのでしょうか? NGなのでしょうか・・・前後の文章を読んでもいまいちわからなかったんやけど・・・ ところで、代替案ですけど、KeyDownイベント使わはったらいかがでしょう? Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyReturn Then MsgBox "エンターキー" Else MsgBox "エンターキー以外" End If End Sub 私は、こっちをよく使いますが・・・ |