Как работают макросы в Excel и какие задачи они решают
Общий принцип работы макросов такой:
- Пользователь записывает последовательность действий, которые нужно выполнить в Excel, — о том, как это сделать, поговорим .
- Excel обрабатывает эти действия и создаёт для них одну общую команду. Получается макрос.
- Пользователь запускает этот макрос, когда ему нужно выполнить эту же последовательность действий ещё раз. При записи макроса можно задать комбинацию клавиш или создать новую кнопку на главной панели Excel — если нажать на них, макрос запустится автоматически.
Макросы могут выполнять любые действия, которые в них запишет пользователь. Вот некоторые команды, которые они умеют делать в Excel:
- Автоматизировать повторяющиеся процедуры.
Например, если пользователю нужно каждый месяц собирать отчёты из нескольких файлов в один, а порядок действий каждый раз один и тот же, можно записать макрос и запускать его ежемесячно. - Объединять работу нескольких программ Microsoft Office.
Например, с помощью одного макроса можно создать таблицу в Excel, вставить и сохранить её в документе Word и затем отправить в письме по Outlook. - Искать ячейки с данными и переносить их в другие файлы.
Этот макрос пригодится, когда нужно найти информацию в нескольких объёмных документах. Макрос самостоятельно отыщет её и принесёт в заданный файл за несколько секунд. - Форматировать таблицы и заполнять их текстом.
Например, если нужно привести несколько таблиц к одному виду и дополнить их новыми данными, можно записать макрос при форматировании первой таблицы и потом применить его ко всем остальным. - Создавать шаблоны для ввода данных.
Команда подойдёт, когда, например, нужно создать анкету для сбора данных от сотрудников. С помощью макроса можно сформировать такой шаблон и разослать его по корпоративной почте. - Создавать новые функции Excel.
Если пользователю понадобятся дополнительные функции, которых ещё нет в Excel, он сможет записать их самостоятельно. Все базовые функции Excel — это тоже макросы.
Запись макроса для открытия определенных книг при запуске Excel
CreateBackup:=False указать с каким знаю как в Personal.xlsb. Уже записанные доступная еще одна в личной книгеОткройте вкладку вам полезна. ПросимНет языке. Эта страница «, All Files FileName = Left(FileName,Переделал макрос Save_Copy_As файл под имененм суффикс — дату: Я Вам уже диалог?End Sub именем, куда и редакторе открыть Personal?Когда в нее макросы книга Personal.xlsb. Кликните
макросов. Нажмите кнопкуРазработчик вас уделить пару. переведена автоматически, поэтому (*.*),*.*», _ Title:=»Сохранение Len(FileName) — Len(sExp)) так, что путь открытого файла!», vbCritical и время сохранения? целый пример накатал
Dim sFileName Asне подходят, т.к. с какими паролями в VBA открываю удалять не нужно. на «плюсик» слева «Да», чтобы макрос
и нажмите кнопку секунд и сообщить,Сохранить в виде книги ее текст может копии файла») ‘задать & sSuff & последнего сохранения копии + vbYesNo, «Ошибка»
(ну, например, Имя_моего_рабочего_файла(01-06-2010 — чем он String, sExpansion As это как раз сохранить файл. А View->Project, то вижу Они не будут
на против этой запускался при каждомЗапись макроса
помогла ли она без поддержки макросов, содержать неточности и путь сохранения и
sExp ‘ например, запоминается в самомGoTo BEGIN_ 14-30).xls не устраивает? Выбор
String и есть описанный потом закрыть тот среди объектов только между собой конфликтовать
книги, чтобы раскрыть запуске Excel.. вам, с помощью выбрав
грамматические ошибки. Для имя копии файла «Книга1 .xls»
файле в коллекцииEnd IfThe_Prist через диалог, сохраняетBEGIN_: мною выше второй сетевой, видный для
Лист1,2,3,и ЭтаКнига. все. если соблюдать одно проект книги Personal.xlsb.
Каждый раз при запускеВ поле кнопок внизу страницы.Да нас важно, чтобы в окне выбора On Error Resume NamesThisWorkbook.Password = «1»:SetAttr: SetAttr ThisWorkbook.FullName, vbReadOnly куда укажешь иsFileName = ThisWorkbook.Name случай. всех, файл и. Если Insert->Module?, то простое правило – А после двойным Excel автоматически будутИмя макроса
Если Insert->Module?, то простое правило – А после двойным Excel автоматически будутИмя макроса
Для удобства также. эта статья была If VarType(FileName) = Next sDirPath =Два дня поюзал ThisWorkbook.FullName, vbReadOnlyAlex_ST
с паролем, даsExpansion = Right(sFileName,tolikt открыть свой рабочий.
Безопасность макросов в Excel
Прежде чем включить макросы на своих листах, важно понять, насколько опасными они могут быть. Хотя коды VBA очень эффективны для автоматизации сложных и повторяющихся задач, они представляют собой значительный источник риска с точки зрения безопасности
Вредоносный макрос, который вы запускаете непреднамеренно, может повредить или полностью удалить файлы на вашем жестком диске, испортить ваши данные и даже повредить вашу установку Microsoft Office. По этой причине в Excel по умолчанию отключены все макросы с уведомлением
Хотя коды VBA очень эффективны для автоматизации сложных и повторяющихся задач, они представляют собой значительный источник риска с точки зрения безопасности. Вредоносный макрос, который вы запускаете непреднамеренно, может повредить или полностью удалить файлы на вашем жестком диске, испортить ваши данные и даже повредить вашу установку Microsoft Office. По этой причине в Excel по умолчанию отключены все макросы с уведомлением.
Как избежать этих опасностей? Просто следуйте одному простому правилу: включайте только безопасные макросы — те, которые вы написали или записали сами, макросы из надежных источников и коды VBA, которые вы просмотрели и полностью поняли.
Активация и выключение макросов во вкладке Разработчика
Сразу стоит отметить, что в процессе выполнения этой задачи некоторые пользователи могут столкнуться с трудностями. Все из-за того, что вкладка “Разработчик” по умолчанию выключена и ее, для начала, нужно активировать.
- Щелкаем левой кнопкой мыши по меню «Файл».
- Затем, внизу раскрывшегося списка выбираем пункт «Параметры».
- В параметрах программы нас интересует пункт «Настройка ленты». Далее ставим галочку напротив вкладки “Разработчик”. Теперь подтверждаем действие нажатием кнопки «OK».
По завершении этих действий вкладка «Разработчик» будет активирована. Теперь можно приступить к включением макросов.
Щелкаем по вкладке “Разработчик”. В левом углу будет находиться требуемый раздел, где нажимаем кнопку «Безопасность макросов» в виде восклицательного знака.
В появившемся окне с настройками можно активировать сразу все макросы. Для этого необходимо выбрать из всех предложенных параметров вариант “Включить все макросы”
Нажатием кнопки “OK” подтверждаем внесенные изменения и выходим из параметров.
Однако, следует обратить внимание на то, что разработчики Microsoft не рекомендуют выбирать этот вариант, так как есть вероятность запуска опасной программы, что может навредить компьютеру. Поэтому, выполняя эту операцию, помните, что вы действуете на свой страх и риск.
Деактивация макросов происходит в том же диалоговом окне. Однако, при выключении пользователю будет предложено сразу три варианта с разной степенью безопасности.
Как следует из названия, в самом нижнем варианте исправно будут работать все макросы, имеющие цифровую подпись. А в двух первых вариантах они будут отключены полностью. После того, как мы сделали выбор, нажимаем кнопку «OK».
Причины
Для начала стоит разобраться, почему не работает макрос в Excel, ведь от этого зависят дальнейшие шаги. К основным причинам стоит отнести:
- Функция отключена.
- Отключение отслеживания событий.
- Устаревшая операционная система.
- Несоответствие разработчика пакета офисных приложений.
- Устаревшая версия Майкрософт Офис.
- Неактивированная версия Excel.
- Заблокированный файл.
- Неправильные настройки безопасности.
- Отсутствие необходимой библиотеки и т. д.
Выше рассмотрены основные причины, почему не удается выполнить макрос в Excel. Все они могут быть решены самостоятельно с помощью приведенных ниже рекомендации. Подробнее на решении вопроса остановимся ниже.
Ответ на пост «Ответ на пост *разочарование ‘»
Вы молодец. Действительно. Сейчас расскажу, почему я так считаю:
Вспоминаю 92-93 годы. У отца на работе был рабочий компьютер. Выдали по должности, звание на тот момент не помню какое, кэпом был то ли третьего ранга, то ли второго. Камчатка, в\ч 90129. Он его мне домой тогда припер, типа разбирайся. Комп древний даже по тем меркам: 286 XT с монохромным CGA/Hercules с матричным принтером Epson FX-800. Читал со словарем мануал от принтера, настроил DIP микропереключателями русский язык на печать. Купил на свои заработанные деньги две дискеты 5`25 (по 100рублей, TDK, помню) — ходил по знакомым (в Петропавловске-Камчатском в то время 12 летнему пацану это было сложно), скопировал себе Basic и несколько игр. Взял в библиотеке книгу детскую по Бейсику, ели нашел.
Завел тетрадку, туда всё переписывал. До этого ходил на курсы в компьютерный клуб, изучил на Ямахах MSX язык Лого, так что опыт был.
Зашел как-то разговор с отцом, что у него сидят 10 или 12 тетенек-бухгалтеров и считают на калькуляторах и счетах нормы выдачи военнослужащим разных продуктов. Точно сейчас не помню, но смысл был такой: военная часть, на каждую единицу л\с определенная норма продуктов. На кораблях чуть по другому, на лодках тоже иначе. Частей военных нашем регионе было много, кораблей много, лодок хватало. Я написал программу, которая выводила на печать то, что эти тетеньки считали вручную. И за пару недель всё сделал. Отец отнес распечатки в бухгалтерию, те проверили и ОКАЗАЛОСЬ, что всё точно))
Не знаю уж как, но мне выплатили зарплату в 10000 рублей. Официально никак, но потом отец рассказывал, что тетки вроде сами передали мне. Сколько это точно не помню, но хлеб стоил на Камчатке около 50р, машину помыть стоило 100-200р, газету с программой ТВ я покупал в типографии за 4р, а продавал по 10р)) Ну и кроме этого у меня появился новый комп c цветным VGA монитором с принтером Epson FX-1000, который стоил как Жигули новые, но это совсем другая история.
Так вот. Отец этим меня реально мотивировал изучить комп, программирование, что потом мне в жизни очень пригодилось. Ведущим программистом Гугла я конечно не стал, но высшее образование в этой сфере получил, в начале создания российских интернет карт поучаствовал, а потом тяга к машинам взяла своё и ушел в чип-тюнинг (пишу программы для моторов) и корчестроительство. Я ему благодарен.
-
Программа блютуз сканер для виндовс
-
Как удалить сохранения victoria 2
-
Учет режима труда и отдыха водителей в ворде
-
1с настройка видимости по ролям
- Vba excel копирование столбца на другой лист
Как включить макросы для отдельных книг
Есть два способа включить макросы для определенного файла: непосредственно из книги и через представление Backstage.
Включить макросы через панель предупреждений безопасности
С настройками макросов по умолчанию, когда вы впервые открываете книгу, содержащую макросы, в верхней части листа прямо под лентой появляется желтая панель предупреждения о безопасности:
Если редактор Visual Basic открыт во время открытия файла с макросами, отобразится уведомление о безопасности Microsoft Excel:
Если вы доверяете источнику файла и знаете, что все макросы защищены, нажмите кнопку «Включить содержимое» или «Включить макросы». Это включит макросы и сделает файл доверенным документом. В следующий раз, когда вы откроете книгу, предупреждение системы безопасности не появится.
Если источник файла неизвестен и вы не хотите включать макросы, вы можете нажать кнопку «X», чтобы закрыть предупреждение системы безопасности. Предупреждение исчезнет, но макросы останутся отключенными. Любая попытка запустить макрос приведет к следующему сообщению.
Если вы случайно отключили макросы, просто снова откройте книгу и нажмите кнопку Включить контент кнопку на панели предупреждений.
Включить макросы в представлении Backstage
Другой способ включить макросы для конкретной книги — через представление Office Backstage. Вот как:
- Нажмите на Файл вкладку, а затем нажмите «Информация» в меню слева.
- в Предупреждение безопасности область, нажмите Включить контент > Включить весь контент.
Как и в предыдущем методе, ваша книга станет доверенным документом.
Что вы должны знать о надежных документах в Excel
Включение макросов через панель сообщений или представление Backstage делает файл доверенным документом. Однако некоторые файлы Excel нельзя сделать доверенными документами. Например, файлы открываются из небезопасного места, такого как временная папка, или если системный администратор настроил политику безопасности в вашей организации на отключение всех макросов без уведомления. В таких случаях макросы включаются только один раз. При следующем открытии файла Excel предложит вам снова включить содержимое. Чтобы избежать этого, вы можете изменить или сохраните файл в .
Как только конкретная рабочая книга становится доверенным документом, невозможно не доверять ей. Вы можете только очистить список надежных документов. Для этого сделайте следующее:
- Нажмите Файл > Опции.
- С левой стороны выберите Центр доверияа затем щелкните Настройки центра управления безопасностью.
- в Центр доверия диалоговое окно, выберите Надежные документы налево.
- Щелкните Очистить, а затем щелкните ХОРОШО.
Это сделает все ранее доверенные файлы ненадежными. Когда вы откроете такой файл, появится предупреждение системы безопасности.
Кончик. Если вы не хотите делать какие-либо документы доверенными, поставьте галочку Отключить доверенные документы коробка. Вы по-прежнему сможете включать макросы при открытии книги, но только для текущего сеанса.
Как сохранить макрос в личную книгу макросов
Чтобы создать и схоронить код в личной книге макросов:
- Выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Запись макроса».
В появившемся диалоговом окне «Запись макроса», из выпадающего списка «Сохранить в:» выберите опцию «Личная книга макросов». И нажмите на кнопку OK.
Теперь выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Остановить запись».
Откройте редактор Visual Basic: «РАЗРАБОТЧИК»-«Код»-«Visual Basic». Или нажмите комбинацию горячих клавиш ALT+F11. В окне «Project-VBAProject», в дереве проектов появиться доступная еще одна книга Personal.xlsb. Кликните на «плюсик» слева на против этой книги, чтобы раскрыть проект книги Personal.xlsb. А после двойным щелчком отройте ее Module1.
В результате откроется окно кода модуля с зарегистрированным макросом. Удалите его код и введите код своего макроса. Выберите инструмент в редакторе макросов: «File»-«Save Personal.xlsb», а потом закройте редактор Visual Basic.
Теперь у вас подключена скрытая книга для хранения макросов, к которым можно получить доступ из любой другой рабочей книги. Личная книга макросов где находится находиться в папке автозагрузки файлов Excel – XLSTART: C:Documents and SettingsUser_NameAppDataRoamingMicrosoftExcelXLSTARTPersonal.xlsb
Примечание. XLSTART – это папка для автозагрузки файлов вместе с запуском программы Excel. Если сохранить файл в данную папку, то он будет открываться вместе с программой Excel. Для версий старше 2007 путь к папке автозагрузки будет следующим: C:Program FilesMicrosoft OfficeOffice12Xlstart.
Если вам нужно записать в нее новый макрос просто откройте редактор, а потом откройте модуль книги Personal.xlsb. Уже записанные в нее макросы удалять не нужно. Они не будут между собой конфликтовать если соблюдать одно простое правило – в одном модуле нельзя хранить макросы с одинаковыми именами.
Почему макросы могут делать потенциально опасные вещи?
Можно предположить, что язык программирования, предназначенный для автоматизации задач в пакете Office, будет довольно безопасным, но вы ошибаетесь. Например, макросы могут использовать команду VBA SHELL для запуска произвольных команд и программ или использовать команду VBA KILL для удаления файлов на жестком диске.
После загрузки вредоносного макроса в приложение Office, например Word, через зараженный документ, он может использовать такие функции, как «AutoExec», чтобы автоматически запускаться с Word, или «AutoOpen», чтобы автоматически запускаться при открытии документа. Таким образом, макровирус может интегрироваться в Word, заражая будущие документы.
Вы можете задаться вопросом, почему такое вредное поведение возможно даже при использовании пакета Office. Макросы VBA были добавлены в Office в 90-х годах, в то время, когда Microsoft не очень серьезно относилась к безопасности и еще до того, как Интернет принес угрозу вредоносных макросов домой. Макросы и код VBA не были разработаны для обеспечения безопасности, так же как технология Microsoft ActiveX и многие функции Adobe PDF Reader .
СВЯЗАННЫЕ: Что такое элементы управления ActiveX и почему они опасны
Включение или отключение макросов для Office в Windows 10
По умолчанию макросы отключены, но вы можете легко их включить. Если вы откроете файл, содержащий макросы, Microsoft Office отправит предупреждение системы безопасности через панель сообщений в верхней части документа. Чтобы включить макросы в файле, нажмите «Включить содержимое» на панели сообщений.
Вы также можете включить макросы в разделе «Предупреждение системы безопасности». Для этого щелкните вкладку «Файл».
Затем выберите «Информация» на панели слева.
Если документ Office содержит макросы, вы увидите желтый раздел «Предупреждение безопасности»; нажмите «Включить контент».
В появившемся раскрывающемся меню нажмите «Включить все содержимое».
Теперь макросы будут активны на время сеанса. Если вы хотите отключить макросы, просто закройте документ, а затем снова откройте его.
Как создать Личную Книгу Макросов
На самом деле, Личная Книга Макросов (ЛКМ) – это обычный файл Excel в формате двоичной книги (Personal.xlsb), который автоматически в скрытом режиме открывается одновременно с Microsoft Excel. Т.е. когда вы просто запускаете Excel или открываете любой файл с диска, на самом деле открываются два файла – ваш и Personal.xlsb, но второго мы не видим. Таким образом все макросы, которые хранятся в ЛКМ оказываются доступы для запуска в любой момент, пока открыт Excel.
Если вы еще ни разу не пользовались ЛКМ, то изначально файл Personal.xlsb не существует. Самый легкий способ его создать – это записать рекордером какой-нибудь ненужный бессмысленный макрос, но указать в качестве места для его хранения Личную Книгу – тогда Excel будет вынужден автоматически ее для вас создать. Для этого:
- Откройте вкладку Разработчик (Developer). Если вкладки Разработчик не видно, то ее можно включить в настройках через Файл – Параметры – Настройка ленты (Home – Options – Customize the Ribbon).
-
На вкладке Разработчик нажмите кнопку Запись макроса (Record Macro). В открывшемся окне выберите Личную книгу макросов (Personal Macro Workbook) как место для хранения записанного кода и нажмите OK:
- Остановите запись кнопкой Остановить запись (Stop Recording) на вкладке Разработчик (Developer)
Проверить результат можно, нажав на кнопку Visual Basic там же на вкладке Разработчик – в открывшемся окне редактора в левом верхнем углу на панели Project – VBA Project должен появиться наш файл PERSONAL.XLSB. Его ветку которого можно развернуть плюсиком слева, добравшись до Module1, где и хранится код только что записанного нами бессмысленного макроса:
Поздравляю, вы только что создали себе Личную Книгу Макросов! Только не забудьте нажать на кнопку сохранения с дискеткой в левом верхнем углу на панели инструментов.
Отображение в Microsoft Office 2007 и 2010
Включить макрокоманды можно и в табличном редакторе нового поколения, только придётся воспользоваться несколько иными инструкциями, потому что панель инструментов, расположение меню офисов различных лет выпуска отличаются между собой.
Office 2007
По сути, включить макрокоманды в табличном редакторе офиса 2007 можно таким же самым способом, как и в Excel 2003. Отличие заключается лишь в том, что для открытия диалогового окна «Параметры макросов» приходится проделать несколько иной путь.
В офисе 2007 первоначально необходимо зайти в Меню, расположенное в верхнем левом углу, после чего сразу же осуществить переход в «Параметры Excel».
Вслед за этим на экране компьютера появится диалоговое окно «Центр управления безопасностью», визуально изучив которое можно без труда обнаружить строку «Параметры центра управления безопасностью», по которой нужно сразу же кликнуть левой клавишей мышки.
После осуществления последовательных переходов на экране отобразится подменю «Параметры макросов», предоставляющее возможность вносить изменения в процесс отображения, написания и запуска различных макрокоманд.
В новом открывшемся окне переключатель нужно установить на последней строке «Включить все макросы». Система, конечно, предупредит, что такие действия могут позволить осуществлять запуск и опасных программ. Однако если пользователь уверен в своих действиях, на компьютере установлена надёжная противовирусная защита, то опасаться такого предупреждения нет смысла.
Также включить и отключить макрокоманды в Excel 2007 можно более простым способом, ничем не отличающимся от включения их в Excel 2010.
Office 2010
Включить и отключить макрокоманды в Excel 2010 можно, воспользовавшись меню «Разработчик». Однако данное меню не всегда активно в табличном редакторе 2010, особенно в момент первого запуска офисного приложения, поэтому первоначально следует совершить определённые действия, чтобы создать данное меню на панели инструментов. Специалисты рекомендуют выносить на панель инструментов подменю, к которым приходится достаточно часто обращаться в процессе выполнения различных задач.
Для этого необходимо кликнуть по меню «Файл», далее перейти в «Параметры», а затем в «Настройку ленты». С правой стороны будет находиться список, среди предложенных вариантов пользователь может выбрать те меню, в которых он наиболее часто будет нуждаться, а потому желает, чтобы они постоянно были отображены на панели инструментов. В частности, в этот момент необходимо установить переключатель на строке «Разработчик» и нажать «Ок». После этого данное меню отобразится в верхней части Excel 2010.
Теперь включить и отключить макрокоманды будет несложно, достаточно будет навести курсор на «Разработчик», далее перейти на строку «Безопасность макросов», после чего откроется уже знакомое меню «Параметры макросов», в котором выбирается последний пункт.
Проделав все вышеописанные действия по включению макрокоманд, у пользователя уже не возникнут вопросы, как отключить макросы в Excel 2010, поскольку все шаги остаются такими же, только меняется их последовательность на обратную.
Чтобы создать собственную автоматическую подпрограмму, пользователь должен освоить некоторые азы программирования. Однако если это совершенно невозможно, поскольку нет никаких навыков в этой области, пользователь не настроен на прохождение обучения программированию, можно начать писать макрокоманды, в которых возникла острая необходимость.
Писать такие команды в Excel 2010 несложно, достаточно кликнуть по строке «Начать запись», а дальше производить те действия, которые ранее выполнялись пользователем, и которые он желал бы осуществлять автоматически. Завершив выполнение действий, нажимается кнопка «Завершить». Теперь созданная подпрограмма будет отображаться в списке доступных, кликнув по ней, запустится процесс, идентичный тому, что был выполнен пользователем вручную.
Достаточно создать только первую макрокоманду в Excel 2010, как пользователь поймёт, что ничего сложного в этом нет, а также ощутит заметные преимущества, которыми станет сопровождаться его работа. Благодаря этому появляется желание писать новые подпрограммы и совершенствовать процесс выполнения производственных задач.
Итак, макрокоманды в табличных редакторах 2003, 2007 и 2010 способны восприниматься большинством пользователей в качестве лучших помощников, позволяющих рутинную работу автоматизировать и повысить её результативность.