Сделать окно word активным vba

Обновлено: 02.05.2024

Если ваш монитор не отличается гигантскими размерами экрана, приготовьтесь потратить довольно много времени на перемещение окон редактора Visual Basic. Эти окна существуют не столько для того, чтобы на них смотреть, сколько для того, чтобы оказать достаточно существенную помощь в вашей программистской работе. Проблема заключается в том, что держать их все на экране открытыми нерационально-- вам совсем не останется места для работы с формами и VBA-кодом.

Одни окна любят одиночество, другие - всегда в компании

Относительно окон редактора Visual Basic вы должны запомнить один основной факт: окон форм и программного кода можно открыть столько, сколько вы пожелаете, а каждое из окон остальных типов может присутствовать на экране только в единственном экземпляре.

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

Несколько окон для программного кода и форм можно открыть потому, что обычно создаются несколько форм и один VBA-модуль. Имея для каждого из этих объектов свое окно, вы получите быстрый доступ сразу ко всем своим формам и модулям.

Некоторые другие окна (а конкретно- окно свойств и окно локальных переменных) изменяют свое содержимое автоматически, когда вы переходите в окно другой формы или соответствующего программного кода. Это похоже на несколько окон по иене одного. Другие же окна - например, окно обозревателя объектов, окно проводника проекта и окно немедленного выполнения - применимы ко всему, что делается в редакторе Visual Basic, поэтому можно открыть только по одному из них.

Работа с окнами

Работа с окнами Давайте поподробнее остановимся на некоторых моментах использования свойств и методов окон.Прежде всего, требуется дополнительное рассмотрение метода open. Он позволяет Web-дизайнеру открыть на экране дополнительное окно Web-обозревателя и поместить в него

Действия над окнами

Действия над окнами Рассмотрим команды окна. Наведите указатель мыши на область заголовка окна и щелкните правой кнопкой. Появится контекстное меню (рис. 3.4), содержащее пункты Восстановить, Переместить, Размер, Свернуть, Развернуть и Закрыть. Если выбрать пункт

Управление окнами

Управление окнами В предыдущем разделе очерка речь шла о способах запуска приложений, в этом же поговорим о способах управления приложениями, которые уже запущены. Поскольку мы (пока ещё) живём в системе, которая официально называется X Window System, то большая часть

Управление окнами

Управление окнами Если ваш монитор не отличается гигантскими размерами экрана, приготовьтесь потратить довольно много времени на перемещение окон редактора Visual Basic. Эти окна существуют не столько для того, чтобы на них смотреть, сколько для того, чтобы оказать

Управление окнами

Управление окнами В Word 2007 кнопка закрытия документа совпадает с кнопкой закрытия окна программы (рис. 2.38). Если открыто несколько документов, то при закрытии одного из них, остальные остаются открытыми. При закрытии последнего документа с помощью этой кнопки окно

Работа с окнами

Работа с окнами Перетаскивание окнаПри перетаскивании окна с помощью мыши может отображаться либо его содержимое, либо только контур. Если параметру DragFullWindows, который расположен в разделе реестра HKEY_CURRENT_USERControl PanelDesktop, присвоить значение 1, то при перетаскивании окна с

Что можно делать с окнами

Что можно делать с окнами Рабочий стол, значки, окна и диалоги — основа Windows. Большинство запущенных вами программ выводят на Рабочий стол свои окна. Вы можете перемещать их по экрану, изменять размер, развертывать на весь экран или сворачивать в значок на Панели задач. С

Как переключаться между окнами?

Как переключаться между окнами? Компьютер способен одновременно выполнять несколько приложений. Каждое из них выводит на экран свое окно. Значки этих окон отображаются на Панели задач.Чтобы переключаться между запущенными программами, вы можете щелкать мышью на их

6.3. Работа с окнами

1.4. Расширенное управление окнами

1.4. Расширенное управление окнами В предыдущих версиях Windows управление окнами было не очень удобным. В Windows 7 появился ряд клавиатурных комбинаций, существенно упрощающих работу с окнами. Все эти комбинации клавиш мы рассмотрим в главе

3.5. Работа с окнами

2.2.1. Переключение между окнами

2.2.1. Переключение между окнами Windows является многозадачной операционной системой. То есть вы можете работать одновременно в нескольких программах и переключаться между ними. Объясняю, как это делается. Итак, сейчас у вас открыто окно Мой компьютер, сверните его на панель

Управление окнами и панелями Flash

Управление окнами и панелями Flash Как мы выяснили, Flash может вывести на экран сразу множество разнообразнейших окон. Как разобраться во всем этом многообразии?Если в одной программе Flash открыто несколько документов, то переключаться между ними можно, щелкая мышью на

Работа с окнами

Работа с окнами В среде Windows пользователь постоянно работает с окнами, так как в них открываются программы, документы или другие объекты. Окна различных программ и документов имеют одинаковые элементы управления, что значительно упрощает работу с ними.Рассмотрим для

Синтаксис оператора AppActivate состоит из следующих именованных аргументов:

Часть Описание
заголовок Обязательно. Строковое выражение, указывающее заголовок в строке заголовка окна приложения, которое необходимо сделать активным. Для активации приложения на месте заголовка может использоваться идентификатор задачи, возвращаемый функцией Shell.
wait Не обязательно указывать. Логическое значение, указывающее наличие фокуса в вызывающем приложении перед активацией другого. При значении False (по умолчанию) указанное приложение сразу становится активным, даже если вызывающее приложение не имеет фокуса. Если true, вызываемого приложения ждет, пока он имеет фокус, а затем активирует указанное приложение.

Комментарии

Оператор AppActivate перемещает фокус на именованное приложение или окно, но не влияет на его размер. Если пользователь выполняет некоторые действия, чтобы изменить фокус или закрыть окно, фокус перемещается с окна активированного приложения. Для запуска приложения и выбора стиля окна используйте функцию Shell.

В определении того, какое приложение сделать активным, title сравнивается со строкой заголовка каждого запущенного приложения. Если точного соответствия нет, активируется любое приложение, строка заголовка которого начинается с title. Если сразу несколько приложений имеют имя title, одно из них активизируется произвольным образом.

Пример

В этом примере показаны различные варианты использования оператора AppActivate для активации окна приложения. В утверждениях Shell предполагается, что приложения находятся в указанных путях. В macOS диск по умолчанию обозначается "HD", а части аргумента "путь" отделяются друг от друга двоеточиями вместо обратной косой черты.

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

В Visual Basic методы изменения файлов являются методами объекта Document или коллекции документов. В этом разделе Visual Basic примеры, связанные с задачами, которые определены в следующих разделах.

Создание нового документа

Коллекция документов включает все открытые документы. Чтобы создать новый документ, используйте метод Add для добавления объекта Document в коллекцию Документов . Следующая инструкция создает документ.

Лучший способ создания документа — назначить возвращаемую величину переменной объекта. Метод Add возвращает объект Document , который ссылается на новый документ. В следующем примере объект Document , возвращаемый методом Add , назначен переменной объекта. Затем за набором нескольких свойств и методов объекта Document . Вы можете легко управлять новым документом с помощью переменной объекта.

Открытие документа

Чтобы открыть существующий документ, используйте метод Open с коллекцией Документов . Следующая инструкция открывает документ с именем Sample.doc, расположенный в папке MyFolder.

Сохранение существующего документа

Чтобы сохранить один документ, используйте метод Сохранить с объектом Document . Следующая инструкция сохраняет документ с именем Sales.doc.

Все открытые документы можно сохранить, применяя метод Сохранить в коллекции Документов . Следующая инструкция сохраняет все открытые документы.

Сохранение нового документа

Чтобы сохранить один документ, используйте метод SaveAs2 с объектом Document . Следующая инструкция сохраняет активный документ как "Temp.doc" в текущей папке.

Аргумент FileName может включать только имя файла или полный путь (например, "C:\Documents\Temporary File.doc").

Закрытие документов

Чтобы закрыть один документ, используйте метод Close с объектом Document . Следующая инструкция закрывает и сохраняет документ с именем Sales.doc.

Все открытые документы можно закрыть, применяя метод Close из коллекции документов. Следующая инструкция закрывает все документы без сохранения изменений.

В следующем примере пользователю предлагается сохранить каждый документ до его закрытия.

Активация документа

Чтобы изменить активный документ, используйте метод Активация с объектом Document . Следующая инструкция активирует открытый документ с именем Sales.doc.

Определение открытого документа

Чтобы определить, открыт ли документ, вы можете привести коллекцию документов с помощью . . Следующее утверждение. В следующем примере активируется документ с именем Sample.doc если документ открыт или открывается Sample.doc, если он в настоящее время не открыт.

Ссылаясь на активный документ

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Здравствуйте.
Прошу помощи в данном вопросе, т.к. поиски по гуглам-яндексам, форумам и статьям выдают что то рядом, но не то.
Имею программу (например test.exe)
Хотел использовать SetActiveWindow или SetForegroundWindow, но запутался в хэндлах и идпроцах.
Есть фрагмент закрытия такой программы:

Так вот я не пойму: если я программу уже идентифицировал по имени процесса, ПОЧЕМУ я не могу по этому же имени сделать активной её окно.
Или как то можно?
Заранее спасибо.


Сделать рестарт сторонней программы
Доброе время суток! Банальное оповещение. Я начинающий человечек в этой сфере. Облазил много.


