質問番号:11157355186
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11157355186
エクセルVBAについての質問です。キーボードの矢印によってセルの値を変える方法を教えてください。
例として、矢印↑を押すとセルA11の値に+1されて、矢印↓を押すとセルA11−1される。
また、矢印→を押すとセルK1の値に+1され、矢印←を押すとセルK1の値にー1される方法を教えてください。
回答
標準モジュール
Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
シート1
Option Explicit Sub main() Do While (1) DoEvents ' ↑キーが押されたらA11セルの値をカウントアップ If GetAsyncKeyState(vbKeyUp) <> 0 Then Range("A11").Value = Range("A11").Value + 1 Range("A11").Select Sleep (100) End If ' ↓キーが押されたらA11セルの値をカウントダウン If GetAsyncKeyState(vbKeyDown) <> 0 Then Range("A11").Value = Range("A11").Value - 1 Range("A11").Select Sleep (100) End If ' →キーが押されたらK1セルの値をカウントアップ If GetAsyncKeyState(vbKeyRight) <> 0 Then Range("K1").Value = Range("K1").Value + 1 Range("K1").Select Sleep (100) End If ' ←キーが押されたらK1セルの値をカウントダウン If GetAsyncKeyState(vbKeyLeft) <> 0 Then Range("K1").Value = Range("K1").Value - 1 Range("K1").Select Sleep (100) End If ' エスケープキーが押されたら処理終了 If GetAsyncKeyState(vbKeyEscape) <> 0 Then Exit Do End If Loop End Sub