プロが教えるわが家の防犯対策術!

VBAでこのキーが押されるとこれを実行し、また別のキーを押すとまた別ののものを実行するようにしたいんですけど、キーを押されるっていうプログラムはどうやって書けばいいですか?

質問者からの補足コメント

  • うーん・・・

    if文でaのキーが押されたら・・・みたいな感じにしたいんですけど

      補足日時:2017/08/02 16:42
  • 学校の課題でVBAを使わなくてはいけないんですけど
    同じようにしてできますか?

    No.3の回答に寄せられた補足コメントです。 補足日時:2017/08/03 13:17

A 回答 (4件)

> 学校の課題でVBAを使わなくてはいけないんですけど


> 同じようにしてできますか?

VBAの中でWindowsのAPIを呼び出しているだけですが…。

API使わずにって事だと、ExcelのVBAに標準でキー入力を受け付けるような関数は無かったと思いますが…。(だからこそ、わざわざAPIを使って実現してる。)
InputBoxで「A」が入力されたら分岐とか、そういうフォームやActiveXコントロールを表示した状態で処理とか、課題の内容を取り違っていませんか?
    • good
    • 3
この回答へのお礼

ありがとうございます

課題の内容は自分でこんなのが作りたいと思ったものをVBAをつかって完成させるってもので・・・
自分の知識がなくてへんなしつもんしてしまって すいませんでした

お礼日時:2017/08/04 15:19

> if文でaのキーが押されたら・・・みたいな感じにしたいんですけど



なら、WindowsのAPIを使って、

Private Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long

sub test()
 if GetAsyncKeyState(vbKeyA) then
  msgbox "Aが押されてる"
 endif
end sub

とか。
この回答への補足あり
    • good
    • 2

> VBAでこのキーが押されるとこれを実行し、



具体的にどのキー?
質問者さんが任意に設定するたとえば「Ctrl+Q」キーとかであれば、マクロの記録の際ないしマクロのメニューでショートカットキーを登録できます。

特定のキー、たとえば「a」とか「s」を押した時にって事だと、標準的なワークシートのイベントとしてはキーが押された時ってのが無いです。
下記のQ&AみたいにOnKeyでイベント登録すると可能なハズ。

エクセルの任意のセルで特定のキーを押下したら、マクロを起動させる方法はあ... - Yahoo!知恵袋
https://detail.chiebukuro.yahoo.co.jp/qa/questio …
    • good
    • 1

ユーザーフォーム上ならば「UserForm_KeyPress」イベントが使えますが、通常のセル上では該当するイベントが無いので出来ません。

    • good
    • 4

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A