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

Обновлено: 01.05.2024

Работа с активным документом

Типичная 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. Запустить и рассмотреть учебную базу данных. ВНИМАНИЕ При выполнении задания помните, что все внесенные в базу данных изменения записываются немедленно и их

Активизация документа при автоматизации Word

автоматизирует Word. Автоматизация происходит так:
запускается макрос, после чего создаётся документ в Worde, но документ не становится активным, для его просмотра необходимо ещё нажать кнопку на панели уведомлений (в нижней части экрана).

Однако если открыть код в редакторе VBA и закрыть редактор, то после таких действий запуская макрос документ становится активным автоматически.

Такой вопрос - какой должен быть код или настройки, что-бы документ Word становился активным без применения процедуры открытия и закрытия редактора VBA ?

94731 / 64177 / 26122 Ответы с готовыми решениями:

Добавление срок в таблицу Word при заполнении документа Word из данных Excel
Всем привет! Я новичок в этом деле и нужна помощь. Есть таблица Excel с данными на основании.

Удалить память при создании документа word из vba excel
Здравствуйте. Я создаю динамически документ ворд через приложение vba excel, далее заполняю его.

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

Сделать активным окно сторонней программы

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

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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы ( 2 ) 94731 / 64177 / 26122 Ответы с готовыми решениями:


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


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

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

Метод Document.Activate (Word)

Активирует указанный документ, чтобы он стал активным.

Синтаксис

выражения. Активация

выражение (обязательно). Переменная, представляюная объект Document.

Пример

В этом примере активируется документ с именем "Sales.doc".

См. также

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

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

Заявление AppActivate

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

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

Примечания

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

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

Пример

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

См. также

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

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

Метод Window.Activate (Word)

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

Синтаксис

выражения. Активация

выражение (обязательно). Переменная, представляюная объект Window.

Пример

В этом примере активируется следующее окно Windows коллекции.

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

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

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

Это код создания файла
процедура открывает файл с таблицей (который должен остаться неизменным). Эту таблицу юзер должен сохранить под своим именем в другой папке и дальше работать с этим файлом, т.е. заполнять таблицу с помощью текста(который заложен в программе) и вводимых переменных.

Это код открытия уже существующего файла
процедура выводит юзера в папку, где предполагается хранить указанные файлы, он выбирает свой и работает с ним дальше

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

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

Да, через объектную модель Аутлука. Насколько я понял, должно быть что-то типа

Окно мыла иногда просто не активно, насколько я понимаю.

C Outlook не приходилось, а вот с Word пришлось помучиться , чтобы под 2003-м и под 2007-м аксом окно документа всегда возникало на переднем плане, решил тогда так

C Outlook не приходилось, а вот с Word пришлось помучиться , чтобы под 2003-м и под 2007-м аксом окно документа всегда возникало на переднем плане, решил тогда так

Это в общий модуль запихиваете (у меня в примере это Module2)

OpusApp - это имя класса окна Word (у Вас для OutLook будет другое - поищите сами)

Dim hhh As Long
Dim hhh1 As Long

Я сделал такой вариант, работает с окнами писем Outlook, главным окном Outlook, Word, Excel

Открытие /активация документов Word в макросе VBA

Я надеюсь, что эксперт VB /VBA сможет мне помочь. Учтите следующее: Пользователь открывает документ в Word 2003, и в макросе Normal.dot AutoOpen мы смотрим на текущий документ, и если он был открывается путем нажатия на ссылку на веб-странице и соответствует определенным критериям, специфичным для приложения, закройте потоковую копию и откройте исходный документ (найденный на общем диске, к которому мы можем предположить, что пользователь имеет доступ):

Я думал, что мне нужно вызвать Activate , чтобы убедиться, что исходный документ был ActiveDocument , но в .Activate появляется ошибка 4160 «Неверное имя файла» > звони. Если я закомментирую вызов .Activate , кажется, что ActiveDocument установлен на документ origDoc, даже если уже были открыты другие документы (я не совсем уверен, как управляется коллекция документов и как Word определяет, что будет дальше ActiveDocument будет, если вы программно закроете текущий ActiveDocument)

Таким образом, вызов .Open в документе явно устанавливает для документа значение ActiveDocument ? Кроме того, вызывает ли вызов .Activate в уже активном документе ошибку?

Мне не удалось найти много документации по этому вопросу, поэтому заранее благодарю за любые предложения и советы!

10 голосов | спросил echoesofspring 1 апреля 2009, 21:10:55

3 ответа

У вас есть ошибка здесь:

Должен быть документом s .

Да, вы можете активировать активный документ. Ничего не происходит тогда.

Да, открытый документ становится активным. Если вы не уверены, используйте Documents.Open(origDoc).Activate .

ответил GSerg 1 апреля 2009, 22:36:00

Во-первых, вы не должны использовать объект ActiveDocument , за исключением случаев, когда это абсолютно необходимо, поскольку это очень ненадежно. Предпочтительный подход будет следующим:

ответил guillermooo 20 мая 2009, 13:50:31

Помните, что существует множество проблем, с которыми можно столкнуться:

Используйте свойство ReadOnlyRecommended , для которого установлено значение False с .Open метод

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

если вы управляете коллекцией документов (или любой другой) без гарантируя, что документ или другой объект все еще там и действителен перед удалением или перемещением в коллекции, вы можете
получить ошибки переполнение стека . Особенно если вы попытаетесь закрыть /удалить объекты в коллекции, начиная с .item(1) . Вы необходимо удалить элементы в коллекции из последней и запомнить что подделки и указатели коллекции меняются всякий раз, когда вы .add /.remove /. закрыть элементы из них.

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