Как найти макросы в тексте

Содержание

  1. Просмотр записанного макроса
  2. Использование макрорекордера в Word 2003/2007/2010. Запись, выполнение и просмотр макросов.
  3. Microsoft Word 2003
  4. Microsoft Word 2007
  5. Microsoft Word 2010
  6. Прямой доступ к макросам в документах MS WORD
  7. Введение
  8. 1. «Правильный» способ
  9. 2. Где живут макросы
  10. 3. Как получить доступ к потоку внутри документа
  11. 4. Как найти упакованный исходник внутри потока
  12. 5. Как распаковать текст
  13. 6. Некоторые замечания
  14. Заключение
  15. Microsoft Word, Binary Format, Structured storage, RtlDecompressBuffer, Структурированное хранилище, Поток, Макрос, Макровирус

Просмотр записанного макроса

Просмотр записанного макроса заключается в просмотре непосредственно сгенерированного текста кода VBA при его записи. Для этого, выполнив команду Сервис/Макрос/Редактор Visual Basic или нажав комбинацию клавиш [Alt+F11], откройте приложение Microsoft Visual Basic (рис.14.).

При запуске Редактора Visual Basic в этом приложения присутствуют три основных окна:

  • окно проекта;
  • окно свойств;
  • окно программы.

Окно проекта расположено слева вверху (рис. 14.) и содержит несколько папок. В нашем случае имеются папка Microsoft Excel Объекты, (рис.15.) в которой находятся объекты, с которыми производятся действия:

  • Лист1 (КомандировочноеУдостоверение);
  • Лист2 (ЖурналРегистрацииКУ);
  • ЭтаКнига (в которой записаны эти макросы).

Вторая папка — Модули, в которой находится элемент Модуль1 (рис. 14.), содержащий записанные макросы вывода на печать 1-й и 2-й страницы.

При создании диалоговых окон и форм может находиться и третья папка — Формы, но в этой книге она рассмотрена не будет.

Окно проекта предназначено для управления различными элементами проекта VBA и открывается с помощью команды Вид/Окно проекта.

Если обратиться к окну проекта, показанному на рис. 15. то в объекте Модули находится один элемент Модуль1. Это тот элемент, который создан автоматически при записи макросов вывода документов на печать.

Окно свойств находится в левом нижнем углу (рис. 14.).

В окне свойств перечисляются характеристики элементов проекта. Для изменения свойств элемента, выделите его в окне проекта и тогда его характеристики отобразятся в окне свойств. Если выделить элемент Модуль1, то в окне свойств отобразится его имя: Модуль1. Для изменения имени модуля в окне свойств измените значение свойства Name, введя новое имя — Печать (рис. 16.).

Окно программы самое большое и находится справа (рис. 14.).

Именно в нем происходит запись текста макроса на языке VBA. Окно программы имеет два режима просмотра:

  • представление полного модуля;
  • представление процедуры.

Переключение между этими режимами осуществляется с помощью кнопок, находящимися в левом нижнем углу окна программы.

В режиме представления процедуры отображается только один макрос. Для перехода к следующему макросу, его имя нужно выбрать в раскрывающемся списке в верхней части окна программы или воспользоваться клавишами [Ctrl +Page Up] и [Ctrl+Page Down].

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

Ознакомимся с кодом VBA макроса ПечатьЛицевойСтороны. Если окно программ закрыто, то для просмотра макроса в окне проекта активизируйте двойным нажатием на правую кнопку мыши элемент Печать объекта Модули.

Рис.14. Приложение Microsoft Visual Basic с записанными макросами вывода на печать лицевой и обратной стороны документа

Рис.15. Окно проекта

Рис.16. Окна Проектов и Свойств с переименованным элементом Модуль1 в элемент Печать

Исследование записанного макроса

Текст макроса в окне программы содержит следующие элементы (рис.14.):

  • ключевые слова Sub и End Sub, означающие начало и конец текста макроса, шрифт которых выделен синим цветом
  • имя макроса, которое следует за ключевым словом Sub начала макроса;
  • комментарии, шрифт которых выделен зеленым цветом;
  • код VBA или непосредственно записанные действия, которые выполняет макрос.

Комментарии. В нашем примере это те данные, которые вводились в диалоговое окно Запись макроса (рис. 12.). Строка комментария предназначена для описания действий и начинается с апострофа. Удаление комментариев никоим образом не влияет на выполнение макроса. Более подробно комментарии будут рассмотрены далее.

И, наконец, код записанных действий, выполняемых макросом: ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1 говорит о том, что с активного окна выделенного (активного) рабочего листа отправить на печать страницы с 1-й по 1-ю в количестве одной копии.

Текст макроса, который начинается и заканчивается ключевыми словами Sub и End Sub, называется подпрограммой или процедурой, что одно и то же.

Запуск записанных макросов на выполнение из приложения Excel

Запуск макросов на выполнение может осуществляться как из приложения Microsoft Visual Basic, так и из приложения Microsoft Excel. Из Excel выполнение макроса задается двумя способами:

  • используя комбинации назначенных клавиш при записи макроса [Ctrl+z] — печать лицевой стороны или [Ctrl+x], для печати обратной стороны командировочного удостоверения;
  • используя диалоговое окно Макрос.

Рис.17. Диалоговое окно Макрос

Диалоговое окно Макрос (рис. 17.) вызывается командой Сервис/Макрос/Макросы или комбинацией клавиш [Alt+F8]. Для выполнения макроса выделите в списке имя макроса и нажмите кнопку Выполнить.

С помощью этого же диалогового окна можно войти в выделенный в списке макрос, для чего нажмите на кнопку Войти. Это позволит открыть приложение Microsoft Visual Basic и в выбранном макросе будет выделена первая строка с ключевым кодом начала подпрограммы и его именем. Этот режим называется режимом отладки.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Источник

Использование макрорекордера в Word 2003/2007/2010. Запись, выполнение и просмотр макросов.

Если у Вас возник вопрос «Как использовать макрорекордер для записи макроса в Word?» то эта статья для Вашего внимания. Здесь как раз поочередно рассматривается процесс запуска макрорекордера и записи макросов в различных версиях Word. Для лучшего понимания того, что будет происходить, определим задачу — записать макрос, который будет выделять весь текст документа.

Microsoft Word 2003

Запускаем приложение, открываем в нем текстовый файл, заходим в главное меню Сервис/Макрос и выбираем пункт «Начать запись…»

Выбираем пункт меню «Начать запись» и в появившемся окне «Запись макроса», выбираем имя будущему макросу (я оставлю то имя, которое ему присвоено по умолчанию «Макрос1») и место его хранения. Местом хранения может быть сам файл документа, а может быть глобальный шаблон Normal.dot, аналог личной книги макросов Personal.xls, которая есть в Excel. При необходимости присваиваем будущему макросу сочетание горячих клавиш, при нажатии которых будет происходить выполнение (запуск) макроса. В этом примере не будем присваивать макросу никаких сочетаний клавиш, поле с описанием оставим без изменений и местом для сохранения выберем файл Normal.dot. Идем дальше, нажимаем кнопку ОК.

Макрорекордер включен, началась запись всех наших действий и одновременный их перевод на язык программирования Visual Basic for Application, сокращенно VBA. В начале этой статьи мы задались целью записать макрос, выделяющий всю текстовую область, поэтому нашим действием будет выделение текста в открытом файле. Для этого можно зайти в главное меню «Правка» и выбрать там пункт «Выделить все», а можно тоже самое сделать нажатием сочетания горячих клавиш Ctrl+A. Прекращаем запись нажатием кнопки «Остановить запись», для этого переходим туда же, откуда эту запись начинали, то есть в меню Сервис/Макрос.

Ну вот и все! Наш макрос записан. Осталось только убедиться, что он работает и посмотреть как он выглядит (если кому интересно). Перед выполнением макроса снимем выделение с текста, или откроем новый текстовый файл, зайдем в меню Сервис/Макрос/Макросы либо нажмем сочетание клавиш Alt+F8 (это сочетание актуально для всех приложений любых версий), выберем из списка макрос с нашим названием «Макрос1» и нажмем кнопку «Выполнить». Хочу обратить Ваше внимание на то, что с помощью этого окна можно не только запустить макрос, также можно удалить, изменить программный код и внести изменения в описание.

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

Чтобы просмотреть записанный нами макрос в виде программного кода, нужно запустить редактор Visual Basic через меню Сервис/Макрос/Редактор Visual Basic, либо нажатием сочетания клавиш Alt+F11 (это сочетание тоже актуально во всех версиях всех приложений). В открывшемся окне редактора видим проект Normal и в этом проекте новый модуль Module1, в котором и сохранен программный код нашего макроса.

Microsoft Word 2007

В окне приложения MS Word 2007 кнопку «Начать запись…» можно отыскать сразу в нескольких местах. Во-первых, это левый нижний угол экрана, как показано на рисунке ниже

Во-вторых, на ленте главного меню, на вкладке «Вид»

и наконец в-третьих, на специальной вкладке «Разработчик», где собраны все инструменты для работы с макросами. Вкладка «Разработчик» отключена по умолчанию, поэтому для использования этой вкладки ее необходимо предварительно отобразить на ленте.

Во время записи кнопка «Запись макроса» изменяет свое назначение на «Остановить запись» а также становится активной кнопка «Пауза», приостанавливающая запись макроса.

Выполнение макроса и просмотр его программного кода осуществляется абсолютно аналогично описанию из предыдущего раздела, поэтому я не буду повторяться, а перейду к Microsoft Word 2010. Не забываем об изменении настроек системы безопасности, если вдруг записанный Вами макрос не запускается.

Microsoft Word 2010

Если Вы перешли на приложения пакета MS Office 2010 после версии 2007, то кнопки «Запись макроса» и «Остановить запись» в версии Word 2010 будут расположены в привычных уже местах. Нахождение этих кнопок идентично предыдущей версии текстового редактора — это все тот же левый нижний угол экрана и две вкладки на ленте — «Вид» и «Разработчик» (подробнее о них написано в предыдущем разделе Microsoft Word 2007).

Сам процесс записи, просмотра и выполнения записанного макроса также полностью повторяет предыдущую версию. После установки офисного пакета 2010, я обнаружил, что по умолчанию редактор Visual Basic отсутствует, пришлось шагнуть назад и доустановить этот недостающий компонент. Называется он «Visual Basic для приложений» и находится в отдельном компоненте пакета под названием «Общие средства Office», так что не пугайтесь, если кнопка записи при первом на нее нажатии никак не среагировала на Ваши действия. Если же запись прошла успешно, но возникла проблема при запуске макроса, то скорее всего это связано с настройками системы безопасности.

Источник

Прямой доступ к макросам в документах MS WORD

. Я нарушил второе правило пользования
лифтом и вышел сквозь стену.

С. Лукьяненко. Неделя неудач.

Введение

Продолжаем разбалтывать «кошмарные тайны кровавой фирмы Microsoft». J

Иногда хочется посмотреть на исходный текст макросов, живущих внутри документов MS Word, особенно когда имеется подозрение на наличие в них какого-то злонамеренного кода — вируса или троянца. В данной статье будет рассмотрено несколько способов, как это можно сделать для документов MS Word версий 97, 2000 и XP, и как автоматизировать этот процесс.

1. «Правильный» способ

Вообще-то, Microsoft дает пользователю возможность посмотреть на исходный текст макроса, написанный на VBA:

  1. в меню «Сервис» выбрать пункт «Макрос»;
  2. потом выбрать «Макросы»;
  3. затем в появившемся списке выбрать желаемую строчку (например, «AutoOpen»);
  4. нажать на кнопку «Изменить»;
  5. и в окне редактора Visual Basic for Application узреть, наконец, вожделенный исходник.

Существуют ряд модификаций этого способа, связанных с использованием Организатора, с копированием макросов из документа в шаблон, с прямым вызовом редактора VBA по Alt-F11 и т.п. Но подобно дверям некрасовского «парадного подъезда», которые открывались далеко не для всех, этот способ не гарантирует успеха никому. Некоторые «привилегированные» макросы (например, большинство современных вирусов) таким образом увидеть невозможно.

Но ведь есть и другие подходы, которые Microsoft принципиально не желает документировать.

2. Где живут макросы

Мы уже знаем, что файл MS Word — это сложный объект, имеющий формат структурированного хранилища (structured storage), а вся полезная информация хранится в нем в виде потоков (streams).

В MS Word 6.0/7.0 макросы находились вместе с текстом документа в одном общем потоке с именем «Word Document«.

В более поздних версиях программные компоненты, живущие внутри документа, организованы уже не в виде множества отдельных макросов, а в виде так называемого VBA-проекта, который физически «размазан» по различным потокам.

Кроме того, внутри документа MS Word одновременно могут присутствовать стразу ТРИ формы представления одного и того же макроса.

Во-первых, это исходный текст макроса, так называемый s-code. Он не виден «на просвет» внутри файла, т.к. сжат алгоритмом LZNT1.

Во-вторых, это результ компиляции текстового исходника в двоичный образ — так называемый псевдокод (или p-code). Он может исполняться виртуальной машиной MS Word.

Наконец, это подготовленный к исполнению exe-code (или ex- code, или executable code). Он присутствует не всегда, но если присутствует, то исполняется виртуальной машиной MS Word именно он.

S-code и p-code живут в потоках:

  • «newmacros» (обычно, это «свежесозданные» пользователем макросы);
  • «thisdocument» (обычно, это «служебные» макросы и вирусы, размножающиеся при помощи методов Import/Export);
  • в потоках с именами макросных модулей (например, макросы вируса Macro.Word97.Emlitch, размножающегося при помощи OrganizerCopy, живут в потоке с именем sfc).

Характерной особенностью всех таких потоков является сигнатура 01 16h 01.

Exe-code живет в потоках с именами «__srp_0«, «__srp_1» и т.п.

3. Как получить доступ к потоку внутри документа

Зная формат структурированного хранилища, можно самостоятельно написать программу сканирования файла. Но мы пойдем другим путем.

Библиотека OLE2.DLL содержит средства для работы со структурированными хранилищами. Функция stgIsStorageFile() возвращает для файла признак, является ли он структурированным хранилищем или нет. Функция stgOpenStorage() открывает файл хранилища и возвращает «интерфейс» IStorage. Это — объект класса, содержащего свойства и методы для работы со структурированными хранилищами:

  • IStorage::OpenStorage() — открывает подкаталог, возвращая интерфейс для доступа к подчиненным каталогам;
  • IStorage::Release() — закрывает подкаталог;
  • IStorage::EnumElements() — возвращает интерефейс перечислителя с методами Next(), Skip(), Reset() и т.п.;
  • IStorage::OpenStream() — открывает поток, возвращая интерефейс IStream с методами Read(), Write() и т.п.

