
初めて質問します。なので、情報が少なかったらすみません。
windows7 64bit Excel2010でVBAにトライしています。
その中で「GetAsynckeyState」関数を使用して、キーボードの入力を判定したく、
コードを書いたところ「GetAsynckeyStateはUser32.dll 内に見つかりません」という
エラーが発生しました。
下記がそのコードです。使用できるようにしたいのですがどうしたらいいでしょうか。ご教授お願いします
===================
Option Explicit
Private Declare Function GetAsynckeyState Lib "user32.dll" (ByVal vKey As Long) As Long
Sub test()
If GetAsynckeyState(38) <> 0 Then
Range("B1") = "●"
Else
Range("B1") = ""
End If
End Sub
====================
No.2ベストアンサー
- 回答日時:
GetAsyncKeyの「Key」の「K」が小文字になっています。
ビギナーが必ず一度は引っ掛かる問題ですが、GetAsyncKeyは大文字小文字を区別します。一文字でも違うと、「見つかりません」と言われてしまいます。
それから、ご提示のコードは、一瞬で処理が終了してしまうため、正しくプログラムを走らせても、キー入力を検知できません。
この問題を解決するには、処理をループさせて、ユーザーがいつキーを押しても判定できる状態にしておく必要があります。
※ループにはまって抜け出せなくなったときはESCを押します。
また、戻り値は、押されてない時が0以上、押されている時が0未満ですので、<0として判定します。
例:
Sub test()
main:
If GetAsyncKeyState(38) < 0 Then
Range("B1") = "●"
MsgBox ("処理終了")
Exit Sub
Else
GoTo main:
End If
End Sub
No.1
- 回答日時:
APIの関数名は大文字・小文字を区別しますので、正しく記載してください。
× Private Declare Function GetAsynckeyState Lib "user32.dll" (ByVal vKey As Long) As Long
○ Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal vKey As Long) As Long
参考URL:http://msdn.microsoft.com/ja-jp/library/cc364583 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
UMLでの例外処理
-
VBAでCOPYを繰り返すと、処理が...
-
VBAでループ内で使う変数名を可...
-
findは動くがfindnextがマクロ...
-
【Excel】特定の文字を含むセル...
-
月度は何て読みますか?
-
waitせずにキー入力があった場...
-
RPGプログラムの*HIVALについて
-
switch の範囲指定
-
ボタンクリックイベント 重複...
-
EXCEL VBA マクロ 実行する度に...
-
Loadイベント中にほかのイベン...
-
vba 空のデータをSplitする時の...
-
DoEventsがやはり分からない
-
Excel VBAにて2つの処理を同時...
-
iD
-
再帰処理を途中で抜けるには
-
メルカリのメルカードで買い物...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
【Excel】特定の文字を含むセル...
-
switch の範囲指定
-
VBAでループ内で使う変数名を可...
-
EXCEL VBA マクロ 実行する度に...
-
UMLでの例外処理
-
銀行の窓口処理の件で知ってる...
-
VBAでCOPYを繰り返すと、処理が...
-
月度は何て読みますか?
-
インタラクティブの反対語は?
-
VB.NET DataGridViewでIsNewRo...
-
DoEventsがやはり分からない
-
VBの質問#if 0 then ってどう...
-
お家デートをしててハグを長い...
-
セックスレスの既婚女性は自慰...
-
VB.NET Excelを読み込んでDataT...
-
リョウ・・・量?料?
-
メルカリのメルカードで買い物...
-
Loadイベント中にほかのイベン...
おすすめ情報