Here is something to delete all at once.....*edit* will NOT bonk out if objects are on a locked layer:
(defun c:delstuff (/ ss)
(if (setq ss (ssget "x" '((0 . "DIMENSION,LEADER,MTEXT"))))
(mapcar
'(lambda (x)
(if (not (equal (vla-get-lock
(vlax-ename->vla-object
(tblobjname "layer" (vla-get-layer x))
)
)
:vlax-true
)
)
(vla-delete x)
)
)
(mapcar 'vlax-ename->vla-object (mapcar 'cadr (ssnamex ss)))
)
)
(princ)
)