Если вы используете этот файл самостоятельно и всегда в одном и том же формате, вы можете использовать некоторые ярлыки.
left
для основного монитора = 0. Если дополнительный монитор находится слева от основного монитора, то для left
будет некоторое число <0 (зависит от разрешения).<BR> Если вторичный находится справа, тогда left
отметка начала вторичного монитора будет left
+ width
окна Excel (если оно развернуто).
Предполагая, что вспомогательный монитор находится слева
Это должно хорошо работать
Option Explicit
Public Sub NewWbk()
Dim Exl As Excel.Application
Set Exl = New Excel.Application
'here you'll need to change to open your file instead of adding new empty file
Exl.Workbooks.Add
Exl.Visible = True
With Exl.Application
.WindowState = xlNormal 'can't move maximized window
.Left = -500 'should work on most resolutions
.WindowState = xlMaximized
End With
End Sub
Но это очень ненадежное решение и может работать некорректно во многих случаях.Вам следует использовать вызовы API, проверить количество мониторов, проверить, на каком мониторе отображается ваше приложение, и решить, где открыть новый файл.
Посмотрите Здесь