Based on your idea, you can count all circles on the selected face, but you have to include the outside edge, because 5 of your holes are there.
Unfortunately this count includes also the circle from the base extrude. So you have to subtract 1 manually in this case.
It is not possible to exclude that circle automatically, except you do a lot of calculations if one circle is inside of an other. Sounds simple, but it isn't, think of a rectangle with rounded vertices.
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swSelMgr As SldWorks.SelectionMgr
Dim swFace As SldWorks.Face2
Dim swLoop As SldWorks.Loop2
Dim swEdge As SldWorks.Edge
Dim swCurve As SldWorks.Curve
Dim i As Long, Count As Long
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swSelMgr = swModel.SelectionManager
On Error Resume Next
Set swFace = swSelMgr.GetSelectedObject6(1, -1)
If swFace Is Nothing Then
MsgBox "Select a face and try again"
On Error GoTo 0
Set swLoop = swFace.GetFirstLoop
Do While Not swLoop Is Nothing
vEdges = swLoop.GetEdges
For i = LBound(vEdges) To UBound(vEdges)
Set swEdge = vEdges(i)
Set swCurve = swEdge.GetCurve
If swCurve.IsCircle Then
Count = Count + 1
Set swLoop = swLoop.GetNext
MsgBox "Circles: " & Count