---------------------------------------------------
Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As LongPtr, ByVal wMsg As LongPtr, ByVal wParam As LongPtr, lParam As Any) As LongPtr
Public Const WM_SETTEXT = &HC
Private Declare PtrSafe Function FindWindow Lib "user32" _
Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As LongPtr
Declare PtrSafe Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" _
(ByVal hwndParent As LongPtr, ByVal hwndChildAfter As LongPtr, _
ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Sub hogeInput()
'メモ帳を起動して、hogeと入力する。
Dim hwndParent As Long '親のウィンドウハンドル
Dim hwndChild As Long '子のウィンドウハンドル
Dim lngRc As Long 'APIの戻り値
Dim taskID As Double
taskID = Shell("notepad.exe", vbNormalFocus)
Application.Wait [Now() + TimeValue("00:00:00.1")]
hwndParent = FindWindow("notepad", vbNullString)
hwndChild = FindWindowEx(hwndParent, 0, "Edit", "") '子ウィンドウのEdit
lngRc = SendMessage(hwndChild, WM_SETTEXT, 0, ByVal "hoge")
End Sub
---------------------------------------------------
・windows10(64bit)用コードです。32bitの場合は、declareのところの「PtrSafe」が不要であり、かつ、LongPtrはPtrをとってLongとします。
・Shell関数Shell(pathname[,windowstyle])
pathname:原則、フルパスを指定する。例外として、PATHが通っているフォルダのアプリ(メモ帳など)は、アプリ名のみでOK。
windowstyle:ウィンドウの最大化・最小化などを指定できる。省略可能。
戻り値:アプリのタスクID。
・SendMessageの戻り値を受け取るために「lngRc =」としています。これがないとエラーがでました。
・SendMessageの第4引数に「ByVal」をつけないと文字化けします。