Если у Стивена открыта и развернута рабочая книга, а затем он открывает одну или несколько дополнительных книг, дополнительные книги выглядят развернутыми, но на самом деле это не так. Левая, нижняя и правая стороны этих дополнительных книг находятся по краям экрана, но верхняя часть ниспадает каскадом вниз, как учетные карточки, смещенные друг относительно друга. Для Стива было бы намного лучше, если бы дополнительные книги открывались либо как меньшая часть окна, либо как полностью развернутые, чтобы он мог затем «восстановить» окна до меньшего размера. Он задается вопросом, есть ли какой-нибудь параметр, который управляет размером окна для этих дополнительных книг при их открытии.

Вы можете довольно легко повлиять на то, что происходит с окном книги, с помощью макросов. Обычно это можно сделать в макросе 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.