Here's something to mull over:
(defun c:younameit (/ clr ss ss->list)
(defun ss->list (ss / e n out)
(setq n -1)
(if (= (type ss) 'pickset)
(while (setq e (ssname ss (setq n (1+ n)))) (setq out (cons (vlax-ename->vla-object e) out)))
)
)
(if (and (setq clr (acad_colordlg 1)) (setq ss (ssget ":L" '((0 . "dimension")))))
(foreach dim (ss->list ss) (vlax-put dim 'textfillcolor clr) (vlax-put dim 'textfill -1))
)
(princ)
)