Установка состояния окна приложения Excel из кода VBA с помощью свойства Application.WindowState. Сворачивание и разворачивание окна. Чтение данных о состоянии окна.
Application.WindowState — это свойство, которое задает или возвращает состояние окна приложения Excel.
Состояние окна приложения Excel задается константой из коллекции XlWindowState, при чтении информации о состоянии окна — свойство Application.WindowState возвращает числовое значение константы.
Свойство Application.WindowState позволяет развернуть окно приложения Excel из кода VBA на весь экран — до максимального размера, свернуть окно «в иконку» или задать ему нормальные размеры, установленные ранее, развернув из свернутого или свернув из максимального.
Синтаксис свойства WindowState объекта Application:
Константы XlWindowState
Константы из коллекции XlWindowState:
Константа | Значение | Описание |
---|---|---|
xlMaximized | -4137 | Максимальное окно (развернуто на весь экран) |
xlMinimized | -4140 | Минимальное окно (свернуто «в иконку») |
xlNormal | -4143 | Нормальное окно (размеры, установленные ранее) |
Пример кода с WindowState
Пример записи и чтения свойства Application.WindowState:
Sub Test() ‘Запись свойства WindowState Application.WindowState = xlMaximized ‘или -4137 ‘Application.WindowState = xlMinimized ‘или -4140 ‘Application.WindowState = xlNormal ‘или -4143 ‘Проверка, в каком состоянии находится окно приложения MsgBox Application.WindowState End Sub |
Попробуйте по очереди задавать разные константы свойству Application.WindowState и смотрите, какое значение будет считано. У меня получились удивительные результаты при выполнении строк кода по очереди, как в примере:
Application.WindowState = xlMinimized
— MsgBox возвращает совсем не -4140;- после первого запуска
Application.WindowState = xlNormal
— окно приложения разворачивается на весь экран, после второго запуска — переходит к нормальному состоянию.
Не удалось мне добиться значения -4140 и при минимизации окна вручную, разместив предварительно следующий код в модуль книги:
Private Sub Workbook_WindowResize(ByVal Wn As Window) MsgBox Application.WindowState End Sub |
Еще раз здравствуйте. Вроде бы нашел что нужно. Но хотелось бы большего)))
Итак. Нашел код который позволяет свернуть UserForm в системный трей. Но никак не могу разобраться что нужно дописать чтобы работала такая реализация:
Запуск формы будет осуществляться из другой книги. Поэтому книга, в которой расположена форма, на экране не должна отображаться, но форма должна отображаться поверх всех остальных окон и информация о запущенной форме должна появиться в панели задач и в системном трее.
Если форма уже на экране, то при щелчке по кнопке на панели задача или в системном трее должна быть активирована форма и привлечь к себе вниманием моргнув.
Если нажимаю на крестик закрытия, то форма не должна закрыться, а должна исчезнуть с экрана и панели задач. При этом значок в системном трее остается.
Что сейчас сделано: форма убирается в системный трей по щелчку на кнопке закрыть, и обратно восстанавливается на экране поверх всех окон. Значок в системном трее соответственно появляется и исчезает (см. приложенный файл)
Куда копать? Мозги уже себе сломал(((
Спасибо
0 / 0 / 0 Регистрация: 02.01.2017 Сообщений: 123 |
|
1 |
|
Сворачивание в трей26.03.2017, 15:18. Показов 1237. Ответов 4
День добрый, друзья. Не подскажете — есть ли такой макрос, чтобы сворачивать окно экселевской книги — в трей. Событие Workbook_Open
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
26.03.2017, 15:18 |
Ответы с готовыми решениями: Сворачивание в трей Сворачивание в трей Сворачивание в трей Сворачивание в трей 4 |
toiai 3217 / 966 / 223 Регистрация: 29.05.2010 Сообщений: 2,085 |
||||
26.03.2017, 17:32 |
2 |
|||
В трей не получится, а вот свернуть на панель можно, вставь в событие Workbook_Open:
0 |
0 / 0 / 0 Регистрация: 02.01.2017 Сообщений: 123 |
|
27.03.2017, 01:16 [ТС] |
3 |
toiai, мне нужно именно в трей, а не на панель.
0 |
Модератор 6792 / 2814 / 527 Регистрация: 24.04.2011 Сообщений: 5,308 Записей в блоге: 10 |
|
27.03.2017, 05:57 |
4 |
lixar21, есть проект для VB6. Попробуйте адаптировать под VBA, самому интересно выйдет или нет?
0 |
0 / 0 / 0 Регистрация: 02.01.2017 Сообщений: 123 |
|
27.03.2017, 13:18 [ТС] |
5 |
Pro_grammer , спасибо.
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
27.03.2017, 13:18 |
5 |
|
|
|
Популярные разделы FAQ: Общие вопросы Особенности VBA-кода Оптимизация VBA-кода Полезные ссылки
1. Старайтесь при создании темы указывать в заголовке или теле сообщения название офисного приложения и (желательно при работе с Office 95/97/2000) его версию. Это значительно сократит количество промежуточных вопросов.
2. Формулируйте вопросы как можно конкретнее, вспоминая (хотя бы иногда) о правилах ВЕЛИКОГО И МОГУЧЕГО РУССКОГО ЯЗЫКА, и не забывая, что краткость — сестра таланта.
3. Не забывайте использовать теги [сode=vba] …текст программы… [/code] для выделения текста программы подсветкой!
4. Темы с просьбой выполнить какую-либо работу полностью за автора здесь не обсуждаются и переносятся в раздел ПОМОЩЬ СТУДЕНТАМ.
Как поместить Excel в трей Windows
- Подписаться на тему
- Сообщить другу
- Скачать/распечатать тему
|
|
По количеству и качеству предложенных ответов на предыдущий свой вопрос понял, что на форуме присутствуют специалисты своего дела Вопрос такой, имеется ли возможность поместить запущенную книгу Excel в трей к часам Windows2000/XP и чтобы |
winsoft |
|
Бонд. Джеймс Бонд. Рейтинг (т): 49 |
Это можно вообще-то сделать только из нормального Visual Basic… |
Avsha |
|
winsoft Я имел в виду все возможные способы отображения Excel-ом результатов своей работы (проведенных вычислений). Что хотелось … Например я сформировал рабочую книгу xls, которая выдает рекомендации о наиболее выгодном подключении dial-up из провайдеров, текущей температуре за окном, основные расчетные показатели для персонала, сигналы диагностики нарушения работоспособности технических комплексов и т.д. |
Змей |
|
Excel — средство для вычислений и хранения результатов. Всё остальное лучше делать на нормальном ВБ. Excel можешь использовать для жранения какой-нить инфы (но я бы этого не делал… база Access прикольнее…) |
SV() |
|
Senior Member Рейтинг (т): 40 |
Ну, если использовать только Excel и vba, то на мой взгляд, ответ однозначен: никак. Но есть великий и могучий API. Скрыть Excel очень просто: надо найти его хендл, и послать функцией ShowWindow ему сообщение 0 (SW_HIDE), чтобы вернуть взад — 5 (SW_SHOW) З.Ы. Ответы на такие вопросы также стоит поискать в разделе по API, или вообще на форуме С++/Delfi спросить что-нибудь вроде: как свернуть в трай приложение, если оно этого делать не умеет? Правда придется переводить код с С++ на basic Сообщение отредактировано: SV() — 29.01.06, 18:20 |
Avsha |
|
Спасибо, принимаю рекомендации и советы, А все равно червячок остался, |
Змей |
|
Вот пример создания trayicon из ВБА. правда под Ворд, он мне привычнее чем ексел. ЗЫ. кажется, в этом примере отсутствует TrayIcon_Click… как сделать — ищите сами, кому надо… |
Змей |
|
ЗЫ. более чем 90% кода этого примера — из недавней темы «TrayIcon» с форума «ВБ, общие вопросы». Моё здесь — только незначительная адаптация под VBA. |
0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
0 пользователей:
- Предыдущая тема
- VB for Application
- Следующая тема
[ Script execution time: 0,0253 ] [ 16 queries used ] [ Generated: 14.04.23, 17:37 GMT ]
Формулировка задачи:
День добрый, друзья.
Не подскажете — есть ли такой макрос, чтобы сворачивать окно экселевской книги — в трей.
Трэй — это место на рабочем столе, где часы находятся.
Событие Workbook_Open
Иными словами — книга открывается, тут же срабатывает макрос и книга сворачивается в трей.
Код к задаче: «Сворачивание в трей»
textual
Application.WindowState = xlMinimized
Полезно ли:
13 голосов , оценка 4.077 из 5
WindowState Property of Application Object VBA
Effectively Manage Your
Projects and Resources
ANALYSISTABS.COM provides free and premium project management tools, templates and dashboards for effectively managing the projects and analyzing the data.
We’re a crew of professionals expertise in Excel VBA, Business Analysis, Project Management. We’re Sharing our map to Project success with innovative tools, templates, tutorials and tips.
Project Management
Excel VBA
Download Free Excel 2007, 2010, 2013 Add-in for Creating Innovative Dashboards, Tools for Data Mining, Analysis, Visualization. Learn VBA for MS Excel, Word, PowerPoint, Access, Outlook to develop applications for retail, insurance, banking, finance, telecom, healthcare domains.
Page load link
3 Realtime VBA Projects
with Source Code!
Go to Top
Свернуть окно Excel, а форму показать |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |