Perhaps try something like this:
(defun c:enb ( / acblk acdoc obj sel )
(vl-load-com)
(setq acdoc (vla-get-activedocument (vlax-get-acad-object))
acblk (vla-get-blocks acdoc)
)
(while
(progn (setvar 'ERRNO 0) (setq sel (nentsel))
(cond
( (= 7 (getvar 'ERRNO))
(princ "\nMissed, Try Again.")
)
( (vl-consp sel)
(if
(and
(= 4 (length sel))
(< 1 (length (last sel)))
)
(progn
(setq obj (vlax-ename->vla-object (car (last sel))))
(DeleteNestedBlock acblk
(strcase
(if (vlax-property-available-p obj 'effectivename)
(vla-get-effectivename obj)
(vla-get-name obj)
)
)
)
(vla-regen acdoc acactiveviewport) t
)
(princ "\nPlease select a Nested Block.")
)
)
)
)
)
(princ)
)
(defun DeleteNestedBlock ( blocks name )
(vlax-for block blocks
(if
(and
(eq :vlax-false (vla-get-isxref block))
(eq :vlax-false (vla-get-islayout block))
)
(vlax-for obj block
(if
(and
(eq "AcDbBlockReference" (vla-get-objectname obj))
(or
(and
(vlax-property-available-p obj 'effectivename)
(eq name (strcase (vla-get-effectivename obj)))
)
(eq name (strcase (vla-get-name obj)))
)
)
(vl-catch-all-apply 'vla-delete (list obj))
)
)
)
)
)