Кристоферу нужно в макросе установить размер окна программы Excel. Он знает, как установить размер рабочего листа в окне программы, но это не то, что ему нужно. Ему интересно, как он может установить общий размер окна программы, а также убедиться, что он не устанавливает его больше, чем фактический размер экрана пользователя.

Это можно сделать довольно легко, если знать, какие объекты и свойства использовать в макросе. Объект, который вы хотите использовать, — это объект Application, который относится к приложению Excel. Вот соответствующие свойства:

Верх. * Пиксель экрана, на котором должен быть размещен верхний край окна приложения.

Слева. * Пиксель экрана, на котором следует разместить левый край окна приложения.

Ширина. * Ширина окна приложения в пикселях.

Высота. * Высота окна приложения в пикселях.

Имея это в виду, вы можете установить положение и размер окна программы следующим образом:

Sub SetWindowSize1()

Application.WindowState = xlNormal     Application.Top = 25     Application.Left = 25     Application.Width = 300     Application.Height = 200 End 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      ' Distance from left     iStartY = 25      ' Distance from top     iDesiredWidth = 1000     iDesiredHeight = 500

With Application         .WindowState = xlMaximized         iMaxWidth = Application.Width         iMaxHeight = Application.Height

' Adjust for starting point         iMaxWidth = iMaxWidth - iStartX         iMaxHeight = iMaxHeight - iStartY         If iDesiredWidth > iMaxWidth Then             iDesiredWidth = iMaxWidth         End If         If iDesiredHeight > iMaxHeight Then             iDesiredHeight = iMaxHeight         End If

.WindowState = xlNormal         .Top = iStartY         .Left = iStartX         .Width = iDesiredWidth         .Height = iDesiredHeight     End With End Sub

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (10938) применим к Microsoft Excel 97, 2000, 2002 и 2003.

Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

link: / excelribbon-Setting_Program_Window_Size_in_a_Macro [Установка размера окна программы в макросе].