In my opinion, this is still one of my most used functions. A friend wrote it back in R14...and it still rocks all text items todate. I can edit Dtext, Mtext, Dims and Attributes. Many thanks to BSaw.
(defun C:tt ()
(setvar "CMDECHO" 0)
(setq X (entget(car(setq E (entsel)))))
(setq S (cadr E))
(cond ((= (cdr (assoc 0 x)) "INSERT") (command "ddatte" S))
((command "ddedit" s ""))
)
(princ)
)