ExcelのVBA記述で質問致します。


今、とあるボタンを押すとあるマクロが実行されるように登録してあります。

普通にこのボタンを押すという挙動はよいのですが、
エスケープボタンを押しながらこのボタンを押すという挙動は
無効になるようにしたいと考えています。

・エスケープボタンを押した状態では、このボタンを押下できないよう制御
・エスケープボタンを押した状態では、マクロを実行できないよう制御
といういずれかを実現したいのですが、どのような記述をすれば
よいでしょうか?

どうぞよろしくお願い致します。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2010/12/09 13:25:55
  • 終了:2010/12/13 15:31:18

回答(2件)

id:beatgoeson No.1

beatgoeson回答回数128ベストアンサー獲得回数142010/12/09 13:54:22

ポイント60pt

一つの方法は、ESCキーが押されているか判定して、押されていれば無いもしないで抜けるようにする。

(1) 標準モジュールを追加して、以下を記述

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


(2) ボタンを押した時のマクロの最初の部分に以下のように記述


If GetAsyncKeyState(vbKeyEscape) <> 0 Then

Exit Sub

End If

http://www.happy2-island.com/excelsmile/smile04/capter00301.shtm...

いかがでしょうか。

id:miku1973

ありがとうございます。(1)も(2)も上手くいかなかったのですが、(1)と(2)の両方を記述したら上手くいきました。

2010/12/13 15:29:34

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 tama213 486 425 30 2010-12-11 18:12:34

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません