you should try using ActiveX in place of entmake this list function will add your text for you
and return a VBA text object
Code:
;;(VbaAddText "text" (list x y z) 4 4)
;;By John W Anstaett 10/13/05
;;This function add a text object to modelspace
;; myText = the text to use
;; myPoint = list of the point
;; myHight = the text hight
;; myJustification = the Alignment
;;Alignment
;;acAlignment enum; read-write
;;acAlignmentLeft = 0
;;acAlignmentCenter = 1
;;acAlignmentRight = 2
;;acAlignmentAligned = 3
;;acAlignmentMiddle = 4
;;acAlignmentFit = 5
;;acAlignmentTopLeft = 6
;;acAlignmentTopCenter = 7
;;acAlignmentTopRight = 8
;;acAlignmentMiddleLeft = 9
;;acAlignmentMiddleCenter = 10
;;acAlignmentMiddleRight = 11
;;acAlignmentBottomLeft = 12
;;acAlignmentBottomCenter = 13
;;acAlignmentBottomRight = 14
;; the function return the textobj as a vbaobject
;; so you can use make other change to the object
;;Exp:
;;(vla-put-layer myreturn "layername")
;;(vla-put-width myreturn 0.5)
;;(vla-put-textstyle myreturn "newstyle")
(vl-load-com)
;;This function loads the extended AutoLISP functions provided
;;with Visual LISP. The Visual LISP extensions implement ActiveX
;;and AutoCAD reactor support through AutoLISP, and also provide
;;ActiveX utility and data conversion functions, dictionary handling
;;functions, and curve measurement functions.
;;If the extensions are already loaded, vl-load-com does nothing
(defun VbaAddText (myText myPoint myHight MyJustification / acadObject acadDocument myss myas myc vlss)
(setq acadObject (vlax-get-acad-object));get Autocad object
(setq acadDocument (vla-get-ActiveDocument acadObject));get the Activedocument object
(setq acadModelSpace (VLA-GET-MODELSPACE acadDocument));get the modelspace block
(setq mytextObj (vla-addtext acadModelSpace mytext (vlax-3d-point myPoint) myhight));add text
(vla-put-Alignment mytextObj myJustification);set text Justification
(setq mytextObj myTextobj);retrun the text object
)