Перейти к содержимому

Максимизация окна программы Excel 2010-2016 при открытии

Автоматическая максимизации окна программы Excel при открытии первого файла. Разворачивание окна первой открытой книги на весь экран по умолчанию.

Впервые проблемы с максимизацией окна Excel при открытии стали возникать, начиная с версии 2010 года. Несмотря на то, что файлы сохранялись развернутыми на весь экран, повторно они открывались в наполовину свернутом виде в верхней части экрана. Естественно, приходилось каждый раз окно программы Excel разворачивать вручную.

Недавно у меня такая же проблема возникла с Excel 2016 при одном отличии: окно программы открывалось свернутым в квадрат в правой части экрана.

Решение было найдено на одном из иностранных форумов. Заключается оно в том, что в персональную (личную) книгу макросов PERSONAL.XLSB, которая автоматически загружается при запуске Excel, необходимо поместить код, максимизирующий окно приложения. Если у вас нет персональной книги макросов, ее надо создать.

Максимизация окна Excel при открытии

Чтобы добавить код максимизации окна Excel при открытии, необходимо выполнить следующие действия:

1. Открыть любую книгу Excel, можно новую.

2. Сочетанием клавиш левая клавиша Alt+F11 открыть редактор Visual Basic for Applications.

Окно редактора 1
3. Дважды кликнуть на строке «VBA Project (PERSONAL.XLSB)» или один раз на крестике слева для открытия вложенного списка. Если эта позиция уже развернута, переходим к пункту 4.

Окно редактора 2
4. Дважды кликнуть на строке «Microsoft Excel Objects» или один раз на крестике слева для открытия списка объектов. Если эта позиция уже развернута, переходим к пункту 5.

Окно редактора 3
5. Дважды кликнуть на строке «ЭтаКнига» для открытия модуля книги.

Окно редактора 4
6. Скопировать и вставить в окно модуля книги следующий код:

Private Sub Workbook_Open()
  Application.WindowState = xlMaximized
End Sub

Окно редактора 5

7. Сохранить изменения.

Теперь программа Excel при открытии будет автоматически разворачивать свое окно на весь экран.

Что делать, если код не работает?

У меня в Excel 2016 через некоторое время приведенный выше код перестал работать правильно. При открытии первого файла вначале стала открываться личная книга макросов PERSONAL.XLSB в развернутом окне и после этого рабочая книга во втором свернутом окне. Проблема была решена небольшой модификацией кода:

Private Sub Workbook_WindowActivate(ByVal Wn As Window)
  Application.WindowState = xlMaximized
End Sub

Замените код в персональной книге макросов, если у вас произойдет подобное.

Максимизация окна программы Excel 2010-2016 при открытии: 8 комментариев

  1. Владимир

    Добрый день.
    Спасибо за приведенный вариант решения проблемы.
    Сориентируйте, пожалуйста, как я могу убрать Код?: я проделал все, как вы рекомендовали выше и Excel перестал открываться. Как я могу это исправить?
    Спасибо.

  2. Евгений (автор статьи)

    Здравствуйте, Владимир.
    Скорее всего это не из-за кода, если вы его в точности скопировали. Удалить код можно, но вместе с личной книгой макросов.
    Она расположена в папке C:\Пользователи\Имя_пользователя\AppData\Roaming\Microsoft\Excel\XLSTART.
    Удалите файл PERSONAL.XLSB или переместите его в другое место.
    Папка AppData скрытая, поэтому в «Параметрах папок» должно стоять разрешение на показ скрытых папок, то есть выбрана строка «Показывать скрытые файлы, папки и диски».

  3. Анатолий

    Здравствуйте.

    Воспользовался советом, помогло. Однако через пару дней проблема вернулась, хотя я ничего не менял в коде. Перепроверил, все на месте, все то же самое.

    Есть какие-то мысли по этому поводу?

  4. Евгений (автор статьи)

    Здравствуйте, Анатолий!
    У меня в Excel 2010 первый код из статьи работал отлично. В версии 2016 года перестал. Заменил его на второй, первое время работал нормально, потом тоже с перебоями.
    После вашего комментария вставил оба кода в модуль «ЭтаКнига» персональной книги макросов:

    Private Sub Workbook_Activate()
        Application.WindowState = xlMaximized
    End Sub
    Private Sub Workbook_Open()
        Application.WindowState = xlMaximized
    End Sub
    

    Вроде работает.
    И еще вариант:

    Private Sub Workbook_WindowActivate(ByVal Wn As Window)
         Application.WindowState = xlMaximized
    End Sub
    

    Тоже вроде работает, но для полной проверки нужно время. Я оставил для тестирования последний вариант.

  5. Сергей

    Здравствуйте.
    Спасибо вам за ваши рецепты, иногда очень выручают.
    Сейчас есть такая проблема: если уже открыта одна книга Excel и она находится в свернутом виде, то при открытии еще одной книги сначала разворачивается первая и поверх нее открывается вторая. Это очень мешает, когда работаешь с другим приложением в паре с экселем и все расположения окон настроены друг под друга.
    Попробовал ваш код, заменив xlMaximized на xlWindowStateMinimize, но не добился успеха, видимо надо как-то указать, что речь идет об уже открытой книге - не подскажете как это сделать?

    1. Евгений (автор статьи)

      Добрый день, Сергей!
      Можно закомментировать или удалить код разворачивания окна в модуле ЭтаКнига PERSONAL.XLSB, а следующий код разместить в модулях ЭтаКнига всех рабочих книг:

      Private Sub Workbook_Open()
         ActiveWindow.WindowState = xlMaximized
      End Sub
      

      В этом случае только открываемая книга развернется на весь экран. Свернутые окна открытых книг останутся без изменений, а окна, свернутые в значок, раскроются до свернутых окон.

  6. Сергей

    Оу... Получается, нельзя отключить это разворачивание централизовано для всех книг? Надо каждую книгу настраивать индивидуально персональным макросом? Это, конечно, кошмар... Очень неудобная функция. Постараюсь довести информацию до производителя.
    Спасибо вам, Евгений!

Добавить комментарий

Ваш комментарий будет опубликован после прохождения обязательной модерации. Исходящие ссылки не допускаются. Время модерации составит от нескольких минут до нескольких часов в зависимости от времени суток и занятости модератора. При добавлении в комментарий кода VBA Excel, вставьте перед его началом тег [vb] и по окончании кода - [/vb].