Вот пример программы, сканирующей для указанного DOC-файла внутренние потоки.

Недостатки подхода: невысокое быстродействие и проблемы доступа к запароленным и «слегка испорченным» документам.

4. Как найти упакованный исходник внутри потока

Упакованные исходные тексты макросов хранятся в потоках с сигнатурой 01 16h 01. В начале потока расположен заголовок, после него лежит блок p-code, а конец потока занимает s-code макроса. Довольно часто (примерно в 80% случаев) в заголовке по смещению 0Dh располагается 2-байтовый адрес в потоке для s-code. Но в 20% случаев в этом поле заголовка находится значение -1 (FF FF), и это означает, что s-code придется искать по-другому.

Есть «правильный» метод поиска, но он довольно зануден, поэтому я предлагаю более простой подход. Он основан на том, что s-code лежит во второй половине потока и организован в виде нескольких фрагментов упакованных данных (так называемых «чунков» — chunks). Первый из них имеет в начале сигнатуру, которую можно найти по маске 01 yz Bx, где xyz представляет собой 12-битовую длину чунка минус 3.

Например, макрос вируса Macro.Word97.TNT имеет по смещению 15В9h три байта 01 63h B6h. Это означает начало упакованного чунка длиной 663h+3=666h байтов.

Вот пример процедуры, находящей внутри потока начало упакованного s-code:

5. Как распаковать текст

Как уже отмечалось, s-code упакован алгоритмом LZNT1. Это вариант классического алгоритма LZ77 (самого первого из алгоритмов, придуманных Лемпелом и Зивом), отличающийся от своих многочисленных собратьев лишь способом кодировки выходного потока. (Кстати, алгоритм, примененный фирмой Microsoft в утилитах COMPRESS/EXPAND и в библиотеках LZEXPAND/ LZ32, реализует похожий, но чуть-чуть другой вариант LZ77).

Разобравшись в алгоритме (кстати, это очень интересно и поучительно!), можно написать собственный распаковщик, но мы в данной статье воспользуемся недокументированной функцией RtlDecompressBuffer(), живущей в библиотеке NTDLL.DLL из-под Windows NT/2000/XP.

Вот пример процедуры, распаковывающей исходный текст макроса и выводящей его на экран:

Недостаток метода: невозможность работы в Windows 95/98/ME.

6. Некоторые замечания

Вообще-то, можно также получить исходный текст макроса, декомпилировав p-code или exe-code. Профессиональные вирусологи именно так и делают, а потом анализируют алгоритмы макровирусов по декомпилированному и «очищенному» исходнику, в котором все «разложено по полочкам», отсутствуют лишние пробелы, пустые строки, комментарии и «заковыристые» имена переменных.

Кстати, Весселин Бончев даже опубликовал несколько лет назад статью, в которой с веселым изумлением обратил внимание общественности, что в процессе подобного анализа вирусологи фактически СОЗДАЮТ НОВЫЕ ВЕРСИИ ВИРУСОВ, и поэтому вполне могут быть за это посажены за решетку (особенно с учетом законопослушного до идиотизма западного менталитета).

Ну а мы будем просто смотреть на «авторский» текст.

Наличие вирусов в исходнике можно заподозрить, встретив методы Export/Import и/или OrganizerCopy. Также имеет смысл встревожиться, обнаружив методы типа AddFromFile, InsertLines, ReplaceLines и т.п., которые позволяют формировать текст копии макроса из отдельных строк. В принципе, этот процесс очень несложно автоматизировать.

Кроме того, пора бить тревогу, если исходник выглядит «страшненько», например, как вот этот фрагмент знаменитого (среди вирусологов) полиморфного макровируса PolyMac (он же Chydow):

Автоматизировать процесс распознавания такого рода заразы можно, лишь эмулируя исполнение p-code или exe-code и декодируя таким образом «тушку» вируса. «Но это уже совсем другая история».

Заключение

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

Дабы избежать некоторой порции упреков, спешу сообщить, что для решения некоторых рассмотренных выше задач я знаю более быстрые и мощные методы и алгоритмы. Но в статье были рассмотрены простые «заменители» для этих алгоритмов и методов, которые, тем не менее, позволили бы в итоге все-таки решить задачу. Удачно ли у меня получилось — решать Вам.

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

Выражаю признательность участнику проекта «антивирус Stop!» А. Каримову, в беседах с которым родились (и, надеюсь, будут продолжать рождаться) все мои статьи, посвященные исследованиям формата документов MS Word.

Вот пока и все. Благодарю за внимание.

С глубочайшим почтением и искреннейшей преданностию есмь, милостивые государи, Ваш покорный слуга,

