Кристоферу нужно в макросе установить размер окна программы Excel. Он знает, как установить размер рабочего листа в окне программы, но это не то, что ему нужно. Ему интересно, как он может установить общий размер окна программы, а также убедиться, что он не устанавливает его больше, чем фактический размер экрана пользователя.
Это можно сделать довольно легко, если кто-то знает какие объекты и свойства использовать в вашем макросе. Объект, который вы хотите использовать, – это объект Application, который относится к приложению Excel. Вот соответствующие свойства:
- Top. Пиксель экрана, на котором должен быть размещен верхний край окна приложения.
- Left. Пиксель экрана, на котором должен быть размещен левый край окна приложения.
- Ширина. Ширина окна приложения в пикселях.
- Высота. Высота окна приложения в пикселях.
Имея это в виду, вы можете установить положение и размер окна программы следующим образом:
Sub SetWindowSize1 () Application.WindowState = xlNormal Application.Top = 25 Application .Left = 25 Application.Width = 300 Application.Height = 200End Sub
Этот макрос определяет, что левый верхний угол окна программы составляет 25 пикселей от верхнего края экрана и 25 пикселей от в левой части экрана. Затем окно программы устанавливается на 300 пикселей в ширину и 200 пикселей в высоту. Также обратите внимание на установку свойства WindowState в первом макросе. Это устанавливает окно в «нормальное» состояние, то есть такое, которое может быть изменено на что-то большее, чем минимизированное, и меньшее, чем развернутое. (Если вы хотите, чтобы окно программы Excel занимало весь экран, просто установите для свойства WindowState значение xlMaximized и забудьте остальные настройки в макросе.)
Конечно, этот макрос устанавливает Excel окно программы должно быть достаточно маленьким. Скорее всего, вы захотите, чтобы он был больше, но вы не хотите, чтобы он был больше, чем размер экрана пользователя. Самый простой способ определить размер экрана пользователя – просто развернуть окно приложения Excel и затем просмотреть свойства «Ширина» и «Высота». Затем вы можете отрегулировать эти цифры в зависимости от того, где вы хотите, чтобы был верхний левый угол экрана, а затем отрегулировать соответствующим образом.
В качестве примера предположим, что вы хотите, чтобы окно программы начиналось с 25, 50, и вы хотите, чтобы он был 1000 x 500. Вы можете использовать код, подобный следующему:
Sub SetWindowSize2 () Dim iMaxWidth As Integer Dim iMaxHeight As Integer Dim iStartX As Integer Dim iStartY As Integer Dim iDesiredWidth As Integer Dim iDesiredHeight As Integer iStartX = 50 'Расстояние слева iStartY = 25' Расстояние сверху iDesiredWidth = 1000 iDesiredHeight = 500 С приложением .WindowState = xlMaximized iMaxWidth = Application.Width iMaxHeight = Application. Высота 'Отрегулируйте для начальной точки iMaxWidth = iMaxWidth - iStartX iMaxHeight = iMaxHeight - iStartY Если iDesiredWidth> iMaxWidth Тогда iDesiredWidth = iMaxWidth Конец Если iDesiredHeight> iMaxHeight Тогда iDesiredHeight = iMax. = iDesiredWidth .Height = iDesiredHeight End WithEnd Sub