現在、WinAPIを勉強しており、練習としてVBAを用いて、電卓アプリのボタンをクリックしようとしています。
キーを送るのではなく、クリックで行いたいたいと
考えています。
ボタンのハンドルを取得するところまではできましたが、sendMessageでクリックできず、EditBoxに数字が
入りません。
どのようにすればよいのかご教授ください。
よろしくお願い致します。
環境:
WinXP home、 Excel2002、Win付属アプリの電卓v5.1
---作成したプログラム----
'標準モジュールの中身
Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hWnd As Long) As Long
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Sub Main()
Dim lngWindWnd As Long 'ウィンドウハンドル
Dim ret As Long
Dim hCalc As Long
'アプリケーションタイトルより、ウィンドウハンドルを得ます
lngWindWnd = FindWindow(vbNullString, "電卓")
'8ボタンのハンドル(確実に取れていることを確認
hCalc = FindWindowEx(lngWindWnd, 0, "Button", "8")
ret = SetForegroundWindow(lngWindWnd)
ret = SendMessage(hCalc, WM_LBUTTONDOWN, 0, 0)
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
ExcelVBAでAPIを使って外部ウインドウのエディットテキストを取得する方法
Visual Basic(VBA)
-
親ウインドウにあるOKボタンを押す方法
Visual Basic(VBA)
-
EnumChildWindowsの使い方(VBA)
Visual Basic(VBA)
-
-
4
VBAでコントロールのハンドルを取得したい
Visual Basic(VBA)
-
5
ウインドウハンドルのつかみ方について質問です。
Visual Basic(VBA)
-
6
他のウィンドウのボタンを自動的に押したい
C言語・C++・C#
-
7
VBA SendMessage 無限ループにどうして無限ループになるんですか
Visual Basic(VBA)
-
8
他アプリケーション’(ウィンドウ)のハンドル取得方法
Visual Basic(VBA)
-
9
他アプリの操作(メニューバー)
Visual Basic(VBA)
-
10
Excel VBAで他アプリケーションの文字列取得
Excel(エクセル)
-
11
他のアプリケーションとの連携
Visual Basic(VBA)
-
12
ウィンドウにキー送信で ENTER を送りたい
Visual Basic(VBA)
-
13
VB.NETのSendMessageを教えてください
Visual Basic(VBA)
-
14
API32 コントロールのEditテキストの文字列の取得・出力について
Visual Basic(VBA)
-
15
今更、VBAでRPA、キーボード操作自動化ってどうやるの?
Visual Basic(VBA)
-
16
WSH or VBの質問
Visual Basic(VBA)
-
17
Alt+P,Alt+NをPostmessageで送るには
Visual Basic(VBA)
-
18
LISTBOXで「他アプリ」を操作する
Visual Basic(VBA)
-
19
SendMessageが失敗するときがある
C言語・C++・C#
-
20
VB.netでFindWindowExやると・・・9222812402616107008!?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カメラスクロールするのを動画...
-
C#で角が丸いテキストボックス
-
vb.netで画面のコントロールId...
-
コントロールを移動できない
-
'ckbl' コントロールは作成され...
-
エクセル・VBA CheckBoxのオブ...
-
エクセルVBAでオプションボタン...
-
VBAのフォームでTextBoxがいっ...
-
間違えて配置してしまったコン...
-
vb.net メニューをダブルクリッ...
-
Excel-VBAでタイマー処理
-
chr関数の呼び出しで「プロ...
-
excelのリストボックスで選択し...
-
VBAのエラーについて、”実行時...
-
USB I/Oのデジタル信号をvbaで...
-
フォーカスの枠線を太くしたい
-
DataGridView、1セルに複数コ...
-
ExcelVBAでListViewが使用できない
-
C#で自分のウインド・ハンド...
-
Excel VBA 動的に作成したチェ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル・VBA CheckBoxのオブ...
-
カメラスクロールするのを動画...
-
vb.netで画面のコントロールId...
-
C#,vb.netで業務用アプリ開発と...
-
EXCELでactivexコントロールを...
-
フォーム上の現在アクティブな...
-
ExcelVBAでListViewが使用できない
-
コンボボックスの文字によるif...
-
C#で角が丸いテキストボックス
-
エクセルVBAでオプションボタン...
-
ユーザーフォームで動的(Me.Con...
-
VBAのフォームでTextBoxがいっ...
-
アクセス特有の書き方?
-
エクセル コントロールツール...
-
間違えて配置してしまったコン...
-
変数をコントロール型で使用す...
-
(VBA)スピンボタンの大量...
-
Labelコントロールの(左右)余...
-
excelのリストボックスで選択し...
-
Excel VBA で Richtextboxを使...
おすすめ情報