The grunt work is done by the ' trans ' function, as that is really the only grunt work done in the code. The ActiveX calls are just to zoom without the zoom command, and to put the scale factor of the viewport, which is already known.
Now that I think of it, this code will only sync viewports that have the same view direction. Didn't think about that before, as I don't usually have different viewports on a sheet anymore. That might take some code, but not sure. You might have to change the UCS of the viewports, and then zoom in on them to have them match.