Sub Test()
HasSb ActiveSheet.ListBox1, ActiveSheet.Range("C4"), ActiveSheet.Range("D4")
HasSb ActiveSheet.ListBox2, ActiveSheet.Range("C5"), ActiveSheet.Range("D5")
HasSb ActiveSheet.ListBox3, ActiveSheet.Range("C6"), ActiveSheet.Range("D6")
End Sub
Function HasSb(ByVal ListBox As Object, colLB, colSB) As Boolean
Dim IAListBox As IAccessible
Dim c As New CUIAutomation, UIA_elem As IUIAutomationElement, rectLB As tagRECT, rectElem As tagRECT
If ListBox.ListCount = 0 Then Exit Function
Set IAListBox = ListBox
Set UIA_elem = c.ElementFromIAccessible(IAListBox, 0)
rectLB = UIA_elem.CurrentBoundingRectangle
Set UIA_elem = c.ElementFromIAccessible(IAListBox, 1)
rectElem = UIA_elem.CurrentBoundingRectangle
' Debug.Print rectLB.Right, rectElem.Right
colLB.Value = rectLB.Right
colSB.Value = rectElem.Right
End Function