They must work in 64-bit Excel
Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
(ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, ByVal lpsz1 As String, _
ByVal lpsz2 As String) As LongPtr
Private Declare PtrSafe Function IIDFromString Lib "ole32" _
(ByVal lpsz As LongPtr, ByRef lpiid As GUID) As LongPtr
Private Declare PtrSafe Function AccessibleObjectFromWindow Lib "oleacc" _
(ByVal Hwnd As LongPtr, ByVal dwId As LongPtr, ByRef riid As GUID, _
ByRef ppvObject As Object) As LongPtr
If you need it to work on both devices, you can use the following #If VBA7
'64 bit declares here
#Else
'32 bit declares here
A good resource for PtrSafe Win32 API declarations can be found here: Win32API_PtrSafe.txt
I'm not quite sure about IIDFromStringand AccessibleObjectFromWindow, but I think they should be subsinstead functions. And it lpszshould be Stringas shown below. Maybe someone can confirm this?
Private Declare PtrSafe Sub IIDFromString Lib "ole32" ( _
ByVal lpsz As String, ByRef lpiid As GUID)
Private Declare PtrSafe Sub AccessibleObjectFromWindow Lib "oleacc" _
(ByVal Hwnd As LongPtr, ByVal dwId As LongPtr, ByRef riid As GUID, _
ByRef ppvObject As Object)