Запрет на запуск сторонней программы
Здравствуйте. Помогите пожалуйста с вопросом: необходимо при запуске программы запретить запуск.

Заставка для сторонней программы
Ситуация такая: есть программа, которая загружается примерно минуты 4, т.е. в диспетчере задач она.

Решение

не понял.
Это в смысле надо декларировать библиотеку? Как?
Я до сих пор только отдельные функции из неё декларировал.

Добавлено через 1 минуту
Как нет процесса, если пробовал и на calc и на notepad оба открыты и свёрнуты, в Диспетчере задач видны,
только подставлял ".exe" в ваш код

Ну или допишите в самое начало

Вот только что заметил - ПРОИСХОДИТ, но не совсем - просто пиктограмма блокнота в "панели задач" активируется (подсвечивается), а само окно не появляется

Добавлено через 14 минут
В общем, я так понимаю, что чётко работающего варианта нет.

Emser, я на двух ОС проверил XP и 8, на обеих работает как часы. Но они обе 32-разрядные.
64 только семерка, но она второй виндой, перезагружаться неохота, может, кто из форумчан проверит

В общем, на 64-битной семерке работает безупречно, проверил.

Emser, код просто активирует окно, оно вылазит поверх других окон, но если есть что-то выше него (например, диспетчер задач), то пробиться оно не сможет.
Опишите, какие окна в системе, что есть Ваша форма и не является ли она формой поверх других окон

Диспетчер задач свёрнут.
Открыты окна VB2010, Firefox, TotalComander.
Моя форма - это не моя программа, чужая, мне надо в определённый момент чтобы она была поверх всех.
Пока мучаю на блокноте, калькуляторе.
Блокнот свёрнут или перекрыт другими окнами, сворачивал всё, кроме отлаживаемой проги.
В разных комбинациях сворачивал и перекрывал окна - результат тот же.
Ещё где то читал, что в оболочке VB такое бывает (не корректная работа отлаживаемой проги), надо запускать из bin-debug. И так тоже пробовал.
Ничего не понимаю!
Ну, раз у Вас всё работает, значит что то не то с моей системой, наверное.
В понедельник на работе попробую, туда же она и нужна, вобщем то.
Спасибо.

Emser, а вот еще проверьте, не к задаче, но ради интереса, будет ли работать следующая функция:

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

Типичная VBA-процедура в Word выполняет все свои магические действия в том документе, который в данный момент открыт для редактирования. Для указания активного документа используется объект ActiveDocument. Например, приведенная выше инструкция просто закрывает активный документ:

Как видите, вам не нужно писать код для определения того, какой же документ редактируется в данный момент: достаточно просто использовать объект ActiveDocument.

Если вам необходимо работать с определенным документом, который сейчас не активен, вы должны указать его как члена коллекции Documents, состоящей изо всех документов, открытых в настоящее время в Word. Как и в случае с любой другой коллекцией объектов в VBA, вы можете обратиться к отдельному документу в коллекции, используя его заголовок, который в данном случае совпадает с именем файла (только именем файла, а не с полным путем к нему). Вот соответствующий пример;

Documents("Toy Store News letter.doc")

Поскольку вы не знаете точно имя файла целевого документа заранее, а пользователь может в любой момент его изменить, вам следует создать переменную, которая будет содержать имя файла. После этого вы можете использовать эту переменную для указания объекта документа, например, так: Documents (strDocName).

Вы также можете обратиться к документу по его индексному номеру. Следующая инструкция, например, обращается к третьему документу в коллекции Documents:

Несмотря на всю простоту, этот метод достаточно ограничен, поскольку вы редко когда знаете индексный номер документа, с которым хотите работать. При этом вам стоит узнать имя открытого документа. Например, следующая инструкция присваивает переменной имя файла второго открытого документа:

Для создания нового документа используйте метод Add коллекции объектов Documents. Используемый без каких-либо документов, метод Add создает новый документ, базирующийся на шаблоне Normal (Обычный). Для указания другого шаблона укажите путь к нему в качестве аргумента, как показано ниже:

Documents.Add template:= _

"C:WindowsApplication DataXMicrosoftHidden templates"

Для открытия существующего документа используйте метод Open коллекции объектов Documents. Конечно же, вам необходимо указать полный путь к документу, как показано ниже:

Documents.Open FileName:= _

"С:ToysToys for infants.doc"

Для активизации уже открытого документа используйте метод Activate коллекции объектов Documents. Предположим, что вам необходимо, чтобы ваша VBA-программа активизировала определенный документ, который в момент запуска программы может быть и открыт, и закрыт. Используйте код, подобный показанному ниже, для активизации открытого документа или открытия документа, если он еще не открыт:

