this is final code
(defun *error* (msg)
(and uFlag (vla-EndUndoMark doc))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(princ))
(defun c:vpslct (/ n ss)
(vl-load-com)
(setq doc (cond (doc) ((vla-get-ActiveDocument
(vlax-get-Acad-Object))))
spc (if (zerop (vla-get-activespace doc))
(if (= (vla-get-mspace doc) :vlax-true)
(vla-get-modelspace doc)
(vla-get-paperspace doc))
(vla-get-modelspace doc))
time (getvar "millisecs")
n -1
)
(if (setq ss (ssget "_X" '((0 . "VIEWPORT"))))
(while (setq e (ssname ss (setq n (1+ n))))
(vla-put-displaylocked (vlax-ename->vla-object e) :vlax-true)
(vla-put-ViewportOn (vlax-ename->vla-object e) :vlax-true)
)
)
(princ (strcat "\n<< FULL ActiveX took: " (rtos (/ (- (getvar "millisecs") time) 1000.) 2 4) " secs. >>"))
(princ)
)