[[20200605082223]] 『別アプリのリストビューのリストをクリックしたい』(はち) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『別アプリのリストビューのリストをクリックしたい』(はち)

VBAから別アプリのリストビューの中をクリックしたいのですがやり方がわかりません。

現在、別アプリの「メインウィンドウ」内のリストビューのハンドルまでが取得できています。

ここからリストビュー内にある「A0123」「B4567」をクリックさせたいのです。
どなたかお分かりになる方、教えていただけますでしょうか。

 'API
 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 hWndParent As Long, ByVal hWndChildAfter As Long, ByVal lpClassName As String, ByVal lpWindowName As String) As Long

 'ListViewのハンドル取得
 Private Function GetSysLVHwnd() As Long
   Dim h As Long
   h = FindWindow(vbNullString, "メインウィンドウ")
   GetSysLVHwnd = FindWindowEx(h, 0, "SysListView32", vbNullString)
 End Function

< 使用 Excel:Excel2016、使用 OS:Windows10 >


SetForegroundWindowで前面表示して、
クリックさせる動作をキーボード入力で再現できるなら、
Sendkeyやkeybd_eventを使う。
(mm) 2020/06/05(金) 11:30

mmさん回答いただきありがとうございます。
試してみましたが、キーボードによる入力(選択)はできませんでした。
(はち) 2020/06/05(金) 12:17

TABキーやENTERキーやファンクションキー等の組み合わせでも反応しないということですね
(mm) 2020/06/05(金) 13:46

mmさん回答いただきありがとうございます。
はい。その通りです。クリック以外は受け付けてくれないようでした。
(はち) 2020/06/05(金) 14:13

ボタンの位置が常に一定であれ、その位置にマウスを移動し(SetCursorPos)、クリックさせる(mouse_event)。マウスカーソルの位置はGetCursorPosで取得

(mm) 2020/06/05(金) 14:57


mmさん回答いただきありがとうございます。
いろいろ試していたため、返信が遅くなり申し訳ございません。

リストビュー内のクリックしたいものおよびリストそのものが都度変わること、
また、表示しきれていないものをホイールを回して表示させてからクリックと
なることもあり、GetCursorPosではどうにもできませんでした。
(はち) 2020/06/05(金) 17:19


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.