Mayby an example from some code I wrote can help you in finding your problem...

sorry I've commented it in my native language.

And looking at the code I seem to remember I had to use variant due to a Quirck in the Acad VBA model involving Getboundingbox

`Function LimitsSelSet(Selset As AcadSelectionSet) As Variant`

Dim Ent As AcadEntity

Dim LL As Variant

Dim UR As Variant

Dim Limits(0 To 1, 0 To 2) As Double

Limits(0, 0) = -0.0000000000001

For Each Ent In Selset

If Left$(Ent.ObjectName, 7) <> "AcDbDim" And Ent.ObjectName <> "AcDbAttributeDefinition" _

And Ent.ObjectName <> "AcDBText" Then 'negeer dimensies attributen en texten

Ent.GetBoundingBox LL, UR

If Limits(0, 0) = -0.0000000000001 Then 'init upperleft, lowerright

Limits(0, 0) = LL(0): Limits(0, 1) = LL(1): Limits(0, 2) = LL(2)

Limits(1, 0) = UR(0): Limits(1, 1) = UR(1): Limits(1, 2) = UR(2)

Else 'get boundingbox selectionset

If Limits(0, 0) > LL(0) Then Limits(0, 0) = LL(0)

If Limits(0, 1) > LL(1) Then Limits(0, 1) = LL(1)

If Limits(0, 2) > LL(2) Then Limits(0, 2) = LL(2)

If Limits(1, 0) < UR(0) Then Limits(1, 0) = UR(0)

If Limits(1, 1) < UR(1) Then Limits(1, 1) = UR(1)

If Limits(1, 2) < UR(2) Then Limits(1, 2) = UR(2)

End If

End If

Next Ent

LimitsSelSet = Limits

End Function

Good Luck.