|
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キーで削除したりしてみて下さい。
この二つのキーに反応するはずです。
簡単なテストではうまく作動していますが、
私もシートチェンジイベントでキーの取得と言うことを
初めて試してみたので完全に大丈夫かはわかりません。
(私は、こういう大変な仕様には大概しません・・・)
|
|