1. テキストボックスの MultiLine プロパティを False に設定すると,そのプログラムの実行中に,テキストボックス内でリターンキーが押されると,エラー音が発生します。これを抑止したいのですが,どうすればよいのでしょうか? なお,MultiLine プロパティを True にするとエラー音は発生しなくなりますが,そのかわりに改行が行われてしまいます。MultiLine プロパティを True にして改行を抑止する方法でも構いません。どうか教えていただきたく存じます。
2. テキストボックス入力中にタブキーが押されたことを認識させたいのですが,KeyDown で認識させようとしてもうまくいきません。単にフォーカスが動いてしまうだけになってしまいます。フォーカスを移動させずに,タブキーが押されたことを認識させる方法を教えてください。
以上2点,どうかよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
1.たぶんこれで音は出なくなると思います。
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyReturn
KeyAscii = 0
End Select
End Sub
2.たぶん無理。。。
改行コードを表現できないテキストボックスでは、タブの文字コードも表現できないと思います。。。
早速のご回答,大変ありがとうございます。TAGOSAKU7 さんには前回の質問のときもお世話になり,ありがとうございました。
さて1.の件は,TAGOSAKU7 さんのご回答の方法で解決いたしました。私が書いたプログラムの中では,すでに KeyPress でリターンキーの検出をしておりましたので,単に KeyAscii = 0 を追加するだけで解決いたしました。
このたびは,どうもありがとうございました。これからもよろしくお願いいたします。
No.3
- 回答日時:
方法ありました。
全体的にBEEP音を出さないのであれば、#2のHk2001さんの発言通りです。
しかし、この方法はマルチラインプロパティをTRUEにしますので、やはり
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case vbKeyReturn
KeyAscii = 0
End Select
End Sub
を使用してください。
それと、フォーム中のコントロールで、TabStopプロパティの存在するコントロールを全てFalseに設定してください。
それによりTABコードも入力可能となります。
どういうことかというと、
※MultiLine=Falseのとき
文字コードをそのまま表示します
※MultiLine=Trueのとき
文字コードを適した状態で表示します
要するに、Trueのときは改行コードやタブ文字コードを、改行文字/タブ文字として表現が可能になるようです。
しかし、改行コードは必要が無いのでKeyPressイベントで、改行コードが入力されようとしている時に、改行コードを無くしてしまう処理を行うようにします。
No.2
- 回答日時:
1.ですがNo1.さんの方法でいいと思いますが
私が使用しているのは、フォームのイベントを使用しています。
こうすると、その他のコントロールを使用した場合も Beep音が出ません。
好き不好きだとは思います。
プログラムだとこんな感じ↓
'//===================================================================================================
'// Beep音消去
'//===================================================================================================
Private Sub Form_KeyPress(KeyAscii As Integer)
'Enter & ESC キーが押されたときのBeep音を消す処理
If KeyAscii = vbKeyReturn Or KeyAscii = vbKeyEscape Then
KeyAscii = 0
End If
End Sub
2.ですがこれもNo.1さんのとうりコントロールのイベントでは、制御できません
API関数か何かでわかるようなことをどこかで見かけたような気がします。
教えてGooの過去ログでけんさくされては?
ご回答ありがとうございます。2.の件につきまして,早速過去ログを検索してみました。その結果,
http://www.kit.co.jp/vbit/QAndA01.htm#Tabキーを判別するには
に解決方法が記載されてありました。ログも検索せずに質問をしてしまい,申し訳ございませんでした。
このたびは,大変ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Visual Basic(VBA) ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:16
- IT・エンジニアリング ActiveReportのdetailをデータセットの自動バインドを使って帳票を出力しています。 1 2023/08/16 07:17
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- C言語・C++・C# Microsoft Visual Studio Community 2019 タブキーが入力できない 1 2022/04/30 06:39
- Visual Basic(VBA) テキストボックスの値を該当セルに登録する方法 2 2022/11/23 18:47
- プリンタ・スキャナー キャノンmp490プリンター【エラー番号5400】で【プリンタートラブルが発生しました。電源を入れ直 2 2023/07/24 17:45
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エスケープ文字の復帰(¥r)と...
-
ソースコードの1行が長いとき...
-
ファイルから読み取った改行文...
-
VBAのコマンドボタンの文字列の...
-
C言語について。
-
VBAでCSVをExcelに取り込む時に...
-
JAVA System.out.println の ...
-
ラベル(スタティックテキスト)...
-
FORTRANで作成したテキストファ...
-
改行コードが半角スペースにな...
-
C++でのCRLFについて
-
C++で空Enterの入力を判...
-
英文のピリオドでのみの改行の仕方
-
コンボボックスの項目中に改行を
-
Getlineについて・・・・・・
-
改行が半角スペースに変わる
-
改行だけの行の削除
-
VBS 改行無しのファイル抽出方法
-
エクセルVBAのprintステートメ...
-
テキストボックス行の桁数を制...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
COBOLの改行
-
改行について
-
最終行の改行について
-
C++で空Enterの入力を判...
-
【VBA】エクセルで最後の不要な...
-
jsp 改行コードで改行させて表...
-
C++でのCRLFについて
-
ファイルから読み取った改行文...
-
テキストファイルから改行コー...
-
ExcelVBAでメールを作成してメ...
-
awkで改行を除いて文字列を抜き...
-
エクセルVBA 文字列領域が不足...
-
VBAでCSVをExcelに取り込む時に...
-
コンボボックスの項目中に改行を
-
JavaDoc コメントの改行について
-
Excel VBAからBeckyを起動して...
-
改行を読み飛ばす
おすすめ情報