While I have never posted to this group before, I have been lurking for a couple of years. I am comfortable with VLisp, including ActiveX extensions for VLisp. I write automation scripts for civil engineering, mostly having to do with aligning viewports, automated plotting and such. Most of our work is in 2D. The drafters have been well-versed in the advantages of command-line based drafting and I don't want to change the way they do their jobs (especially if it means a lot of work for me). Until recently, GUI applications slowed down production, and we have aliased most every standard-issue Autocad command to a three letter (or less) command line alternative. A couple of fairly new developments have made me rethink the use of VLisp, namely the inability to work with LDT points and the .NET API with Autocad 2005. I think it is finally time to learn how to write VBA applications for Autocad. All I would like to know is how to re-write the following simple VLisp functions in VBA. I cannot find any good examples in the VBA help or browsing through this newsgroup. I realize that these functions are extremely simple and don't require VBA or ActiveX, but I plan on building upon them in the future. Example #1: ; Register a command and print a message to the command console (defun C:Hello () (princ " Hello World")(princ)) Example #2: ; Enhance an existing command to reduce keystrokes and enforce standards (defun C:RL () (setvar "clayer" "RL") (command "PLINE" pause "W" 1.0 1.0) (while (= (getvar "cmdnames") "PLINE") (command pause)) (princ) ) Example #3: ; Selection sets and viewports, ala VLisp (defun zoom-viewports ( / SS VP) (setq SS (ssget "X" (list (cons 0 "VIEWPORT")(cons -4 ">")(cons 69 1)))) (while (and SS (> (sslength SS) 0)) (setq VP (entget (ssname SS 0))) (ssdel (ssname SS 0) SS) (setvar "ctab" (cdr (assoc 410 VP))) (command "mspace") (setvar "cvport" (cdr (assoc 69 VP))) (command "ucs" "world" "plan" "current") (command "pspace") (command "regenall") ); end while )