No.3ベストアンサー
- 回答日時:
一度下記のようなルーチンを作った事があります。
常に Command1(n) で押された数字は Text1 に表示して FOCUS は Text1 に戻します。
Command2(n) は 四則演算ボタンです
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 48 To 57 ' 数字キー
Call Command1_Click(KeyAscii - 48)
Case 61 ' = キー
Call Command2_Click(0)
Case 43 ' + キー
Call Command2_Click(1)
Case 45 ' - キー
Call Command2_Click(2)
Case 42 ' * キー
Call Command2_Click(3)
Case 47 '/ キー
Call Command2_Click(4)
Case 8 ' BackSpace
'カーソル位置から一文字前の数字を削除する処理
Case 13 'Enter キー
Call Command3_Click
End Select
KeyAscii = 0
End Sub
カーソルの位置が TextBox に表示されますので数字の挿入処理も可能です
No.4
- 回答日時:
補足と言うか余談と言うか…
KeyPressでは「文字コード」が取得できますが、KeyDown等では
「キーコード」が取得できます。
KeyDownで処理する場合、テンキーの数字の「キーコード」と、
そうでない(アルファベットの上の横並びの)数字の「キーコード」は、
違いますので、注意が必要です(両方に対応する必要がある)。
同様に、大きいEnterキーと、テンキー部の小さいEnterキーでは
キーコードが違いますし、「+」なども違います
(「+」の場合は更に、「;」のキーコードとKeyDownの引数「Shift」とを
絡めて判定する必要がある)。
なお、大体のキーコードは、ヘルプ(MSDN)の「キー コード定数」に
載っていますが、「;」のキーコード等、一部は載っていません。
これらについては、簡単な(キーコードを表示するだけとかの)プログラムを
作成して、実際に確認すればいいと思います。
…でもまぁ面倒なので、KeyPressで判定できる文字は全てKeyPressで
処理した方が、楽でしょうね。
No.2
- 回答日時:
フォームのKeyPreviewをTrueにして、フォームのKeyDownで処理する場合。
>コマンドボタンからの入力は出来ているのですが
各コマンドボタンからの処理で
Private Sub keyPlus_Click()
MsgBox "+"
End Sub
Private Sub keyMinus_Click()
MsgBox "-"
End Sub
みたいなのがあるだろうから
Private Sub Form_KeyPress(KeyAscii As Integer)
Select Case Chr(KeyAscii)
Case "+": keyPlus_Click
Case "-": keyMinus_Click
End Select
End Sub
で処理する。
deleteキーなどはKeyPressでは捕まえられないので、必要なら
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Select Case KeyCode
Case vbKeyDelete: MsgBox "delete"
End Select
End Sub
とかで処理する。
回答ありがとうございます。
KeyPressでは制限があるのですね。すべてKeyPressで作ろうとしていたので、KeyDownも使用してみます。
No.1
- 回答日時:
ボタンのキャプションプロパティで設定する文字列を
&+ といった具合にすれば そのボタンのClickイベントが ALTキーと+キーを押した場合に実行されます
この場合 +と _ がボタンに表示されます
別の手段としては Formの KeyPreviewプロパティをTrueにして コントロールより先に Formでキー入力を処理させます
FormのKeyDownイベントなどで
if (( Shift = 0 ) and (KeyCode = vbKeyAdd)) or _
((Shift and vbShiftMask ) And ( KeyCOde = 187 ) ) then
' + ボタンが押された場合の処理
end if
といった具合に処理を記述しましょう
vbKeyAddはテンキーの『+』です
KeyCode=187はメインキーボードの『れ』のキーのコードです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) vba キータッチまたはマウスクリックの確認 1 2023/08/23 19:02
- ノートパソコン ノートパソコン キーボードが反応しない 突然、ノートパソコンのキーボードが反応しなくなりました。 外 5 2022/08/05 07:15
- マウス・キーボード キーボード設定で困っています。長文です。 2 2022/12/10 12:44
- Mac OS Macで Microsoft Remote Desktop を使うとキーボードの配列が変わってしまう 1 2022/08/08 17:27
- タブレット Kindl fire7を購入しましたが、ひらがな入力をしたいのですが、どこから変更できるのでしょうか 3 2022/09/04 20:19
- Word(ワード) Windows11キーボードの調子が悪いので治し方を教えてください。 【症状】 1つ目 キーボードの 5 2022/07/03 14:51
- その他(パソコン・周辺機器) 呪われた様な.......様々な不具合について 2 2022/08/26 15:52
- Visual Basic(VBA) visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ 1 2023/02/08 00:18
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- C言語・C++・C# Microsoft Visual Studio Community 2019 タブキーが入力できない 1 2022/04/30 06:39
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
VBでの簡易電卓の作成(減算方法)で困っています。
Visual Basic(VBA)
-
Vba 電卓 一文字消すボタン
Visual Basic(VBA)
-
visual basic初心者です。 visual studioで電卓を作成しています。 実行時にテ
Visual Basic(VBA)
-
-
4
0での割り算
Visual Basic(VBA)
-
5
VB初心者。小数点以下の表示でつまづいています(涙
Visual Basic(VBA)
-
6
バックスペース機能の作り方
Visual Basic(VBA)
-
7
電卓の作成 VB
Visual Basic(VBA)
-
8
文字列の後ろから必要分だけ削除したい。
Visual Basic(VBA)
-
9
VBで作成したフォーム上に電卓アプリの計算結果を反映させたい
その他(プログラミング・Web制作)
-
10
VBで電卓の=
Visual Basic(VBA)
-
11
VBで電卓のメモリー機能はどのように作るのですか。
Visual Basic(VBA)
-
12
画面解像度の最高以上の解像度を設定してスクロールさせて見るということはできませんか?
Windows Vista・XP
-
13
VBでの入力値制限について
Visual Basic(VBA)
-
14
BackSpaceしたい(QNo.2734284のやつ)
JavaScript
-
15
VB 電卓 数字キーを押して ラベルに出力
Visual Basic(VBA)
-
16
文字列で小数点以下の0を削除したい
Visual Basic(VBA)
-
17
0除算の例外処理ができない!!助けて!!
Visual Basic(VBA)
-
18
VB初心者。小数点以下の表示でつまづいています(2
Visual Basic(VBA)
-
19
VBのReturnの使い方
Visual Basic(VBA)
-
20
c# 文字列の最後から1文字削除したい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のキーを押すまでループさ...
-
キーイベントを擬似的に発生さ...
-
一定時間操作されないと自動で...
-
Visual Basic 6.0 コンボボック...
-
SelectionChangeCommitted
-
VB.NETのDropDownListをReadOnl...
-
テキストボックスの入力文字を1...
-
ショートカットキーの変更をしたい
-
VC++ で TextBoxから、次...
-
KEYPREVIEW=TRUEについて。意味...
-
VB.NETでフォームがない...
-
Excel2007にてALTキーストロー...
-
【VB】タブ切り替え時のイベント
-
複数のテキストボックスのカン...
-
Delphiでキー入力を投げたい
-
IEで、BackSpaceで「戻る」機能...
-
エクセルVBAのテキストボック、...
-
TextboxまたはMaskEditboxでの...
-
コンボボックスにキー入力をさ...
-
WPFでの時刻入力コントロールに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【VB】タブ切り替え時のイベント
-
タブキー押下時のイベントをひ...
-
特定のキーを押すまでループさ...
-
(VBA)チェックボックスのclick...
-
WPFでの時刻入力コントロールに...
-
Visual Basic 6.0 コンボボック...
-
一定時間操作されないと自動で...
-
コンボボックスにキー入力をさ...
-
Excel VBA マクロ実行中のみテンキ...
-
VB.NETのDropDownListをReadOnl...
-
フォーカスについてお教えください
-
キーイベントを擬似的に発生さ...
-
IEで、BackSpaceで「戻る」機能...
-
エクセルVBAのテキストボック、...
-
VB.NETでフォームがない...
-
KEYPREVIEW=TRUEについて。意味...
-
EXCEL VBA でIEを制御して、INP...
-
自作ダイアログボックス中のエ...
-
テキストボックスの入力文字を1...
-
Objective-Cでキーボードイベン...
おすすめ情報