It's been more than
seven years since your post, Pog1. That bug is still here in MS Excel 360 for Mac in 2023. It seems that when one sets the ActiveWindow.Left property, it sets the Left property (good), then also uses the value previously used to set some other property (that was just hanging around) to alter the Top property (bad). In addition,
setting the Top property to X puts the top of the window somewhere near X-200 pixels from the top of your screen (okay). However,
getting the Top property returns a value that reflects the position of the bottom of the window from the bottom of your screen (huh?). So if you wanted to position a window B so that its top matches the top of a window A, you can't get the Top from window A and use that value to set the Top of Window B (yikes!)
Here's my workaround for positioning a window using VBA:
With ActiveWindow
.Height = 300
.Width = 400
.Left = <left position>
.Top = <top position>
.Height = <height value>
.Width = <width value>
End With
First, we small-ify the window so that the following moves don't make the window go off the screen. (Going off the screen messes up positioning.) Then, we position the left side of the window, which works for the left side of the window, but botches the location of the top of the window. Then, we position the top of the window, covering up the bug in the previous step. Finally, we set the desired height and width. Also, I think Application.ScreenUpdating must be True during this, but I'm not sure.