it's possible
but let me warn you first: not every object supports "length" property. thus not filtering the selectionset may result in unexpected errors
if you want to go on selecting everything anyway, look into my code more carefully: I did not use "SelectOnScreen" method
Also look through the online AutoCAD ActiveX and VBA Reference "SelectionSet object " topic, you'll find:
Select Method
Selects objects and places them into a selection set.
Signature
object.Select Mode[, Point1][, Point2][, FilterType][, FilterData]
Object
SelectionSet
The object this method applies to.
Mode
AcSelect enum; input-only
acSelectionSetWindow
acSelectionSetCrossing
acSelectionSetPrevious
acSelectionSetLast
acSelectionSetAll
Point1
Variant (array of doubles); input-only; optional
The 3D WCS coordinates, or array of coordinates, specifying Point1. See the mode definitions for the proper use of Point1.
Point2
Variant (three-element array of doubles); input-only; optional
The 3D WCS coordinates specifying Point2. See the mode definitions for the proper use of Point2.
FilterType
Integer; input-only; optional
A DXF group code specifying the type of filter to use.
FilterData
Variant; input-only; optional
The value to filter on.
Remarks
This method supports the filtering mechanism.
The following selection modes are available:
Window
Selects all objects completely inside a rectangular area whose corners are defined by Point1 and Point2.
Crossing
Selects objects within and crossing a rectangular area whose corners are defined by Point1 and Point2.
Previous
Selects the most recent selection set. This mode is ignored if you switch between paper space and model space and attempt to use the selection set.
Last
Selects the most recently created visible objects.
All
Selects all objects.
For more selection mode options, see the SelectByPolygon, SelectAtPoint, and SelectOnScreen methods.
and you'll also find the following example
Sub Example_Select()
' This example adds members to a selection set, first by crossing and
' then by filtering for circles.
' Create the selection set
Dim ssetObj As AcadSelectionSet
Set ssetObj = ThisDrawing.SelectionSets.Add("SSET")
' Add all object to the selection set that lie within a crossing of (28,17,0) and
' (-3.3, -3.6,0)
Dim mode As Integer
Dim corner1(0 To 2) As Double
Dim corner2(0 To 2) As Double
mode = acSelectionSetCrossing
corner1(0) = 28: corner1(1) = 17: corner1(2) = 0
corner2(0) = -3.3: corner2(1) = -3.6: corner2(2) = 0
ssetObj.Select mode, corner1, corner2
' Add all the Circles to the selection set that lie within the crossing of (28,17,0) and
' (-3.3, -3.6,0) by filtering from the current drawing
Dim gpCode(0) As Integer
Dim dataValue(0) As Variant
gpCode(0) = 0
dataValue(0) = "Circle"
Dim groupCode As Variant, dataCode As Variant
groupCode = gpCode
dataCode = dataValue
ssetObj.Select mode, corner1, corner2, groupCode, dataCode
End Sub