I do not like the method Haas uses for it's offsets. They recommend setting tools off the top of your workpiece. Doing this results in a negative value, the distance from Z home to the top of the work, being stored as the TLO. Also when you setup on the next part you are going to machine the tool lengths will be wrong. It makes more sense to me to have your tool length be the distance the tool extends from the spindle face. You can do a quick check with a steel rule to verify it's close. I use fixture offsets to tell the machine where the workpiece is located.I agree with you, in school it should be thought how to pick up without any of the setters. That's absolutely so basic to teach that setters should not even be part of beginning classes.
OTOH, since it is a Haas, what exactly are you trying to accomplish with your macro?
A Haas, out of the box, is one of the simplest control to set tools up on and I don't see the purpose of any additional macro.
Unless I am missing something...