fIsScrollBar is the only thing keeping it from working with the current Access. This is the fix:
'==== Scrollbar constants
Const SB_CTL As Long = 2
Const SB_BOTH As Long = 3
Const SB_VERT As Long = 1 ' &H1 (32 bit)
Const SB_VERT64_0 As Long = 1107296257 ' &H42000001 (64 bit - invisible)
Const SB_VERT64_1 As Long = 1375731713 ' &H52000001 (64 bit - visible)
Const SB_HORZ64_0 As Long = 1107296256 ' &H42000000 (64 bit - invisible)
Const SB_HORZ64_1 As Long = 1375731712 ' &H52000000 (64 bit - visible)
'**** Return Vertical ScrollBar's hWnd
Private Function fIsScrollBar(frm As Form) As Long
Dim hWnd_VSB As Long
Dim hWnd As Long
Dim strCls As String
Dim lngWindowLong As Long
' Default to SORRY - NO Vertical ScrollBar control
' is currently visible for this Form
fIsScrollBar = -1
hWnd = frm.hWnd
' Let's get first Child Window of the FORM
hWnd_VSB = apiGetWindow(hWnd, GW_CHILD)
' Let's walk through every sibling window of the Form until it finds a vertical scroll bar
While hWnd_VSB <> 0 And fIsScrollBar = -1
' Thanks to Terry Kreft for explaining
' why the apiGetParent acll is not required.
' Terry is in a Class by himself!
'If apiGetParent(hWnd_VSB) <> hWnd Then Exit Do
strCls = fGetClassName(hWnd_VSB) 'Get class of this hwnd
If strCls = "scrollBar" Or strCls = "NUIScrollbar" Then 'If it is a scrollbar then see which type it is
'==== Determine if Horizontal or Vertical -- looking for vertical
lngWindowLong = apiGetWindowLong(hWnd_VSB, GWL_STYLE)
If (lngWindowLong And SBS_VERT) Or lngWindowLong = SB_VERT Or lngWindowLong = SB_VERT64_0 Or lngWindowLong = SB_VERT64_1 Then
fIsScrollBar = hWnd_VSB 'Will terminate the loop
End If
End If
' Let's get the NEXT SIBLING Window
hWnd_VSB = apiGetWindow(hWnd_VSB, GW_HWNDNEXT)
Wend
End Function