as usual, quick, dirty, untested. Own risk, blahblahblah
Option Explicit
Public Sub blkCent()
Dim minExt As Variant
Dim maxExt As Variant
Dim pntCent(0 To 2) As Double
lineObj.GetBoundingBox minExt, maxExt
Dim strSet As String
Dim strSetName As String
Dim intGroup(0) As Integer
Dim varGroup(0) As Variant
Dim objSelSet As AcadSelectionSet
Dim objSelSets As AcadSelectionSets
Dim strBlkName As String
Dim objBlkRef As AcadBlockReference
Dim objEnt As AcadEntity
Dim intCnt As Integer
Set objSelSets = ThisDrawing.SelectionSets
strSetName = 1
intGroup(0) = 0
varGroup(0) = "insert"
KillSet strSetName
Set objSelSet = objSelSets.Add(strSetName)
objSelSet.Select acSelectionSetAll, , , intGroup, varGroup
For Each objEnt In objSelSet
If TypeOf objEnt Is AcadBlockReference Then
objBlkRef = objEnt
objBlkRef.GetBoundingBox minExt, maxExt
pntCent(0) = (minExt(0) + maxExt(0)) / 2
pntCent(1) = (minExt(1) + maxExt(1)) / 2
pntCent(2) = (minExt(2) + maxExt(2)) / 2
End If
Next objEnt
End Sub
Function KillSet(strSet As String)
Dim objSelSet As AcadSelectionSet
Dim objSelSets As AcadSelectionSets
Set objSelSets = ThisDrawing.SelectionSets
For Each objSelSet In objSelSets
If objSelSet.Name = strSet Then
ThisDrawing.SelectionSets.Item(strSet).Delete
Exit For
End If
Next
End Function