Insert the frame at desired lower left "1.07,24.24" or a getpoint. Pick other corner then work out the X scale and Y scale then insert if you make the Viewport-frame 1 x 1 then scaling is direct difference in X & Y values.
Try this
(defun c:t2c (/ ss sty tht cnt obj)
(setq ss (ssget ":L" '((0 . "*TEXT"))))
(cond (ss
(setq sty (getvar 'textstyle) tht (getvar 'textsize))
(repeat (setq cnt (sslength ss))
(setq obj (vlax-ename->vla-object (ssname ss (setq cnt (1- cnt)))))
(mapcar '(lambda (x y) (vlax-put obj x y)) (list 'stylename 'height) (list sty tht))
);end_repeat
)
);end_cond
(princ)
);end_defun
This will not override any formatted mtext and will use the current textstyle and textsize as defined by the system variables of the same name.
Whilst this is Vlisp there should be the same function in VBA there are multiple file options like directory or dwg name only.
Also (getvar 'dwgname ) (getvar 'dwgprefix)