Статьи из блога
Создание макроса из готового кода
Продолжение заметки о способах создания макросов.
Если у вас есть готовый код макроса, например, с этого сайта, то следующий совет поможет внедрить его в ваши документы. Есть две возможности создания макроса из готового кода.
Первый вариант: создание макроса с помощью диалогового окна Макрос
- В меню Сервис наведите указатель мыши на пункт Макрос и в раскрывшемся подменю выберите команду Макросы. Если вы работаете в Word 2007, то перейдите на вкладку Разработчик и в группе команд Код нажмите кнопку Макросы. Откроется диалоговое окно Макрос:
Это же диалоговое окно также можно открыть с помощью сочетания клавиш «Alt»+«F8».
- В поле Имя введите наименование для макроса.
- В поле Макросы из выберите строку Активных шаблонов. В этом случае созданный вами макрос будет доступен для всех документов, основанных на шаблоне Normal.dot.
- В поле Описание можете ввести краткую информацию о назначении макроса. Этот текст будет размещен в коде макроса в качестве комментария.
- Нажмите кнопку Создать. После этого Word запустит редактор Visual Basic, создаст модуль (если ранее он не был создан) NewMacros в шаблоне Normal.dot и добавит начальные строки подпрограммы и комментарий (шрифт зеленого цвета с апострофом перед текстом комментария), введенный вами в поле Описание:
- В то место, где находится курсор ввода (между комментариями и оператором End Sub, вставьте ваш код (скопированный без начальных операторов Sub и End Sub).
- Проверьте работоспособность макроса, нажав кнопку Run Sub на панели инструментов редактора Visual Basic или воспользуйтесь клавишей «F5».
- Назначьте данному макросу сочетание клавиш или поместите созданную для макроса кнопку на панель инструментов или добавьте кнопку на панель быстрого доступа (для Word 2007).
Второй вариант: создание макроса из готового кода
- Сохраните все документы, с которыми вы в настоящий момент работаете и создайте новый документ.
- Нажмите сочетание клавиш «Alt»+«F11». Откроется редактор Visual Basic с пустым (или уже содержащим какой-либо программный код ) окном.
- Вставьте в окно редактора скопированный код (если он существует в электронном виде) или наберите код макроса вручную, включая операторы начала процедуры Sub и конца процедуры End Sub.
- Проверьте работоспособность макроса, нажав кнопку Run Sub на панели инструментов редактора Visual Basic или воспользуйтесь клавишей «F5».
- Назначьте данному макросу сочетание клавиш или поместите созданную для макроса кнопку на панель инструментов или добавьте кнопку на панель быстрого доступа (для Word 2007).
Рубрика: Макросы
Метки: vba | макросы
Просмотров: 103048
Подписаться на комментарии по RSS
Версия для печати
Метки: vba | макросы
Просмотров: 103048
Подписаться на комментарии по RSS
Версия для печати
Еще записи по вопросам использования Microsoft Word:
- 3 способа очистки списка недавно открытых документов
- Абзац с цветным фоном
- Автоматическая запись макроса
- Автоматическая расстановка переносов
- Автоматическое обновление полей при открытии документа
- Автоматическое сохранение документа при его закрытии
- Быстрая смена ориентации страниц документа
- Быстрое перемещение между открытыми документами Word
- Быстрое создание нового документа на основе шаблона
- Быстрый ввод текста с помощью команды =rand()
- Ввод часто повторяющихся фрагментов текста
- Вставка будущей даты
- Вставка документа с книжной ориентацией в документ с альбомной ориентацией
- Вставка завтрашней даты
- Вставка изображений из указанной папки для Word 2007
- Вставка неформатированного текста
- Вставка скопированного текста в предопределенном формате
- Вставка текста с полями в нижний колонтитул
- Вставка текста с помощью кнопки
- Выделение видимой части экрана
- Двойная нумерация страниц в документе
- Задать обтекание текстом для всех рисунков в документе
- Замена жаргонных слов в тексте
- Замена знаков абзаца на пробелы в выделенном тексте
- Замена текста в скобках на пробел
Комментариев: 35
Как сделать чтобы при печата документа выполнялся созданный макрос?
Наверное, вопрос требует уточнения: в какой именно момент должен выполняться макрос? Можно сделать свой макрос отправки документа на печать и выполнения перед этим какого-то действия (другого макроса), или после.
Макрос должен выполняться во время печати.
До или после некоторого элемента документа.
В частности макрос выполняет разрыв страницы.
Алексей, макросы следует выполнять до момента печати, так как иначе документ уже будет в памяти принтера. Соотвтественно, разрывы страницы нужно выполнить сначала, а потом отправить документ на печать.
Антон,выполнение макроса "во время печати" - имеется в виду во время формирования документа на печать. (Конечно, если документ сформирован и помещен в спул ничего не сделаешь).
И еще требуется узнать при формировании документа на печать
как далеко находится некоторый элемент от края страницы т.е.
уместиться еще вместе несколько строчек или нет. Строки разрывать
на разных листах нельзя. (Колонтитулы не подходят).
Макрос я пробовал привязать к элементу - поле. (Панель формы,
кнопка текстовое поле - выполнить макрос) - не получается.
Интересно, жива ли тема? Но все же попытаюсь.
Имеется книга чисто макросов. Она не меняется. Эти макросы используются в целом ряде других книг, к. содержат чисто данные. Данные обновляются от одного до нескольких раз в месяц. И каждый раз создаются новые книги. В 2003 офисе добавил кнопку на панель инструментов, назначил ей макрос и указал путь к книге макросов. Все работало замечательно. Перешли на 2007 и все встало. Такой вариант работает только в том случае, если макрос внедрить в книгу (а их около 20 шт. и постоянно создаются новые взамен устаревших), что не есть удобно. Попробовал такой вариант. Открыл книгу макросов, добавил кнопку на быструю панель, подцепил к ней макрос. Потом открываю сразу два файла - макросы и данные. В этом случае макрос запускается, но потом вываливается с ошибкой. Ругается на глобальные переменные. Подозреваю, из-за того, что пытается выполнить в контексте книги данных, а не книги макросов.
Что делать?
Александр, вы наверное ведете речь о книгах Excel? Рекомендую обратиться с этим вопросом на спец.сайт по Excel: http://msexcel.ru/.
На самом деле речь идет о любых макросах, хоть Word, хоть Excel. Даже ВООБЩЕ не о макросах, а об интерфейсе 2007 офиса. Как вообще в 2007 офисе подцепить кнопку со ссылкой на макрос, к. физически находится в другом файле? Расскажите на примере Word 2007. Уверен, что интерфейс у них абсолютно схож. Поэтому все, что верно для Word 2007, будет верно и для Excel 2007.
P.S. За ссылку спасибо. Сайт и форум интересные, хотя ответа на свой вопрос я так и не нашел.
P.S.S. Ошибка вылетала из-за неправильно введнных данных в ячейки. С этим разобрался. Т.е. макрос, подключенный из внешнего источника, все-таки работает. Только мне надо теперь это дело сделать "красиво" и без "костылей"
Александр, я могу ошибиться, но вы не совсем правы, говоря что:
Если я не прав, то откройте глобальный шаблон Excel и добавьте туда нужные макросы, которые затем будут доступны на вкладке "Надстройки". Но я не уверен, что есть глобальный шаблон у Excel; но в Wordе это Normal.dot (dotx). И когда этот шаблон содержит нужные макросы, то они все доступны на упомянутой вкладке в любых документах, создаваемых на основе этого глобального шаблона.
Как в Excel это реализовать, я не знаю.
Кстати, вот еще одна полезная ссылка: сайт RusFAQ.ru (http://rusfaq.ru/issues/5/5/172).
В Word макросы размещаются в шаблонах, которые затем можно подключить к текущему документу через диалоговое окно "Шаблоны и надстройки" (вкладка Разработчик - группа команд Шаблоны - кнопка Шаблон документа).
Как видите, хоть интерфейс у Word и Excel внешне одинаков, но функционально они совершенно разные.
Скажите, позволяет ли MS Word 2003 присваивать различные картинки кнопкам макроса, вынесенным на панель инструментов? Спасибо!
Юрий, да это возможно. Вот, как пример эта заметка.
Ребята, если уж вы пишете статью "Создание макроса из готового кода", то уж опишите плиз как сделать ваш совет "Назначьте данному макросу сочетание клавиш или поместите созданную для макроса кнопку на панель инструментов или добавьте кнопку на панель быстрого доступа", т.к. таких команд в VB-редакторе я не нашёл.
Гость, это не команды VB-редактора, а стандартные действия в редакторе Word. Специально для вас обратился к форме поиска по сайту (в левой верхней части сайта под логотипом), ввел фразу "как назначить сочетание клавиш" и получил конкретную заметку по теме: Как назначить сочетания клавиш для макросов.
По панели быстрого доступа сможете самостоятельно найти?
Я вставляю макрос
вставляю его между комментариями и оператором End Sub скопированный без End Sub нажимаю F5 и выскакивает окно compile error: expected end sub
Не могли ли бы вы подсказать, что я делаю неправильно?
Я так понимаю, что Вы его вставляете внутрь своей процедуры? Тогда нужно копировать строки, которые находятся между Sub…End Sub
А у Вас получается, что внутри одной процедуры, Вы объявляете ещё одну, что запрещено.
Я попробовала вставить без начального Sub.
Теперь пишет syntax error и выделяет красным DeleteAllHeaders_Footers()
Возможно, у вас два макроса с одинаковыми именами. Проверьте...
Конечно выделяет. Татьяна, Вы хотите, чтобы эта процедура выполнялась внутри Вашей процедуры? Тогда Вам нужно вставить эту процедуру после Вашей, а в том месте Вашей процедуры, где Вы хотите её вызвать, просто написать DeleteAllHeaders_Footers. Так будет правильнее всего.
Помогите пожалуйста . Напишите код для поиска и замены текста пожалуйста
Все уже давно написано и опубликовано. Читайте и ищите поиском по сайту. Вот конкретная ссылка на полезные заметки по теме:
Поиск и замена
перелопатила по-моему уже половину инета, но так и не поняла, как вносить изменения в макросы?
создать создала, он выполняет последовательные действия, записанные мною. но нужно еще обеспечить возможность выбора устанавливаемых параметров этого макроса
я так понимаю, работать придется в VBA?
помогите, пожалуйста, разобраться)
Ирина, Вы совершенно правильно понимаете. Чтобы внести изменения в записанный макрос, нужно открыть его в редакторе VBA и вручную дополнить.
Александр, а существует ли возможность создать такой макрос, чтобы производить выбор из чего-либо? ну допустим мне необходимо было изначально создать макрос, который бы обрамлял текст рамкой и заливал этот самый текст каким-то цветом. это элементарно. но далее нужно предоставить возможность выбора, т.е., если я правильно понимаю, необходимо изменить макрос так, чтобы он не автоматом заливал текст одним выбранным мною цветом, а.. не знаю даже.. выдал бы табличку что ли с вариантом цветов, среди которыхя выбрала бы интересующий мною, хе-хе
написала и даже перечитывать не хочу, потому что бред по-моему какой-то))
возможно ли такое в макросах? или макрос - это определенный алгоритм действий и изменять/дополнять их можно только посредством изменения самого макроса?
я просто подозреваю, что несколько неправильно понимаю задание и потому не могу впереть, как его выполнить
звучит оно так: ввести в код созданного макроса изменения, обеспечивающие возможность выбора устанавливаемых параметров макроса, например, выбор цвета для шрифта и т.п. для этого разработать пользовательскую форму, в которой в качестве элемента управления могут быть использованы полоса прокрутки, список, поле со списком
Ирина, макросом можно много чего делать: и выбирать, и обрабатывать введённую информацию и много чего другого. Рекомендую к прочтению книгу Марка Розенберга "Комфортная работа с помощью макросов"
спасибо за помощь! попробую найти эту книгу)
Товарищи! Нужна помощь в создании макроса.
Есть документ (word) с текстовыми полями, для заполнения которых нужно кликнуть на них 2 раза, после чего откроется окно "Параметры текстового поля" и уже там вводить его содержание. Макрос же должен обеспечивать ввод текста в это поле сразу (при его(поля) выделении)
Заранее, спасибо!
А зачем макрос? Отключите "Режим разработчика" и текст можно будет вводить сразу в поле.
Вы знаете как создать кнопку в Ехсеl, которая бы рассчитывала коэффициенты
линии тренда для неопределённого числа столбцов ?
U1 U2 U3 .... Un
0 1,201
1 1,210
2 1,226
3 1,235
4 1,245
5 1,255
6 1,264
7 1,274
8 1,284
9 1,293
10 1,303
20 1,401
30 1,499
40 1,595
50 1,693
100 2,181
150 2,673
200 3,163
250 3,650
коэффи-
циенты:
a0
a1
a2
подскажите плиз как создать макрос в ворде выставление параметров
Огромное спасибо!
Еще помогает восстановление системы (попробовал, получилось)
Спасибо!!!
Огромнейшее Вам спасибо!!! Ваш урок помог мне справиться с проблемой. Часто приходится копировать веб. документы, но пользоваться в табличном варианте не очень удобно. Очень счастлива, что нашла Вас!