(с) Климентьев К.Е. aka DrMad (drmad (at) dr.com),
Самара 2003-04

Статья написана специально для UInC (http://www.uinc.ru).

Microsoft Word, Binary Format, Structured storage, RtlDecompressBuffer, Структурированное хранилище, Поток, Макрос, Макровирус

Все документы и программы на этом сайте собраны ТОЛЬКО для образовательных целей, мы не отвечаем ни за какие последствия, которые имели место как следствие использования этих материаловпрограмм. Вы используете все вышеперечисленное на свой страх и риск.

Любые материалы с этого сайта не могут быть скопированы без разрешения автора или администрации.

Источник

Хитрости »

1 Май 2011              465818 просмотров


Что такое макрос и где его искать?

Скачать файл, используемый в видеоуроке:

  Tips_Macro_Basic_Video.xls (63,5 KiB, 4 011 скачиваний)


Наверное, многие слышали это слово “макрос“, но не все имеют точное представление что это, если заглянули на эту страничку.

Макрос

– это макрокоманда(так звучит в правильном переводе с англ.языка), содержащая последовательность действий, записанных пользователем. Запись производится с помощью встроенного в пакет Microsoft Office языка программирования – Visual Basic for Application(VBA).

Зачем же нужны макросы? А нужны они для того, чтобы избавить Вас от рутинного выполнения одних и тех же действий. Например, Вам каждый день приходиться удалять из ежедневных отчетов по несколько столбцов и добавлять новые строки для шапки и т.п. Скучно и утомительно. Вы просто можете записать один раз все эти действия макрорекордером, а в дальнейшем только вызывать записанный макрос и он все сделает за Вас. Что немаловажно, для использования макрорекордера и записи макроса не надо обладать никакими навыками программирования.
В этой статье:

  • Подготовка к записи макроса
  • Запись макроса
  • Параметры записи макроса
  • Воспроизведение макроса
  • В каких файлах можно хранить макросы?
ПОДГОТОВКА К ЗАПИСИ МАКРОСА

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

  • Excel 2003:
    Сервис-Безопасность-Уровень макросов “Низкий”
  • Excel 2007:
    Кнопка ОфисПараметры Excel (Excel Options)Центр управления безопасностью (Trust Centr)Параметры центра управления безопасностью (Trust Centr Settings)Параметры макросов (Macro Settings)Разрешить все макросы (Enable All Macros)
  • Excel 2010:
    Файл (File)Параметры (Options)Центр управления безопасностью (Trust Centr)Параметры центра управления безопасностью (Trust Centr Settings)Параметры макросов (Macro Settings)Разрешить все макросы (Enable All Macros)
  • После изменения параметров безопасности макросов необходимо перезапустить приложение Excel: закрыть его полностью и открыть заново. Только после этого изменения вступят в силу.

Прежде чем начать записывать макрос необходимо помнить следующее:

  • Макрорекордер записывает АБСОЛЮТНО ВСЕ ваши действия – ошибки, прокручивание экрана, переключение между листами, выделение ячеек и т.д. Поэтому перед записью своих действий необходимо сначала тщательно продумать все свои действия, чтобы в дальнейшем записать только то, что действительно необходимо записать и в дальнейшем воспроизвести. Это сократит как сам код, так и время его выполнения
  • Макрорекордер записывает действия выполненные только в пределах Microsoft Excel. Если вы переключитесь в другое приложение – действия в этой программе записаны не будут. Если закроете Excel – запись прекратится
  • Макрорекордер может записать только те действия, которые можно проделать вручную(те, которые доступны для выполнения из меню и с панелей)
  • Если во время кода вы совершили ошибочное действие и нажали кнопку отмены(Ctrl+Z) – отмененное действие не будет записано в макрос, как будто вы его просто не делали
ЗАПИСЬ МАКРОСА

Для пользователей Excel 2003 запись макроса возможна через меню:
СервисМакрос Начать Запись
Начать запись

Для пользователей Excel 2007-2010 и старше:

ПАРАМЕТРЫ ЗАПИСИ МАКРОСА

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

Имя макроса

– не должно содержать пробелов, запятых, двоеточий и т.п. Допустимы символы кириллицы, латиницы, цифры и нижнее подчеркивание (я рекомендую давать макросам имена, содержащие только буквы латиницы). Имя макроса всегда должно начинаться с буквы и не должно совпадать со встроенным именем Excel или именем другого объекта в книге (например, не должно носить имя Workbook, Cells или ЭтаКнига). Лучше давать макросу сразу понятное имя, отражающее примерную суть того, что он делает.

Сочетание клавиш

– можно назначить вызов макроса сочетанием клавиш. Доступно назначение любой цифры или буквы в сочетании с Ctrl.

Сохранить в

– выбираете место хранения записываемого макроса. Доступны варианты:

  • Эта книга (This Workbook) – макрос будет записан в той же книге, из которой была запущена запись. Записанный макрос будет доступен из приложения только если книга открыта
  • Новая книга (New Workbook) – будет создана новая книга, в которой записан макроса. Записанный макрос будет доступен из приложения только если книга открыта
  • Личная книга макросов (Personal Macro Workbook) – самый интересный вариант. Если его выбрать, то макрос будет сохранен в отдельной книге PERSONAL.XLS (для Excel 2007 и выше – PERSONAL.XLSB). Макросы, записанные в эту книгу доступны из всех открытых книг Excel и эта книга подключается автоматически при запуске самого Excel. Т.е. однажды записав где-то макрос в эту книгу – он теперь будет доступен из любой книги независимо от того, открыта ли книга, из которой был записан макрос или нет. Изначально эта книга отсутствует и создается в момент первого обращения к ней (т.е. как только вы первый раз выбрали Сохранить в личную книгу макросов)
ВОСПРОИЗВЕДЕНИЕ МАКРОСА

После записи макроса запустить его можно разными способами:

  1. ПРИ ПОМОЩИ СОЧЕТАНИЯ КЛАВИШ: Alt+F8
    Этот способ универсальный и его можно использовать из любой версии Excel. Достаточно нажать сочетание клавиш Alt+F8 и выбрать нужный макрос из списка:
    Вызов макроса
  2. ВЫЗОВ ИЗ МЕНЮ:
    Excel 2007-2010 и старше: вкладка Разработчик (Developer)Макросы (Macros)
    Excel 2003: СервисМакросМакросы
  3. НАЖАТИЕМ СОБСТВЕННОЙ КНОПКИ НА ЛИСТЕ:
    Можно разместить на листе собственную кнопку, по нажатии которой будет запускаться записанный макрос. Подробно этот процесс я описал в статье: Как создать кнопку для вызова макроса на листе
  4. ПРИ ПОМОЩИ НАЗНАЧЕННЫХ МАКРОСУ ГОРЯЧИХ КЛАВИШ:
    Если вы перед записью назначили макросу сочетание клавиш, то вы также можете вызвать этот макрос и нажатием данного сочетания. Горячие клавиши макросу можно назначить и после записи: Alt+F8→ Выделяем нужный макрос→ Параметры (Options).
  5. ПРИ НАСТУПЛЕНИИ ОПРЕДЕЛЕННОГО СОБЫТИЯ В ЛИСТЕ ИЛИ КНИГЕ:

    Прежде чем пробовать использовать этот метод рекомендуется изучить статью Что такое модуль? Какие бывают модули?Для этого сначала необходимо вставить код макроса в тело событийной процедуры (подробнее про событийные процедуры). Например, если выбрать процедуру листа Change, то в лист автоматически будет вставлена пустая процедура:

    Private Sub Worksheet_Change(ByVal Target As Range)
     
    End Sub

    Если ранее вами был записан код выделения и удаления двух столбцов – Макрос1:

    Sub Макрос1()
    '
    ' Макрос1 Макрос
    ' макрос удаляет столбцы C и D из активного листа
    '
    ' Сочетание клавиш: Ctrl+Shift+Q
    '
        Columns("C:D").Select
        Selection.Delete Shift:=xlToLeft
    End Sub

    То для выполнения это кода при наступлении события изменения на листе можно вставить вызов этого макроса:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Call Макрос1
    End Sub

    или вставить сам код (без Sub и End Sub) внутрь процедуры Worksheet_Change:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Columns("C:D").Select
        Selection.Delete Shift:=xlToLeft
    End Sub
В каких файлах можно хранить макросы?

Как ни странно, но начиная с версии 2007 Excel не все файлы могут хранить макросы. Это значит, что если макрос был записан в файле и потом файл был сохранен в формате, который хранение макросов не поддерживает – макросы пропадут. Как правило Excel в таком случае выдаст предупреждение о том, что проект VBA в файле этого формата не может быть сохранен и будет удален, если нажать Да:
Сохранение без макросов
Чтобы сохранить файл с поддержкой макросов необходимо будет нажать Нет и из списка форматов выбрать тот, который поддерживает хранение макросов.
Ниже приведены форматы файлов, применяемые в Excel с описанием того, можно ли в них хранить макросы(VBA коды):

  • *.xls – формат книги Excel 97–2003 (поддержка VBA, макросов)
  • *.xla – надстройка Excel 97–2003 (поддержка VBA, макросов)
  • *.xlsx – формат книги Excel 2007 по умолчанию без поддержки макросов
  • *.xlsm – книга Excel 2007 с поддержкой макросов
  • *.xlsb – двоичный формат для больших объемов данных (с поддержкой VBA, макросов)
  • *.xltx – шаблон книги Excel 2007 без поддержки макросов
  • *.xltm – шаблон книги Excel 2007 с поддержкой макросов
  • *.xlam – надстройка Excel 2007

Для смены формата файла его необходимо сохранить в другом формате:

  • Excel 2007: Кнопка ОфисСохранить как(SaveAs) -Выбрать необходимый формат файла
  • Excel 2010: Файл(File)Сохранить как(SaveAs) -Выбрать необходимый формат файла

Теперь несложно понять, что хранить макросы в версиях Excel 2007 и выше можно в форматах: xls, xla, xlsm, xlsb, xltm, xlsm.

Также см.:
Почему не работает макрос?
Как создать кнопку для вызова макроса на листе?
Select и Activate – зачем нужны и нужны ли?
Как ускорить и оптимизировать код VBA


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

  • Что такое макрос простыми словами

  • Что такое макросы в Word, как настроить и найти макрос

  • Что такое макросы в Excel, как настроить

  • Как работать с макросами

  • Как создать запись макроса

  • Применение макросов в документе Ворд и Excel

  • Заключение

В статье рассмотрим вопрос, что такое макросы в Word  и в программе Excel. На практике будет показано, как использовать макросы. С помощью макросов вы сможете упростить работу с документами Майкрософт Офис Ворд.

Что такое макрос простыми словами

Что такое макросы в WordЗдравствуйте, друзья! Начинающие пользователи программы Майкрософт Офис Ворд и других программ, задаются вопросом, что такое макрос? Ведь об этом названии впервые услышали, и хотелось бы рассмотреть его подробно.

Итак, макрос – это программа на основе программного кода, которая встроена в Ворде, Excel, Пауер Поинт. Она написана на языке перечисленных программ и имеет набор команд. С помощью макроса можно записать какое-либо действие в документе и автоматически его воспроизвести в другом файле.

Если вы часто работаете с объемными документами, заполняете таблицы, то макросы здесь просто необходимы. Иногда мы пишем в документах одну и ту же нумерацию, проставляем различные списки. Если работать с макросами – этого труда можно избежать. Зато вы сэкономите свое время.

Далее рассмотрим работу с макросами в Ворде и в программе Excel.

к оглавлению ↑

Что такое макросы в Word, как настроить и найти макрос

Что такое макросы в Word? Как говорилось ранее, это инструмент для записи действий (их программирование). Чтобы пользоваться макросом, необходимо его настроить и найти на панели управления в Ворде.

Для настройки макросов в Ворде откройте программу Word 2007 на компьютере или другую версию. Далее нажмите вверху слева на логотип программы и кликните по кнопке Параметры Word (скрин 1).

Что такое макрос

В основных настройках установите маркер перед словом «Показывать вкладку Разработчик на ленте» (скрин 2).

макрос это

Это позволит вам найти инструмент Макросы. Также они находятся во вкладке «Вид».

Далее нажимаете кнопку «Центр управления безопасностью» и активируете раздел «Включить все макросы», внизу устанавливаете галочку – «Доверять доступ к объектной модели VBA» (скрин 3).

настройка макроса

Данные настройки помогут избежать ошибок во время работы с макросами. В других версиях Ворда, макросы настраиваются по схожему принципу.

к оглавлению ↑

Что такое макросы в Excel, как настроить

Макросы в программе Excel работают и настраиваются так же, как и в программе Ворд. Вы можете один раз произвести настройку макросов в Ворде и эта настройка перенесется в в Excel или Пауер Поинт.

Далее поработаем с макросами на практике.

Как работать с макросами

Работу с макросами можно разделить на два способа: сторонними программами и автоматическую. Если говорить о первом варианте, то для этого нужно установить специальные программы на компьютер. Если не хотите разбираться с программами, можно воспользоваться встроенной программой в Майкрософт Офис Ворд по работе с макросами. Давайте ее разберем.

Итак, чтобы записать макрос в Ворде или в Excel, следуйте инструкции:

  1. Настройте макросы.
  2. Откройте документ.
  3. Нажмите по разделу разработчик и нажмите Записать макрос.
  4. Далее напишите что-нибудь в документе.
  5. После чего нажмите «Остановить запись».
  6. Затем откройте другой документ жмите на раздел «Разработчик» далее «Макросы».
  7. Выберите нужный макрос из списка и кликните кнопку «Выполнить». После чего программа вставит записанный текст автоматически.

Далее эту инструкцию разберем пошагово.

к оглавлению ↑

Как создать запись макроса

Чтобы записать макрос, запустите пустой текстовый документ или с текстом. Далее нажмите по разделу «Разработчик», затем кнопку «Запись макроса» (скрин 4).

что такое макросы в word

В открытом окне пропишите имя макроса, установите кнопку «OK», чтобы началась запись. В процессе записи вы можете написать что-нибудь, например, Привет как дела? Далее нажмите кнопку «Остановить запись» и сохраните документ.

Программа Excel работает с макросами так же, как и Ворд. Нажимаете на вкладку «Разработчик», далее «Запись макроса» (скрин 5).

что такое макросы в эксель

Затем заполняете таблицу, останавливаете запись макроса и снова сохраняете документ.

Далее разберем, как записанный макрос применять в Ворде и Excel.

к оглавлению ↑

Применение макросов в документе Ворд и Excel

Итак, чтобы применить макросы в Ворде, нажмите раздел «Разработчик» в новом документе. Далее кликните «Макросы». Из списка макросов выберите тот, который ранее использовали и нажмите кнопку «Выполнить» (скрин 6).

работа макроса

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

Как работает макрос в Excel? Все просто. Также нажимаете кнопку «Разработчик» далее «Макрос». Выбираете макросы и жмете по ним. Затем, надо нажать кнопку «Выполнить», чтобы записанный текст или числа вставились в таблицу.

к оглавлению ↑

Заключение

Сегодня был показано на практике, что такое макросы в Word  и программе Excel. Аналогично, макросы работают и Power Point. Макрос – это простой инструмент для записи действий в документах. Вы можете один раз записать какой-нибудь текст, чтобы потом его не переписывать заново. Это намного лучше, чем тратить время на лишнюю работу.

Спасибо за внимание!

С уважением, Иван Кунпан.

Статьи по Ворду:

Рисование в Ворде, нумерация таблиц в Ворде, как создать диаграмму в Ворд, как пронумеровать строки в Ворде.

Просмотров: 7821

Excel для Microsoft 365 Word для Microsoft 365 PowerPoint для Microsoft 365 Excel 2021 Word 2021 PowerPoint 2021 Excel 2019 Word 2019 PowerPoint 2019 Excel 2016 Word 2016 PowerPoint 2016 Excel 2013 Word 2013 PowerPoint 2013 Excel 2010 Word 2010 PowerPoint 2010 Еще…Меньше

Инспектор документов обнаружил в документе Office (Word, Excel или PowerPoint) один или несколько следующих элементов, которые могут содержать скрытые данные:

  • макросы (включая любые макросы WordBasic в документах Word или листы макросов Excel 4.0 (XLM) в книгах Excel);

  • модули VBA;

  • элементы COM или ActiveX;

  • формы пользователей (включая любые формы Excel 5.0 в книгах Excel);

  • пользовательские функции в книгах Excel.

Проблема

Инспектор документов не может удалить эти элементы, потому что в результате документ может перестать работать надлежащим образом.

Рекомендуемое решение

  1. Закройте инспектор документов.

  2. Вручную удалите все макросы, модули VBA, элементы COM или ActiveX, формы пользователей и пользовательские функции, которые могут содержать скрытые данные.

    Чтобы найти макросы и модули VBA в документе, сделайте следующее:

    • В Word или Excel выберите Вид > Макрос > Макросы.

      В PowerPoint выберите Вид > Макрос.

      В окне Макрос выберите макрос, который хотите удалить, и нажмите кнопку Удалить.

    • Чтобы найти макросы в редакторе VBA, нажмите клавиши ALT+F11.

  3. Чтобы убедиться, что проблема устранена, выберите Файл > Сведения > Поиск проблем > Инспектор документов.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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

3 / 3 / 0

Регистрация: 23.09.2012

Сообщений: 27

1

Как посмотреть коды макросов в документе

18.11.2012, 12:43. Показов 30330. Ответов 6


Студворк — интернет-сервис помощи студентам

Дан макровирус в Word на Visual Basic. Нужно разобрать, что он делает. Как мне открыть и увидеть исходный код вируса?



0



es geht mir gut

11264 / 4746 / 1183

Регистрация: 27.07.2011

Сообщений: 11,437

18.11.2012, 12:53

2

Разработчик => Просмотр кода



1



3 / 3 / 0

Регистрация: 23.09.2012

Сообщений: 27

18.11.2012, 12:57

 [ТС]

3

SoftIce, что то я там такого не увидел(((



0



es geht mir gut

11264 / 4746 / 1183

Регистрация: 27.07.2011

Сообщений: 11,437

18.11.2012, 13:05

4

Кнопка Office => Параметры Excel => Поставить галку “Показывать вкладку “Разработчик” на ленте”

Или просто Вид => Макросы => Макросы и выбираешь макрос.

Или Alt+F11



1



3 / 3 / 0

Регистрация: 23.09.2012

Сообщений: 27

18.11.2012, 13:08

 [ТС]

5

Стоит пароль(((((((((((



0



es geht mir gut

11264 / 4746 / 1183

Регистрация: 27.07.2011

Сообщений: 11,437

18.11.2012, 13:10

6

Только не надо его сюда вываливать

Цитата
Сообщение от unknown
Посмотреть сообщение

Стоит пароль

Цитата
Сообщение от SoftIce
Посмотреть сообщение

Или Alt+F11

Тоже не получается?



0



3 / 3 / 0

Регистрация: 23.09.2012

Сообщений: 27

18.11.2012, 13:19

 [ТС]

7

SoftIce, неа. скачал OpenOffice и через него открыл))) Спасиб)))



0



Добавить комментарий