Управление размером окна при открытии дополнительных книг (Microsoft Excel)
Если у Стивена открыта и развернута рабочая книга, а затем он открывает одну или несколько дополнительных книг, дополнительные книги выглядят развернутыми, но на самом деле это не так. Левая, нижняя и правая стороны этих дополнительных книг находятся по краям экрана, но верхняя часть ниспадает каскадом вниз, как учетные карточки, смещенные друг относительно друга. Для Стива было бы намного лучше, если бы дополнительные книги открывались либо как меньшая часть окна, либо как полностью развернутые, чтобы он мог затем «восстановить» окна до меньшего размера. Он задается вопросом, есть ли какой-нибудь параметр, который управляет размером окна для этих дополнительных книг при их открытии.
Вы можете довольно легко повлиять на то, что происходит с окном книги, с помощью макросов. Обычно это можно сделать в макросе Workbook_Open, который является обработчиком событий в объекте ThisWorkbook. Вот очень простая версия, которая просто проверяет, что окно развернуто:
Public Sub WorkBook_Open() Application.WindowState = xlMaximized End Sub
Затем вы можете, если хотите, вручную настроить размер развернутого окна.
Конечно, вы также можете «встроить» макрос, чтобы он манипулировал окном другими способами. Например, следующий макрос определяет максимальный размер экрана монитора, на котором открывается книга, а затем регулирует размер окна, чтобы он занимал 72% ширины экрана и 96% высоты экрана.
Public Sub WorkBook_Open() Dim iMaxWidth As Integer 'Screen width (pixels) Dim iMaxHeight As Integer 'Screen height (pixels) Dim sngStartX As Single 'Upper-left corner of desired window Dim sngStartY As Single 'Upper-left corner of desired window Dim sngWidth As Single 'Width of desired window Dim sngHeight As Single 'Height of desired window 'Specifications for final window size sngStartX = 0.14 'Fraction of screen width from left edge sngStartY = 0.02 'Fraction of screen height from top sngWidth = 0.72 'Fraction of screen width desired sngHeight = 0.96 'Fraction of screen height desired With Application 'Maximize screen in order to grab maximum width and height .WindowState = xlMaximized iMaxWidth = .Width iMaxHeight = .Height .WindowState = xlNormal 'Set final window position and size .Top = iMaxHeight sngStartY .Left = iMaxWidth sngStartX .Width = sngWidth iMaxWidth .Height = sngHeight iMaxHeight End With End Sub
Вы, конечно, можете настроить параметры двух переменных (sngWidth и sngHeight), чтобы выбрать другой конечный размер экрана. Вы также можете настроить параметры в переменных sngStartX и sngStartY, чтобы указать положение верхнего левого угла конечного окна.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (4975) применим к Microsoft Excel 2007, 2010, 2013 и 2016.