いつもお世話になります
ウェッブ調べて使ってみましたが、説明がよくわからず
Debug.Print を入れてチェックしてみました
Do
If GetAsyncKeyState(vbKeyLButton) = 32768 Then '...マウス左クリックの判定
Debug.Print "check1", GetAsyncKeyState(vbKeyLButton)
Exit Do
ElseIf GetAsyncKeyState(vbKeyReturn) = 32768 Then '...エンターキーの判定
Debug.Print "check2", GetAsyncKeyState(vbKeyReturn)
Exit Do
ElseIf GetAsyncKeyState(vbKeyEscape) = 32768 Then '...エスケープキーの判定
Debug.Print "check3", GetAsyncKeyState(vbKeyEscape)
GoTo ErrOut
End If
Loop
今、三つのKeyでチェcckしてみましたが押されたときはみなプラスの32768のようですが
これで良いのですか?
ちょっと不安だったので投稿してみました
押される前は"0"か"1"みたいですが
以上、宜しくお願い致します
No.1ベストアンサー
- 回答日時:
いずれにせよ、この確認の仕方はまずいかもですね。
Ifでの判定時とDebug.Print時に毎回2度GetAsyncKeyState()を呼び出しているので、この間にも応答が変わります。
GetAsyncKeyState()の戻り値を変数で受け取るようにして、呼び出しは毎ループ1度にしましょう。
さらにいうと、変数で受けるように書き換えたとしても、Ifで値が32768だった時の値をPrintしているのだから、当然コンソールにPrintされる値は32768です。確認にはなっていないですね。
もっとも、やはりプラスの32768は返ってこないと思いますが。
ご返信、ありがとうございます
Declare PtrSafe Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long
と自分は、戻り値4バイトを使っているので負の数字はなさそうです
結果的に32768で問題なさそうなのでこれで行きます
いつもいろいろありがとうございます
これからもよろしくお願いいたします
No.2
- 回答日時:
こんばんは
GetAsyncKeyStateはキー(またはマウス)を指定して問い合わせますので、返される値は限定的です。
戻り値はInteger(=2バイト)で、最上位ビットと最下位ビットのみに意味があり、それぞれのビットの組み合わせの4種類の値のどれかが、その時の状態によって返されることになります。
https://www.tokovalue.jp/function/GetAsyncKeySta …
https://vbabeginner.net/getasynckeystate/
繰り返して呼び出すことに関しては、No1様のご指摘にある通りかと。
ご返信、ありがとうございます
Declare PtrSafe Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Long
と自分は、戻り値4バイトを使っているので負の数字はなさそうです
結果的に32768で問題なさそうなのでこれで行きます
いつもいろいろありがとうございます
これからもよろしくお願いいたします
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vba GetAsyncKeyState関数について 1 2023/08/24 12:08
- Visual Basic(VBA) excel VBAでメールを送る方法について 2 2021/11/03 15:34
- Visual Basic(VBA) Excel VBAでフォルダ内の全テキストファイルの任意データを取得について 7 2021/12/18 16:00
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) シート名をフォルダ名に変更 1 2021/12/01 15:59
- Visual Basic(VBA) シート名でファイル検索する 2 2021/11/30 17:05
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) Excel vba で条件分岐 1 2021/11/01 09:36
- Visual Basic(VBA) 空のシートに関数を入れたい 2 2021/12/03 15:08
- Visual Basic(VBA) VBA excelからメールを送る方法について 1 2021/11/03 11:30
このQ&Aを見た人はこんなQ&Aも見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
Windows 11 Pro での、VBAのCode書き換えで、1点お教え願います。
Visual Basic(VBA)
-
プログラマーがHTMLとCSSでウェブデザインをするのは大人の幼稚園なんじゃないかと思い込んでる
その他(プログラミング・Web制作)
-
vba GetAsyncKeyState関数について
Visual Basic(VBA)
-
-
4
VisualStudio2022をマクロみたいに自動プログラムを作成する方法を教えてください。
Visual Basic(VBA)
-
5
(マクロ)コピー貼付のマクロで、クリップボードに何も貼付ていな時の実行をエラーにしない為には
Visual Basic(VBA)
-
6
csvファイルを列数ごとに分割するExcelマクロが書けずに困っています
Visual Basic(VBA)
-
7
環境依存文字?をEnumで定義したい
Visual Basic(VBA)
-
8
VBEを開くのにコマンド名が「Visual Basic」な理由はなぜ?
Visual Basic(VBA)
-
9
VBA 同じ名前のオブジェクトを選択したいのですが
Visual Basic(VBA)
-
10
一つのフォルダーに50個のエクセルファイルがあります。 各ファイルにはAとBのシートがあります。 5
Visual Basic(VBA)
-
11
vba userFormのSubを標準モジュールから呼び出す方法を教えてください
Visual Basic(VBA)
-
12
VBA 何かしら文字が入っていたら
Visual Basic(VBA)
-
13
VBA とびとびの列を結合させる
Visual Basic(VBA)
-
14
C言語関数違いについて。
C言語・C++・C#
-
15
Excel VBAマクロをマスターするのに、どれ位時間掛かりますか?
Visual Basic(VBA)
-
16
ウェブ、孤立画像を検出する方法
その他(プログラミング・Web制作)
-
17
郵便番号検索APIにてget ElementByTagNameでうまくを取得できない
Visual Basic(VBA)
-
18
引数に数値、文字列の混在
Visual Basic(VBA)
-
19
for 文の 繰り返し処理に使えるのかどうかについて
Visual Basic(VBA)
-
20
VB.netのADOってなんですか?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【医学・人間ドッグは詐欺?】...
-
高3の進研模試について質問です...
-
第一志望の国公立大学がC判定で...
-
「E判定でも受かる A判定でも落...
-
私大共通テスト利用でB判定って...
-
模試で科目不足の判定になって...
-
阪大実戦、まさかのD判定でした...
-
至急です! 河合塾の共通テスト...
-
国立大学E判定でした。 しかし...
-
共通テストリサーチについてで...
-
共通テストを受けたのですが、...
-
高2で結構難易度高めの国公立志...
-
河合塾のバンザイシステムで 愛...
-
河合模試である大学がB判定でし...
-
センター模試で国語は現、古、...
-
明治大学の全学部は英検利用で...
-
ある病原菌を検出する検査法に...
-
共通テストで大失敗しました。
-
国立合格できるでしょうか?
-
高3の駿台模試についての質問で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
模試で科目不足の判定になって...
-
至急です! 河合塾の共通テスト...
-
模試の結果が返って来て教科の...
-
共通テストで大失敗しました。
-
明治大学の全学部は英検利用で...
-
【医学・人間ドッグは詐欺?】...
-
九大機械系の前期と九工大後期...
-
第一志望の国公立大学がC判定で...
-
阪大実戦、まさかのD判定でした...
-
模擬試験で、志望校が学部内で5...
-
武蔵大学の評判を教えて下さい...
-
模試の結果が酷いです
-
埼玉大学経済学部のオススメの...
-
恒等式と方程式の見分け方が分...
-
私大共通テスト利用でB判定って...
-
ある病原菌を検出する検査法に...
-
中身がFALSEなのにTRUEになる
-
マナビジョンの進研模試は私立...
-
高2で結構難易度高めの国公立志...
-
7月に受けた模試でC判定だった...
おすすめ情報