Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


45172 / 76732 ←次へ | 前へ→

【36563】Re:マクロが走らない
発言  ichinose  - 06/4/3(月) 20:00 -

引用なし
パスワード
   kao さん:
inoue さん:
こんばんは。


まず、Application.Onkeyがどんなメソッドなのか
Helpで確認された方がよいです。
たぶん、勘違いされています。
>    Application.OnKey "{ENTER}", "kizyutu" 'NumKeyのEnterで実行する
というコードでEnterキーを察知し即kizyutuというプロシジャーを実行する
わけではありませんよ!!これは、キーに関連付けを設定するコードです。

それとApplication.Onkeyでは、Changeイベント内で完全にはキーを
制御できないみたいですよ!!

本来の正常な仕様が記述されていないので
感ですが・・・。


新規ブックのThisworkbookのモジュールに

'===============================
Private Declare Function GetAsyncKeyState Lib _
    "User32.dll" (ByVal vKey As Long) As Long
'=========================================================================
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  If Target.Column = 6 Then
   Select Case key_code
    Case 13
     MsgBox ("kizyutusaimasu")
    Case 46
     MsgBox ("sakuzyosiimasu")
    End Select
   MsgBox "F列です"
   End If
End Sub
'==========================================================
Function key_code() As Long
  Dim inkey As Long
  key_code = 0
  inkey = GetAsyncKeyState(13)
  If inkey <> 0 Then
   key_code = 13
  Else
   inkey = GetAsyncKeyState(46)
   If inkey <> 0 Then
     key_code = 46
     End If
   End If
End Function


として、F列に値を入力してEnterキーで確定したり、
Delキーで削除したりしてみて下さい。
この二つのキーに反応するはずです。

簡単なテストではうまく作動していますが、
私もシートチェンジイベントでキーの取得と言うことを
初めて試してみたので完全に大丈夫かはわかりません。
(私は、こういう大変な仕様には大概しません・・・)

10 hits

【36548】マクロが走らない kao 06/4/3(月) 10:58 質問
【36556】Re:マクロが走らない inoue 06/4/3(月) 12:33 発言
【36558】Re:マクロが走らない kao 06/4/3(月) 13:54 質問
【36563】Re:マクロが走らない ichinose 06/4/3(月) 20:00 発言
【36565】Re:マクロが走らない kao 06/4/3(月) 20:13 お礼

45172 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free