Установка размера окна программы в макросе (Microsoft Excel)
Кристоферу нужно в макросе установить размер окна программы 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 [Установка размера окна программы в макросе]
.