Dim docFileName As String, docPath as String

docFileName = "Старые игрушки.doc"

For Each target Doc In Documents

If targetDoc.Name = docFileName Then

If targetDocIsOpen = True Then

Documents.Open FileName := docPath & docFileName

Поскольку каждый документ Word состоит из одного или нескольких разделов, вы можете ожидать, что Word VBA содержит коллекцию Sections и отдельные объекты Section для работы с этими элементами. Так оно и есть. Наиболее важное применение объектов Section - организация доступа к верхним и нижним колонтитулам (через объект Header Footer ). Вы можете добавлять новые разделы в документ, используя метод Add коллекции Sections или метод Insert Break объекта Range или Selection.

Работа с документом КОМПАС-Чертеж

Работа с документом КОМПАС-Чертеж Все, что мы делали в КОМПАС до сих пор, не имело большого практического значения, а описанные команды касались только создания изображений на чертеже.Из вышеизложенного вы могли только узнать о возможностях рассматриваемого

Что делать с отредактированным документом?

Что делать с отредактированным документом? Чтобы сохранить изменения в документе, выберите команду меню Файл|-Сохранить или нажмите сочетание клавиш Ctrl+S.Чтобы сохранить документ и закрыть редактор Google Документы, выберите команду меню Файл|Сохранить и закрыть

4.4. Ввод текста и работа с документом

4.4. Ввод текста и работа с документом Теперь, разобравшись с назначением и функциями опций на линейке Word, от теории переходим к практике.Текст в Word набирается таким же образом, как и в Блокноте или WordPad — с клавиатуры. Большие буквы пишутся с нажатием клавиши <Shift>, если же

Практическая работа 5. Работа с фрагментами текста

Практическая работа 5. Работа с фрагментами текста Задание. Создать текстовый документ и переставить местами его отдельные фрагменты. Вставить в текстовый документ результаты вычислений в Калькуляторе.Последовательность выполнения1. Запустите Блокнот и создайте

Практическая работа 12. Работа с окнами папок

Практическая работа 12. Работа с окнами папок Задание. Изучить работу с окнами папок. Научиться перемещаться по файлам и папкам.Последовательность выполнения1. С помощью меню Пуск откройте папку Компьютер. Ознакомьтесь с содержимым окна, покажите его составляющие.2. С

Практическая работа 14. Работа с файлами и папками

Практическая работа 14. Работа с файлами и папками Задание. Научиться создавать папки, копировать, перемещать, переименовывать и удалять файлы.Последовательность выполнения1. Откройте с помощью меню Пуск папку Документы.2. В папке Документы создайте новую папку с именем

Практическая работа 15. Работа с изображениями в Проводнике

Практическая работа 15. Работа с изображениями в Проводнике Задание. Просмотреть и отредактировать изображения с помощью встроенных средств Windows Vista.Последовательность выполнения1. Откройте папку, содержащую цифровые изображения. Это может быть папка с вашими

Практическая работа 16. Работа со сменными носителями

Практическая работа 16. Работа со сменными носителями Задание 1. Скопировать файлы и папки на flash-диск.Последовательность выполнения1. Подключите к компьютеру устройство flash-памяти. При этом обратите внимание на размещение выступов на разъеме и самом устройстве, чтобы

Практическая работа 19. Поиск в Интернете. Работа с папками Избранное и Журнал

Практическая работа 19. Поиск в Интернете. Работа с папками Избранное и Журнал Задание 1. Научиться выполнять поиск в Интернете, настраивать параметры поиска, работать с папками Избранное и Журнал.Последовательность выполнения1. Запустите Internet Explorer.2. Щелкните кнопкой мыши

Практическая работа 26. Работа с файловым менеджером

Практическая работа 27. Работа с проигрывателем Windows Media

Практическая работа 27. Работа с проигрывателем Windows Media Задание 1. Изучить средства управления воспроизведением проигрывателя Windows Media.Последовательность выполнения1. Откройте для воспроизведения с помощью проигрывателя любой музыкальный файл, например из папки

Практическая работа 30. Редактирование документа. Работа с фрагментами.

Практическая работа 30. Редактирование документа. Работа с фрагментами. Задание. Отредактировать сохраненный документ.Последовательность выполнения1. Откройте ранее сохраненный документ Урок 1 любым способом.2. Выделите слово, предложение, строку, абзац, весь документ.

Практическая работа 53. Запуск Access. Работа с объектами базы данных

Практическая работа 53. Запуск Access. Работа с объектами базы данных Задание. Ознакомиться с окном программы Access. Запустить и рассмотреть учебную базу данных. ВНИМАНИЕ При выполнении задания помните, что все внесенные в базу данных изменения записываются немедленно и их

Читайте также: