■ 現在のこのページの役立ち度:
表示されない場合こちらのリンクからもご覧になれます。
■ このページの役立ち度を評価する:
役立ち度を評価してください。
(1(左):あまり役立たない - 5(右):大変役立った):
■ ページの共有:
[ サイト内検索 ]
カスタム検索
#45047-0音が気になる。アリババ2001-07-16(月) 17:27
     #45048-0RE#45047:音が気になる。レベル102001-07-16(月) 17:30
     #45051-0レベル10さんへアリババ2001-07-16(月) 17:45
     #45092-0RE#45048:音が気になる。データ2001-07-17(火) 20:28
     #45098-0RE#45092:音が気になる。よねKEN2001-07-18(水) 01:11
     #45107-0RE#45098:音が気になる。データ2001-07-18(水) 10:49
     #45109-0RE#45107:音が気になる。Μπενσι2001-07-18(水) 11:31
     #45144-0RE#45109:音が気になる。データ2001-07-18(水) 19:39
     #45151-0RE#45144:音が気になる。Μπενσι2001-07-18(水) 23:08
#45047-0
音が気になる。
質問です。
テキストボックスに文字などを入力して、
Enterキーを押したときにフォーカスが移動するプログラムを
作ったのですが、移動するのと同時にBeep音がなってしまいます。
プログラムは
    If KeyCode = vbKeyReturn Then
        KeyCode = 0
        cmdTuika.SetFocus
    End If
というふうに作っています。
プログラム上でエラーがあるわけではないのでしょうがないのかもしれませんが、
良い方法があれば教えてください。
#45048-0
RE#45047:音が気になる。
> 質問です。
> テキストボックスに文字などを入力して、
> Enterキーを押したときにフォーカスが移動するプログラムを
> 作ったのですが、移動するのと同時にBeep音がなってしまいます。
> プログラムは
>     If KeyCode = vbKeyReturn Then
>         KeyCode = 0
>         cmdTuika.SetFocus
>     End If
KeyPress イベントで、KeyAscii = 0 にすればOKですよ
#45051-0
レベル10さんへ
ありがとうございます。
実行できました!!
#45092-0
RE#45048:音が気になる。
すみませんが教えてください。

テキストボックスに文字を入力し、
リターンキーを押したときに入力した文字をチェックする処理を作成しているのですが、
現在、同様にBeep音が鳴ってしまいます。

KeyPress イベントのKeyAscii でリターンを判別してチェック処理を行っています。
チェック前にKeyAscii =0を入れてみたのですが、
Beep音が鳴ってしまいます。
ヘルプをみて調べましたがよくわかりません。

もうしわけないですが、もう少し教えてください。


> > 質問です。
> > テキストボックスに文字などを入力して、
> > Enterキーを押したときにフォーカスが移動するプログラムを
> > 作ったのですが、移動するのと同時にBeep音がなってしまいます。
> > プログラムは
> >     If KeyCode = vbKeyReturn Then
> >         KeyCode = 0
> >         cmdTuika.SetFocus
> >     End If
> KeyPress イベントで、KeyAscii = 0 にすればOKですよ
#45098-0
RE#45092:音が気になる。
> テキストボックスに文字を入力し、
> リターンキーを押したときに入力した文字をチェックする処理を作成しているのですが、
> 現在、同様にBeep音が鳴ってしまいます。

先の回答の通りにきちんとやっているなら、鳴らないはずです。

> KeyPress イベントのKeyAscii でリターンを判別してチェック処理を行っています。

最初の投稿の引用中のコードを見ると
元々のコードはKeyDownイベントで引数KeyCodeをチェックしていたようですが、
それをやめて、KeyPressイベントで書き直したのでしょうか?

> チェック前にKeyAscii =0を入れてみたのですが、

この文章を文字通りに捉えると、
Private Sub Text1_KeyPress(KeyAscii As Interger)
    KeyAscii = 0

    ' 以下チェック処理

といった記述をされているように取れますが、それだとチェック処理が正しく行えません。

> Beep音が鳴ってしまいます。
> ヘルプをみて調べましたがよくわかりません。

現在、そのKeyPressイベントには具体的にどう記述されているのですか?
イベント部分をそのまま抜き出して載せてもらえば何がまずいのか
わかるかもしれません。

後、開発環境について書かれていないようですが、環境は何ですか?
OSの種類やバージョン、VBのバージョンやSPも書きましょう。
#45107-0
RE#45098:音が気になる。
> > テキストボックスに文字を入力し、
> > リターンキーを押したときに入力した文字をチェックする処理を作成しているのですが、
> > 現在、同様にBeep音が鳴ってしまいます。
> 
> 先の回答の通りにきちんとやっているなら、鳴らないはずです。

自分がよくわかっていない?、修正がうまくいっていないだけと思います(T^T)


> > KeyPress イベントのKeyAscii でリターンを判別してチェック処理を行っています。
> 
> 最初の投稿の引用中のコードを見ると
> 元々のコードはKeyDownイベントで引数KeyCodeをチェックしていたようですが、
> それをやめて、KeyPressイベントで書き直したのでしょうか?

最初からkeyPressを使用してチェックしています。
keyDownイベントは使っていません。
 

> > チェック前にKeyAscii =0を入れてみたのですが、
> 
> この文章を文字通りに捉えると、
> Private Sub Text1_KeyPress(KeyAscii As Interger)
>     KeyAscii = 0
> 
>     ' 以下チェック処理
> 
> といった記述をされているように取れますが、それだとチェック処理が正しく行えません。

わかりにくくて 申し訳ありません。
下記のようにしています。

Private Sub DataText_KeyPress(Index As Integer, KeyAscii As Integer)
    If KeyAscii = vbKeyReturn Then

        KeyAscii = 0    ← ここに追加

        'チェック処理
       :
       :

  end if
End Sub


> > Beep音が鳴ってしまいます。
> > ヘルプをみて調べましたがよくわかりません。
> 
> 現在、そのKeyPressイベントには具体的にどう記述されているのですか?
> イベント部分をそのまま抜き出して載せてもらえば何がまずいのか
> わかるかもしれません。
> 
> 後、開発環境について書かれていないようですが、環境は何ですか?
> OSの種類やバージョン、VBのバージョンやSPも書きましょう。

環境は、win2000/VB6(SP5)です。

たびたび申し訳ありませんが、宜しくお願いします。

#45109-0
RE#45107:音が気になる。
>>> リターンキーを押したときに入力した文字をチェックする処理を作成しているのですが、
>>> 現在、同様にBeep音が鳴ってしまいます。

Len(Text1.Text) ≧ Text1.MaxLength の状態になっていたりはしませんか?
#45144-0
RE#45109:音が気になる。
> >>> リターンキーを押したときに入力した文字をチェックする処理を作成しているのですが、
> >>> 現在、同様にBeep音が鳴ってしまいます。
> 
> Len(Text1.Text) ≧ Text1.MaxLength の状態になっていたりはしませんか?

なっています。
文字制限をしているのでほとんどLen(Text1.Text) = Text1.MaxLengthです。
このときはBeep音を消すことはできないのでしょうか?

何か手がありましたら教えてください。
 
#45151-0
RE#45144:音が気になる。
>>>>> リターンキーを押したときに入力した文字をチェックする処理を作成しているのですが、
>>>>> 現在、同様にBeep音が鳴ってしまいます。
>> Len(Text1.Text) ≧ Text1.MaxLength の状態になっていたりはしませんか?
> なっています。
> 文字制限をしているのでほとんどLen(Text1.Text) = Text1.MaxLengthです。
> このときはBeep音を消すことはできないのでしょうか?

文字チェックを、DefaultなCommandButtonのClickイベントで行うようにすれば、
MaxLength≠0の状態でも、音は出なくなります。(この場合、KeyPressイベントは未使用です)
この方法を用いる時には、CommandButtonをユーザーからは見えない位置
(例えば、他のコントロールの下や、フォームのマイナス座標など)に配置し、
TabStopをFalseに設定しておけばよいでしょう。

KeyPressで処理しないとコーディング修正が大変というのであれば、
MaxLengthを0に戻すしかないと思います。
この場合は、MaxLengthの代わりに、EM_LIMITTEXTメッセージで
制限をかけるようにすればよいと思います。

ただし、EM_LIMITTEXTメッセージを使うと、MaxLengthプロパティでの
「文字数単位の制限」ではなく、「バイト数単位での制限」となってしまいます。

それだと都合が悪いという場合は、バイト数制限をKeyPressやChangeで行うか、
テキストボックス自体をフックして、Enter押下の通知を握りつぶすしかないと思います。
お探しの情報は見つかりましたか?お困りの問題は解決しましたか?
サイト内検索, 似た記事検索で見つからなくてもあきらめずに掲示板で質問してみましょう。
VB初心者友の会があなたのお役に立てれば幸いです。また、本ページの投稿者の方々にこの場を借りて感謝致します。
本ページは過去ログを集めて自動構成しています。よろしければこのページに関するフィードバックをお願いします。
(※ 構成の誤り、広告等の不適切な記事、リンク切れ、読めないページの報告など)