[過去ログ] Excel VBA 質問スレ Part80 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
302
(5): 2024/01/02(火)14:58 ID:NJgc4isg(1/2)調 AAS
Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = vbKeyControl Then
MsgBox "ok"
End If
End Sub

UserForm1にリストボックスを設置してKeyDownイベントを置いただけです
Ctrl
Alt
Shift
を押してもキーダウン

イベント自体発生しないのですが何かヒントありますか?

もう少し詳細に書きます
If の行にブレイクポイントを作っても上の3つのキーを押したときは、無反応です
他のキーを押した場合はVBEが反応してブレイクポイントで処理が止まったことを示す強調色が表示されます。この結果から、上の3つのキーを押した場合のみKeyDownイベント自体が発生していないと判断しました

実は、自宅のデスクトップパソコン(Excel2019)でこのコードを実行すると、上の3つのキーでもちゃんと反応してくれます
会社のノートパソコン(おそらくExcel2016)だと上の3つのキーを押したときだけ無反応です。他のキー、例えば数字やアルファベットキーを押した場合はイベント発生します。

コードはコピペしてるので完全に同じです

よろしくお願いします
303
(1): 2024/01/02(火)17:08 ID:CQp0gfLy(1)調 AAS
>>302
ノートPCのメーカーと型番を書いた方がいいかも。
もしかしたら他のキーと同時に押した時にしかキーコードを送らないとかやってるかもしれない
304
(1): 2024/01/02(火)17:48 ID:HPsEIlot(1/2)調 AAS
>>302
フォームのKeyPreviewプロパティがTrueじゃないんだろ
305
(2): 2024/01/02(火)20:19 ID:G9bvfkvl(1)調 AAS
>>302
そういうOSに関することをやると挙動が変わるからやめた方がいい。

Excel VBAは古いものと新しいものが同居しているから、あまり書かれないことを書くとはまる。
308
(1): 2024/01/02(火)23:13 ID:MZzCTdib(1)調 AAS
>>302
その3つは複数のキーを同時に押すことで特殊な動作をさせるために使っている
313: 2024/01/03(水)11:46 ID:PY0bko23(2/2)調 AAS
>>302ですが、いくつか実験したところ解決しました
環境によって受け取れるキーコードが違うようです
イベントハンドラの第一引数KeyCodeにコントロールキーが入るケースと入らないケースがあるようで、会社の環境だと入らないようです
KeyCodeにコントロールキーが入る環境だと、コントロールキーを単独で打っても認識できるようなのですが、入らない環境だと他のキーとセットで打った場合のみ第二引数のShiftにコントロールキーがはいるようです
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.044s