Офисные приложения Word и Excel имеют широкий функционал, который избыточен для рядового пользователя. Но, как всегда это бывает, нужной функции под рукой, в самый неподходящий момент, может не оказаться.
Как мы знаем, для таких случаев разработчик снабдил все приложения из пакета Microsoft Office встроенным языком программирования Visual Basic for Applications (VBA).
Весь программный код оформляется в виде процедур (макросов) или функций. И сейчас мы разберем, как автоматически запускать макросы при открытии текстового документа Word или рабочей книги Excel.
Видеоурок по данной теме «Автозапуск макросов в Word и Excel» вы можете найти на нашем Youtube-канале «Учите компьютер вместе с нами!»
Прежде всего, следует помнить, что обычные документы хранятся в файлах типа *.docx или *.xlsx и не предусматривают наличие макросов. Поэтому, первое, что нужно сделать, это включить такую поддержку. Для этого, во вкладке «Файл» выбираем пункт «Сохранить как» и в открывшемся окне «Сохранение документа«, в списке «Тип файла» выбираем «Документ Word с поддержкой макросов» или «Книга Excel с поддержкой макросов«, указываем требуемое имя файла и нажимаем кнопку «Сохранить«.
*Каждый рисунок можно увеличить щелчком левой кнопки мыши по нему
После указанных манипуляций, наши сохраненные файлы будут иметь расширения *.docm или *.xlsm. Вход в редактор VBA выполняется нажатием сочетания клавиш <ALT>+<F11>.
Дальнейшие действия, в зависимости от того, с каким файлом мы работаем, Word или Excel, будут отличаться. Поэтому, рассмотрим автозапуск макросов для каждого из этих приложений в отдельности.
1. Автозапуск макросов в Word. Здесь все предельно просто. Если вы хотите, чтобы макрос автоматически выполнялся при открытии документа, тогда вам нужно присвоить ему специальное имя «Autoopen«.
Находясь в редакторе VBA, выбираем пункт меню «Insert/Вставка«, «Module/Модуль«. Далее, в открывшемся окне модуля набираем программный код:
Public Sub Autoopen()
…
End Sub
Начало макроса записывается командой Public Sub, конец — End Sub. Все что находится между ними — это команды VBA, которые будут автоматом выполняться при открытии данного документа, например:
Команда MsgBox («Hello, World!») выводит на экран текстовое сообщение «Hello, World!».
2. Автозапуск макросов в Excel. Как ни странно, но в Excel такой подход не срабатывает. Здесь «Autoopen» не является зарезервированным именем и такой макрос не будет выполняться автоматически при открытии книги.
Вместо этого, надо указать, что когда с объектом «Рабочая книга» случается событие «Открыть«, то нужно выполнить заданный набор команд.
Для этого, в редакторе VBA, в окне «Project» выполняем двойной щелчок левой кнопкой мыши на объекте «ЭтаКнига«. В открывшемся окне модуля, из верхнего левого списка выбираем объект «Workbook«, а из правого списка — событие «Open«, как показано на рисунке ниже.
В результате, текст макроса автоматически приобретает вид:
Private Sub Workbook_Open()
…
End Sub
То есть, название макроса записывается в формате: Объект_Событие. Теперь, вместо многоточия прописываем требуемый программный код. В нашем случае, это команда MsgBox («Hello, World!»).
Результат его работы будет аналогичен предыдущему примеру: в момент открытия данной рабочей книги, на экран будет выводиться сообщение.
Как сообщалось на нашем сайте ранее, файлы Excel можно открыть в разных окнах.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 11 ]
1 13.05.2010 14:30:21
- mikkelle
- полковник
- Неактивен
- Зарегистрирован: 21.01.2010
- Сообщений: 227
- Поблагодарили: 12
Тема: Выполнение требуемого макроса при запуске Word
Требуется при создании документа из шаблона Word, запустить на выполнение один из макросов.
Можно ли передать «условие» для запуска макроса через ярлык шаблона?
Условие — перед выполнением приложение Word закрыто.
2 Ответ от andrkar 13.05.2010 18:05:08
- andrkar
- Модератор
- Неактивен
- Откуда: Томск
- Зарегистрирован: 10.03.2010
- Сообщений: 431
- Поблагодарили: 26
Re: Выполнение требуемого макроса при запуске Word
внешняя ссылка
внешняя ссылка
внешняя ссылка
Вроде бы достаточно много информации по ключам запуска
3 Ответ от viter.alex 13.05.2010 18:43:58
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Выполнение требуемого макроса при запуске Word
Если макрос всегда один и тот же, то можно прописать его в стандартную процедуру, выполняющуюся при открытии документа. При редактировании шаблона откройте модуль ThisDocument и пропишите внутри неё такую процедуру:
Private Sub Document_New()
Call ИмяВашегоМакроса
End Sub
Тогда ярлык менять не придётся.
Лучше день потерять — потом за пять минут долететь!
4 Ответ от mikkelle 14.05.2010 12:24:48
- mikkelle
- полковник
- Неактивен
- Зарегистрирован: 21.01.2010
- Сообщений: 227
- Поблагодарили: 12
Re: Выполнение требуемого макроса при запуске Word
andrkar спасибо информация помогла.
Путаница возникла с ключами «/ttemplatename» и «/t filename». При указании в качестве templatename или filename имени шаблона, Ворд создавал документ с именем templatename.dotm или filename.dotm соответственно. Требуемым оказался ключ «/f filename»
Не нашел ответа на вопрос, как правильно записывать полное имя файла если в названии существуют пробелы, например «Мои документы». Квадратные скобки не помогают.
5 Ответ от viter.alex 14.05.2010 12:41:03
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
Re: Выполнение требуемого макроса при запуске Word
Если в имени файла присутствуют пробелы, то его нужно брать в кавычки
Лучше день потерять — потом за пять минут долететь!
6 Ответ от mikkelle 14.05.2010 12:52:24
- mikkelle
- полковник
- Неактивен
- Зарегистрирован: 21.01.2010
- Сообщений: 227
- Поблагодарили: 12
Re: Выполнение требуемого макроса при запуске Word
viter.alex Спасибо.
7 Ответ от mikkelle 24.05.2010 10:10:55
- mikkelle
- полковник
- Неактивен
- Зарегистрирован: 21.01.2010
- Сообщений: 227
- Поблагодарили: 12
Re: Выполнение требуемого макроса при запуске Word
А каким образом можно запустить требуемый макрос при выполнении следующей процедуры?
Sub Start()
Dim OldWordDoc As Word.Document
Dim NewWordDoc As Word.Document
Dim NewDocName As String
Set OldWordDoc = Application.ActiveDocument
NewDocName = myPath & "" & "Шаблон.dotm"
Set NewWordDoc = Application.Documents.Add(NewDocName)
OldWordDoc.Close
End Sub
Макрос находится в Шаблон.dotm
8 Ответ от Beck 20.09.2012 12:57:48
- Beck
- рядовой
- Неактивен
- Зарегистрирован: 20.09.2012
- Сообщений: 1
Re: Выполнение требуемого макроса при запуске Word
viter.alex пишет:
Если макрос всегда один и тот же, то можно прописать его в стандартную процедуру, выполняющуюся при открытии документа. При редактировании шаблона откройте модуль ThisDocument и пропишите внутри неё такую процедуру:
Private Sub Document_New() Call ИмяВашегоМакроса End Sub
Как я понимаю, в этом случае макрос будет отрабатывать при открытии нового документа. А как сделать так, чтобы отрабатывал и при открытии ранее созданых документов?
9 Ответ от Aleks 23.07.2014 13:23:44
- Aleks
- майор
- Неактивен
- Зарегистрирован: 19.05.2014
- Сообщений: 69
- Поблагодарили: 21
Re: Выполнение требуемого макроса при запуске Word
Чтобы при запуске конкретного файла выполнялся определенный макрос нужно сделать следующее:
1) Откройте «редактор VB» (доступно по «alt+f11»)
2) Выберите нужный проект (по имени файла) и запустите «редактор кода» для это проекта
3) В парвом выпадающем списке нужно переключить «(General)» на «Document» — это означает, что код будет применяться к конкретному документу.
4) Выполнение каких-либо действий при запуске файла описывается следующим кодом
Private Sub Document_Open()
// текст вашего макроса - те действия которые необходимо выполнить при открытии файла //
End Sub
5) Сохраните код и сохраните файл с поддержкой макросов (.docm). Об этом будет дополнительное сообщение.
10 Ответ от intersk 30.06.2016 09:04:41
- intersk
- рядовой
- Неактивен
- Зарегистрирован: 30.06.2016
- Сообщений: 8
Re: Выполнение требуемого макроса при запуске Word
Нужно чтобы при открытии любого файла word со словом в названии файла «иск» выдавался запрос на ввод (InputBox) в поле «номер дела»
11 Ответ от intersk 30.06.2016 09:16:45
- intersk
- рядовой
- Неактивен
- Зарегистрирован: 30.06.2016
- Сообщений: 8
Re: Выполнение требуемого макроса при запуске Word
для начала работы можно так…
Post’s attachments
начало проекта.png 32.11 Кб, файл не был скачан.
You don’t have the permssions to download the attachments of this post.
Сообщений [ 11 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Похожие темы
- Ошибка при запуске макроса
- открытие чистого шаблона при запуске word
- при запуске Word 2003 появляется последняя сохраненная страничка
- О запуске автомакросов
- Заказ макроса Word
- Заказ макроса Word
- Ищу разработчика Макроса для word
- Создание гиперссылки с помощью макроса Word
Выполнение требуемого макроса при запуске Word
Если вы ищите информацию по самому мощному редактору в мире Microsoft Word в сети, жаловаться на недостаток документов, литературы, различных ссылок и советов придется вряд ли. На портале о Microsoft Office Word вы узнаете про: как работать в обменном файле ворд вдвоем.
Только в разбросанном виде все это жутко неудобно. Гораздо результативнее общаться на специальных форумах. На портале о Microsoft Office Word вы узнаете про: числа в текст.
Это удобнее еще и тем, что на свою проблему вы получите отклики так сказать в развитии, можно будет обсудить, что не получается, что именно не устраивает. Наш сайт о Microsoft Office Word даст ответ про: перевести текст в pdf.
Для русскоязычных пользователей Microsoft Word можно посоветовать форум Ворд Эксперт.
На нем представлены как готовые ответы на вопросы и наработки опытных пользователей в разделах «часто задаваемые вопросы» и «готовые решения», так и обсуждения работы с документами и настройками программы в разных версиях нашего любимого Microsoft Word. Наш сайт о Microsoft Office Word даст ответ про: макрос жирный шрифт.
Это разделы «Настройка и Форматирование», а также «Автоматизация», где вас научат, как сделать работу с программой максимально оптимальной и быстрой, написав соответствующие макросы. На портале о Microsoft Office Word вы узнаете про: как открыть поиск в ворде.
Если вы не хотите сами разбираться с макросами или ломать голову над той, либо иной, возникшей в работе проблемой, то в «Заявках на разработку» можете оставить заказ, форумчане вам помогут. Наш сайт о Microsoft Office Word даст ответ про: римские цифры прописью.
Форум Ворд Эксперт — это страничка, которую стоит запомнить, потому что она может пригодиться в любой момент. На портале о Microsoft Office Word вы узнаете про: word ключ скачать.
Форум и сайт очень разумно устроены, а все пожелания вы можете высказать в соответствующем разделе.
0 / 0 / 0 Регистрация: 28.08.2007 Сообщений: 171 |
|
1 |
|
Автоматический запуск формы при открытии документа26.11.2007, 15:08. Показов 14647. Ответов 3
Народ помогите плиз, надо что бы при открытии заданного документа Word например 1.doc поверх текста появлялась UserForm, вставить то я ее вставил, а вот как сделать чтоб она автоматом при открытии именно этого документа появлялась ни как не допру. Заранее спасибо.
0 |
2 / 2 / 0 Регистрация: 22.11.2007 Сообщений: 70 |
|
26.11.2007, 17:20 |
2 |
Надо вставить МАКРО не в NORMAL.DOT, а в нужный документ (1.doc), и запускать его автоматически при открытии документа (используя события OPEN). Другой путь — для открытия нужного документа запускать WORD с ключом ‘/m’ (например, для МАКРОС MAIN из NORMAL.DOT использовать командную строку ‘Full WORD name/word.exe’ /mMAIN)
0 |
0 / 0 / 0 Регистрация: 28.08.2007 Сообщений: 171 |
|
27.11.2007, 19:34 [ТС] |
3 |
Спасибо конечно, но что то не работает… Если могешь примерчик и по подробнее, а то я ужо себя недогоном осущаю… Спасибо.
0 |
SIG 2 / 2 / 0 Регистрация: 22.11.2007 Сообщений: 70 |
||||
28.11.2007, 10:14 |
4 |
|||
Выполни следующее: 1. Создай нужный документ (например, DOC1.DOC);
6. Сохрани документ (вместе с документом автоматически сохранится приписанный ему код). Теперь, всякий раз при открытии документа DOC1.DOC (точнее, сразу же после его открытия) будет появляться Message Box: ‘HELLO! Document DOC1 is open!’ (естественно, на вопрос ‘Включать ли МАКРО’ при открытии документа следует отвечать ДА). Вместо указанного выше простого кода можно вставить любой другой (Load UserForm, UserForm.Show etc.), который будет выполняться при открытии документа. Удачи!
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
28.11.2007, 10:14 |
Помогаю со студенческими работами здесь Запуск макроса при открытии документа
Запуск пользовательской формы при открытии файла Private Sub Workbook_Open() Запуск определенной формы при открытии определенного листа Автоматический запуск формы Автоматический запуск музыки при открытии проекта. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 4 |
Форум программистов Vingrad
Модераторы: mihanik |
Поиск: |
|
Опции темы |
platinumSun |
|
||
Новичок Профиль Репутация: нет
|
вообщем проблемка вот в чем существует макрос в WORD на выполнение некоего действия, так вот что нужно сделать, чтобы данный макрос выполнялся при открытии этого документа( если можно по шагам объясните плс( |
||
|
|||
Naghual |
|
||
Эксперт Профиль
Репутация: 7
|
Добавь в тот-же документ:
, где: RunMyMacros — Название вашего макроса ——————— Я желаю всем Счастья! |
||
|
|||
ТоляМБА |
|
||
Котэ Профиль
Репутация: нет
|
Создаешь новый вордовский документ, нажимаешь Alt+F11, потом Ctrl+R. В оне Project в списке открываешь Project(Документ1), потом Microsoft Word Objects встаёшь на «This Document», правой кномпко мыши выбираешь пункт Viev Code. В появившенся справа окне пишешь:
Сохраняешь, закрываешь Ворд. Открываеш этот документ. Если сработало (безопасность должна быть средняя или низкая) вместо строки MsgBox «Превед!» вставляешь код своего макроса. Это сообщение отредактировал(а) ТоляМБА — 23.12.2008, 15:56 |
||
|
|||
platinumSun |
|
||
Новичок Профиль Репутация: нет
|
благодарен, но почему ты не хочет выполнять его(запускаю документ и тишина Добавлено через 11 секунд |
||
|
|||
ТоляМБА |
|
||
Котэ Профиль
Репутация: нет
|
Или в 2007 другая процедура — хз, ни разу не юзал 2007 |
||
|
|||
platinumSun |
|
||
Новичок Профиль Репутация: нет
|
всем спасибо работает)) Добавлено через 7 минут и 20 секунд |
||
|
|||
Naghual |
|
||
Эксперт Профиль
Репутация: 7
|
Проверь уровень безопасности ——————— Я желаю всем Счастья! |
||
|
|||
|
Правила форума «Программирование, связанное с MS Office» | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми
Если Вам понравилась атмосфера форума, заходите к нам чаще! |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) |
0 Пользователей: |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
На чтение 3 мин. Просмотров 966 Опубликовано 20.09.2019
Большинство пользователей Microsoft Word, наверное, слышали слово macro раньше, но никогда не понимали, что это такое, тем более, как его создать и автоматизировать. К счастью, мы научили вас создавать, запускать и настраивать макросы для автоматического запуска при запуске Microsoft Word.
Содержание
- Что такое макрос?
- Зачем использовать макросы AutoExec?
- Создание макросов AutoExec
- Предотвратить запуск макроса AutoExec
- Завершение
Что такое макрос?
Когда вы сводите его к основам, макрос – это просто серия команд и процессов, которые вы записали. После записи макроса вы можете запустить его в любое время, чтобы выполнить тот же процесс позднее.
Если задуматься, почти каждый ярлык, который вы используете в Microsoft Office, в основном является макросом, потому что вы нажимаете несколько кнопок для выполнения определенного набора инструкций, а не для перемещения по опциям ленты для запуска команд.
Зачем использовать макросы AutoExec?
Теперь, когда вы знаете, что такое макросы, вы можете рассмотреть возможность использования макросов AutoExec. Макросы AutoExec – это те макросы, которые будут запускаться, как только вы откроете Microsoft Word. Вы можете использовать эти макросы для изменения путей к файлам, сохранения местоположений, принтеров по умолчанию и многого другого. Вы также можете использовать макросы AutoExec для замены шаблонов, когда вам нужно создать определенные типы документов, такие как заметки, письма, финансовые документы или документы любого другого типа с предварительно определенной информацией и форматированием.
Вы можете быстро освоить основы работы с макросами в Microsoft Office Word 2003, 2007, 2010 или 2013.
Создание макросов AutoExec
Сначала вы должны открыть файл шаблона Normal.dot из расположения файла шаблона по умолчанию:
C: Документы и настройки имя пользователя Данные приложения Microsoft Шаблоны
Затем вам нужно создать свой макрос, используя методы, описанные в статьях, перечисленных выше. Когда будет предложено сохранить макрос и дать ему имя, назовите его AutoExec .
Важно помнить, что любой макрос, в заголовке которого есть AutoExec , будет запускаться автоматически при открытии Word. Это работает для всех версий Word.
Каждый макрос должен иметь уникальное имя, включая все команды, которые вы хотите выполнить в макросе. После присвоения имени макросу и присвоения ему имени сохраните шаблон.
Теперь, когда вы завершили этот процесс, при следующем запуске MS Word только что созданный макрос будет запускаться автоматически.
Предотвратить запуск макроса AutoExec
Если вы не хотите, чтобы макрос запускался при открытии Word, его можно остановить двумя способами. Первый вариант – дважды щелкнуть значок Microsoft Word и удерживать клавишу Shift .
Второй вариант, который можно использовать для предотвращения запуска макроса, – это использовать диалоговое окно Выполнить , выполнив шаги, перечисленные ниже.
- Нажмите кнопку Windows + R .
- Введите следующую команду: winword.exe/m
Завершение
Теперь, когда вы знаете, как создавать и использовать макросы для различных версий Word и как автоматически запускать его при открытии нового документа, вы будете готовы удивить всех своих друзей и коллег своей эффективностью и мастерством обработки текстов.
Под редакцией: Мартин Хендрикс