Не создается макрос в excel
При помощи макросов в Эксель задаются специальные команды, благодаря которым можно автоматизировать часть задач и, тем самым, существенно уменьшить временные затраты на выполнение работы. Однако, макросы обладают уязвимостью к хакерским атакам и потенциально опасны. Следует помнить о том, что они несут в себе определенную угрозу, и этим могут воспользоваться злоумышленники. Решение о необходимости их применения нужно принимать, оценивая каждый конкретный случай.
К примеру, если пользователь не уверен в безопасности открываемого документа, от макросов целесообразнее будет отказаться, так как файл может нести в себе вирусный код. Разработчики программы принимают во внимание этот факт и дают пользователю возможность выбора. Именно поэтому в Экселе заложена функция настройки макросов, а точнее, их активности.
Содержание: “Как включить/отключить макросы в Excel”
Активация и выключение макросов во вкладке Разработчика
Сразу стоит отметить, что в процессе выполнения этой задачи некоторые пользователи могут столкнуться с трудностями. Все из-за того, что вкладка “Разработчик” по умолчанию выключена и ее, для начала, нужно активировать.
По завершении этих действий вкладка «Разработчик» будет активирована. Теперь можно приступить к включением макросов.
- Щелкаем по вкладке “Разработчик”. В левом углу будет находиться требуемый раздел, где нажимаем кнопку «Безопасность макросов» в виде восклицательного знака.
- В появившемся окне с настройками можно активировать сразу все макросы. Для этого необходимо выбрать из всех предложенных параметров вариант “Включить все макросы”. Нажатием кнопки “OK” подтверждаем внесенные изменения и выходим из параметров.Однако, следует обратить внимание на то, что разработчики Microsoft не рекомендуют выбирать этот вариант, так как есть вероятность запуска опасной программы, что может навредить компьютеру. Поэтому, выполняя эту операцию, помните, что вы действуете на свой страх и риск.
Деактивация макросов происходит в том же диалоговом окне. Однако, при выключении пользователю будет предложено сразу три варианта с разной степенью безопасности.
Как следует из названия, в самом нижнем варианте исправно будут работать все макросы, имеющие цифровую подпись. А в двух первых вариантах они будут отключены полностью. После того, как мы сделали выбор, нажимаем кнопку «OK».
Настройка макросов в Параметрах программы
- Заходим в меню «Файл», и выбираем в нем пункт «Параметры» – аналогично первому пункту в рассмотренном ранее примере.
Настройка макросов в ранних версиях Эксель
В ранних версиях программы активация и деактивация макросов происходила иначе.
Например, алгоритм действий в программах 2010 года и моложе аналогичный, но есть определенные различия в интерфейсе программ.
А для активации или выключения макросов в версии 2007 года необходимо щелкнуть мышью по значку Microsoft Office в сверху в левом углу. После этого требуется найти раздел «Параметры» внизу открывшейся страницы. Кликнув по разделу «Параметры», мы попадем в Центр управления безопасностью. Далее нам нужны Параметры центра управления безопасностью и, в итоге, непосредственно, сами параметры макросов.
Заключение
Благодаря отключению макросов разработчики пытаются обезопасить пользователей от возможных рисков. Однако, в некоторых случаях, их все же, требуется включить. В зависимости от версии программы, и даже в одной и той же версии это может выполняться по-разному. Но независимого от выбранного способа, процедура достаточно проста и не требует глубоких знаний и навыков работы с ПК.
[moder]Перевложила Вашу картинку.
Скрины можно выкладывать сразу в пост, а не пихать в файлы[/moder]
[moder]Перевложила Вашу картинку.
Скрины можно выкладывать сразу в пост, а не пихать в файлы[/moder] Рaмиля
а если так:
Макросы включены?:
после включения макросов(если были выключены - полностью закройте Excel, а потом откройте заново)
а если так:
Макросы включены?:
после включения макросов(если были выключены - полностью закройте Excel, а потом откройте заново) SLAVICK
Иногда все проще чем кажется с первого взгляда.
после включения макросов(если были выключены - полностью закройте Excel, а потом откройте заново) Автор - SLAVICK
Дата добавления - 29.12.2015 в 12:33
Если честно - никогда не создавал таким образом макрос - всегда пользуюсь кнопкой запись макроса, или пишу сразу в модуле. Так может этот макрос уже существует?
Если честно - никогда не создавал таким образом макрос - всегда пользуюсь кнопкой запись макроса, или пишу сразу в модуле. SLAVICK И я так же делала(. И макрос новый. но через "создание" не работает. Где "собака" зарыта? И я так же делала(. И макрос новый. но через "создание" не работает. Где "собака" зарыта? Рaмиля Если я макрос создаю через "запись макроса" и уже в записанный макрос вношу нужный код, то макрос создается. Какие настройки мешают создать макрос через обычную кнопку "создать"? Если я макрос создаю через "запись макроса" и уже в записанный макрос вношу нужный код, то макрос создается. Какие настройки мешают создать макрос через обычную кнопку "создать"? Рaмиля рамиля, мне очень странным кажется, что "Выполнить" и "Войти" у Вас активны, хотя макросов в выбранной книге нет=). У меня неактивна кнопка создать, только когда имя задаю некорректное, например пробел вначале. ) рамиля, мне очень странным кажется, что "Выполнить" и "Войти" у Вас активны, хотя макросов в выбранной книге нет=). У меня неактивна кнопка создать, только когда имя задаю некорректное, например пробел вначале. ) Roman777 рамиля, выберите из списка "Находится в:" Все открытые книги. Там точно нет макроса с именем "Новый_макрос"?
Кнопка "Войти" у Вас активна, что будет, если нажать на нее? рамиля, выберите из списка "Находится в:" Все открытые книги. Там точно нет макроса с именем "Новый_макрос"?
Кнопка "Войти" у Вас активна, что будет, если нажать на нее? Manyasha
"мне очень странным кажется, что "Выполнить" и "Войти" у Вас активны, хотя макросов в выбранной книге нет=)". Да. Согласна с Вами.
Перевложила Вашу картинку.Скрины можно выкладывать сразу в пост, а не пихать в файлы
"мне очень странным кажется, что "Выполнить" и "Войти" у Вас активны, хотя макросов в выбранной книге нет=)". Да. Согласна с Вами.
Перевложила Вашу картинку.Скрины можно выкладывать сразу в пост, а не пихать в файлы Перевложила Вашу картинку.
Скрины можно выкладывать сразу в пост, а не пихать в файлы Поправьте![/moder] Автор - Рaмиля
Дата добавления - 29.12.2015 в 13:29
-Удалила. Изменений нет
. Автор - Рaмиля
Дата добавления - 29.12.2015 в 14:12 В каких книгах у Вас есть макросы? Автор - Manyasha
Дата добавления - 29.12.2015 в 14:38 я так думаю, у Вас не подключена какая-то библиотека, которая нужна для кода. а у Вас книги в автозапуске есть? Может кривой код в какой-то книге или надстройке.
Мысли совпадают .
рамиля, Вы когда открыли любую книгу - нажмите alt f11 - посмотрите только одна книга светится, или еще что есть?
Если есть еще книги - значит в какой- то из них кривой код. (или как сказала Manyasha для какой-то процедуры не подключена библиотека)
Или не адаптированный под ось.
У вас какая винда 32 или 64? Недавно не переустанавливали ничего? я так думаю, у Вас не подключена какая-то библиотека, которая нужна для кода. а у Вас книги в автозапуске есть? Может кривой код в какой-то книге или надстройке.
Мысли совпадают .
рамиля, Вы когда открыли любую книгу - нажмите alt f11 - посмотрите только одна книга светится, или еще что есть?
Если есть еще книги - значит в какой- то из них кривой код. (или как сказала Manyasha для какой-то процедуры не подключена библиотека)
Или не адаптированный под ось.
У вас какая винда 32 или 64? Недавно не переустанавливали ничего? SLAVICK
Иногда все проще чем кажется с первого взгляда.
я так думаю, у Вас не подключена какая-то библиотека, которая нужна для кода. а у Вас книги в автозапуске есть? Может кривой код в какой-то книге или надстройке.Мысли совпадают .
рамиля, Вы когда открыли любую книгу - нажмите alt f11 - посмотрите только одна книга светится, или еще что есть?
Если есть еще книги - значит в какой- то из них кривой код. (или как сказала Manyasha для какой-то процедуры не подключена библиотека)
Или не адаптированный под ось.
У вас какая винда 32 или 64? Недавно не переустанавливали ничего? Автор - SLAVICK
Дата добавления - 29.12.2015 в 15:23 У вас какая винда 32 или 64? Недавно не переустанавливали ничего?
64-я. Нет.
очень странно, что изначально при создании абсолютно новой книги и при попытке создать несуществующий макрос, на этапе внесения имени в окне имени макроса активными становятся кнопки "Выполнить" и "Войти". А ведь макрос еще и не существует. персональная книга макросов существует.
Вы когда открыли любую книгу - нажмите alt f11 - посмотрите только одна книга светится, или еще что есть?
Вместе с файлом черновик открывается и книга.xlsx (?) У вас какая винда 32 или 64? Недавно не переустанавливали ничего?
64-я. Нет.
очень странно, что изначально при создании абсолютно новой книги и при попытке создать несуществующий макрос, на этапе внесения имени в окне имени макроса активными становятся кнопки "Выполнить" и "Войти". А ведь макрос еще и не существует. персональная книга макросов существует.
Вы когда открыли любую книгу - нажмите alt f11 - посмотрите только одна книга светится, или еще что есть?
Вместе с файлом черновик открывается и книга.xlsx (?) Рaмиля У вас какая винда 32 или 64? Недавно не переустанавливали ничего?
64-я. Нет.
очень странно, что изначально при создании абсолютно новой книги и при попытке создать несуществующий макрос, на этапе внесения имени в окне имени макроса активными становятся кнопки "Выполнить" и "Войти". А ведь макрос еще и не существует. персональная книга макросов существует.
Вы когда открыли любую книгу - нажмите alt f11 - посмотрите только одна книга светится, или еще что есть?
Вместе с файлом черновик открывается и книга.xlsx (?) Автор - Рaмиля
Дата добавления - 29.12.2015 в 16:44
У Вас очень много запускается надстроек и книг.
Отключите все надстройки и персональную книгу тоже. Закройте-откройте программу. И попробуйте.
У Вас очень много запускается надстроек и книг.
Отключите все надстройки и персональную книгу тоже. Закройте-откройте программу. И попробуйте.
Иногда все проще чем кажется с первого взгляда.
Всем нам приходится - кому реже, кому чаще - повторять одни и те же действия и операции в Excel. Любая офисная работа предполагает некую "рутинную составляющую" - одни и те же еженедельные отчеты, одни и те же действия по обработке поступивших данных, заполнение однообразных таблиц или бланков и т.д. Использование макросов и пользовательских функций позволяет автоматизировать эти операции, перекладывая монотонную однообразную работу на плечи Excel. Другим поводом для использования макросов в вашей работе может стать необходимость добавить в Microsoft Excel недостающие, но нужные вам функции. Например функцию сборки данных с разных листов на один итоговый лист, разнесения данных обратно, вывод суммы прописью и т.д.
Макрос - это запрограммированная последовательность действий (программа, процедура), записанная на языке программирования Visual Basic for Applications (VBA). Мы можем запускать макрос сколько угодно раз, заставляя Excel выполнять последовательность любых нужных нам действий, которые нам не хочется выполнять вручную.
Способ 1. Создание макросов в редакторе Visual Basic
Для ввода команд и формирования программы, т.е. создания макроса необходимо открыть специальное окно - редактор программ на VBA, встроенный в Microsoft Excel.
- В старых версиях (Excel 2003 и старше) для этого идем в меню Сервис - Макрос - Редактор Visual Basic(Toos - Macro - Visual Basic Editor).
- В новых версиях (Excel 2007 и новее) для этого нужно сначала отобразить вкладку Разработчик (Developer) . Выбираем Файл - Параметры - Настройка ленты (File - Options - Customize Ribbon) и включаем в правой части окна флажок Разработчик (Developer) . Теперь на появившейся вкладке нам будут доступны основные инструменты для работы с макросами, в том числе и нужная нам кнопка Редактор Visual Basic(Visual Basic Editor)
:
К сожалению, интерфейс редактора VBA и файлы справки не переводятся компанией Microsoft на русский язык, поэтому с английскими командами в меню и окнах придется смириться:
Макросы (т.е. наборы команд на языке VBA) хранятся в программных модулях. В любой книге Excel мы можем создать любое количество программных модулей и разместить там наши макросы. Один модуль может содержать любое количество макросов. Доступ ко всем модулям осуществляется с помощью окна Project Explorer в левом верхнем углу редактора (если его не видно, нажмите CTRL+R). Программные модули бывают нескольких типов для разных ситуаций:
-
Обычные модули - используются в большинстве случаев, когда речь идет о макросах. Для создания такого модуля выберите в меню Insert - Module. В появившееся окно нового пустого модуля можно вводить команды на VBA, набирая их с клавиатуры или копируя их из другого модуля, с этого сайта или еще откуда нибудь:
Обычный макрос, введенный в стандартный модуль выглядит примерно так:
Давайте разберем приведенный выше в качестве примера макрос Zamena:
С ходу ясно, что вот так сразу, без предварительной подготовки и опыта в программировании вообще и на VBA в частности, сложновато будет сообразить какие именно команды и как надо вводить, чтобы макрос автоматически выполнял все действия, которые, например, Вы делаете для создания еженедельного отчета для руководства компании. Поэтому мы переходим ко второму способу создания макросов, а именно.
Способ 2. Запись макросов макрорекордером
Макрорекордер - это небольшая программа, встроенная в Excel, которая переводит любое действие пользователя на язык программирования VBA и записывает получившуюся команду в программный модуль. Если мы включим макрорекордер на запись, а затем начнем создавать свой еженедельный отчет, то макрорекордер начнет записывать команды вслед за каждым нашим действием и, в итоге, мы получим макрос создающий отчет как если бы он был написан программистом. Такой способ создания макросов не требует знаний пользователя о программировании и VBA и позволяет пользоваться макросами как неким аналогом видеозаписи: включил запись, выполнил операци, перемотал пленку и запустил выполнение тех же действий еще раз. Естественно у такого способа есть свои плюсы и минусы:
- Макрорекордер записывает только те действия, которые выполняются в пределах окна Microsoft Excel. Как только вы закрываете Excel или переключаетесь в другую программу - запись останавливается.
- Макрорекордер может записать только те действия, для которых есть команды меню или кнопки в Excel. Программист же может написать макрос, который делает то, что Excel никогда не умел (сортировку по цвету, например или что-то подобное).
- Если во время записи макроса макрорекордером вы ошиблись - ошибка будет записана. Однако смело можете давить на кнопку отмены последнего действия (Undo) - во время записи макроса макрорекордером она не просто возрвращает Вас в предыдущее состояние, но и стирает последнюю записанную команду на VBA.
Чтобы включить запись необходимо:
- в Excel 2003 и старше - выбрать в меню Сервис - Макрос - Начать запись(Tools - Macro - Record New Macro)
- в Excel 2007 и новее - нажать кнопку Запись макроса (Record macro) на вкладке Разработчик (Developer)
Затем необходимо настроить параметры записываемого макроса в окне Запись макроса:
- Имя макроса - подойдет любое имя на русском или английском языке. Имя должно начинаться с буквы и не содержать пробелов и знаков препинания.
- Сочетание клавиш - будет потом использоваться для быстрого запуска макроса. Если забудете сочетание или вообще его не введете, то макрос можно будет запустить через меню Сервис - Макрос - Макросы - Выполнить(Tools - Macro - Macros - Run) или с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или нажав ALT+F8.
- Сохранить в. - здесь задается место, куда будет сохранен текст макроса, т.е. набор команд на VBA из которых и состоит макрос.:
- Эта книга - макрос сохраняется в модуль текущей книги и, как следствие, будет выполнятся только пока эта книга открыта в Excel
- Новая книга - макрос сохраняется в шаблон, на основе которого создается любая новая пустая книга в Excel, т.е. макрос будет содержаться во всех новых книгах, создаваемых на данном компьютере начиная с текущего момента
- Личная книга макросов - это специальная книга Excel с именем Personal.xls, которая используется как хранилище макросов. Все макросы из Personal.xls загружаются в память при старте Excel и могут быть запущены в любой момент и в любой книге.
После включения записи и выполнения действий, которые необходимо записать, запись можно остановить командой Остановить запись (Stop Recording) .
Запуск и редактирование макросов
Управление всеми доступными макросами производится в окне, которое можно открыть с помощью кнопки Макросы (Macros) на вкладке Разработчик (Developer) или - в старых версиях Excel - через меню Сервис - Макрос - Макросы (Tools - Macro - Macros) :
- Любой выделенный в списке макрос можно запустить кнопкой Выполнить(Run) .
- Кнопка Параметры(Options) позволяет посмотреть и отредактировать сочетание клавиш для быстрого запуска макроса.
- Кнопка Изменить(Edit) открывает редактор Visual Basic (см. выше) и позволяет просмотреть и отредактировать текст макроса на VBA.
Создание кнопки для запуска макросов
Чтобы не запоминать сочетание клавиш для запуска макроса, лучше создать кнопку и назначить ей нужный макрос. Кнопка может быть нескольких типов:
Кнопка на панели инструментов в Excel 2003 и старше
Откройте меню Сервис - Настройка (Tools - Customize) и перейдите на вкладку Команды (Commands) . В категории Макросы легко найти веселый желтый "колобок" - Настраиваемую кнопку (Custom button) :
Перетащите ее к себе на панель инструментов и затем щелкните по ней правой кнопкой мыши. В контекстом меню можно назначить кнопке макрос, выбрать другой значок и имя:
Кнопка на панели быстрого доступа в Excel 2007 и новее
Щелкните правой кнопкой мыши по панели быстрого доступа в левом верхнем углу окна Excel и выберите команду Настройка панели быстрого доступа (Customise Quick Access Toolbar) :
Затем в открывшемся окне выберите категорию Макросы и при помощи кнопки Добавить (Add) перенесите выбранный макрос в правую половину окна, т.е. на панель быстрого доступа:
Кнопка на листе
Этот способ подходит для любой версии Excel. Мы добавим кнопку запуска макроса прямо на рабочий лист, как графический объект. Для этого:
- В Excel 2003 и старше - откройте панель инструментов Формы через меню Вид - Панели инструментов - Формы (View - Toolbars - Forms)
- В Excel 2007 и новее - откройте выпадающий список Вставить (Insert) на вкладке Разработчик (Developer)
Выберите объект Кнопка (Button) :
Затем нарисуйте кнопку на листе, удерживая левую кнопку мыши. Автоматически появится окно, где нужно выбрать макрос, который должен запускаться при щелчке по нарисованной кнопке.
Создание пользовательских функций на VBA
Создание пользовательских функций или, как их иногда еще называют, UDF-функций (User Defined Functions) принципиально не отличается от создания макроса в обычном программном модуле. Разница только в том, что макрос выполняет последовательность действий с объектами книги (ячейками, формулами и значениями, листами, диаграммами и т.д.), а пользовательская функция - только с теми значениями, которые мы передадим ей как аргументы (исходные данные для расчета).
Чтобы создать пользовательскую функцию для расчета, например, налога на добавленную стоимость (НДС) откроем редактор VBA, добавим новый модуль через меню Insert - Module и введем туда текст нашей функции:
Обратите внимание, что в отличие от макросов функции имеют заголовок Function вместо Sub и непустой список аргументов (в нашем случае это Summa). После ввода кода наша функция становится доступна в обычном окне Мастера функций (Вставка - Функция) в категории Определенные пользователем (User Defined) :
После выбора функции выделяем ячейки с аргументами (с суммой, для которой надо посчитать НДС) как в случае с обычной функцией:
С помощью макросов можно существенно повысить эффективность обработки и работы с информацией в Эксель благодаря тому, что множество одинаковых действий, которые мы вынуждены повторять, можно оформить в виде специального кода, который возьмет эту заботу на себя. В данном статье мы рассмотрим, каким образом можно создать новый макрос, а также, как изменить существующий.
Создание макросов
В Эксель создать макросы можно вручную или автоматически. Последний вариант предполагает запись действий, которые мы выполняем в программе, для их дальнейшего повтора. Это достаточно простой способ, пользователь не должен обладать какими-то навыками кодирования и т.д. Однако, в связи с этим, применить его можно не всегда.
Чтобы создавать макросы вручную, нужно уметь программировать. Но именно такой способ иногда является единственным или одним из немногих вариантов эффективного решения поставленной задачи.
Метод 1: Записываем макрос в автоматическом режиме
Чтобы иметь возможность записать макросы автоматически, для начала нужно их активировать в параметрах Эксель.
Узнать, как это можно сделать, можно в нашей статье – “Как включать и отключать макросы в Excel”.
После того, как макросы включены, можно перейти к нашей основной задаче.
- Переключаемся во вкладку “Разработчик”. В группе инструментов “Код” щелкаем по значку “Записать макрос”.
- На экране появится окошко, в котором мы можем выполнить настройки записи. Здесь указывается:
- имя макроса – любое, но должно начинаться с буквы (не с цифры), не допускаются пробелы.
- комбинация клавиш, которая будет использоваться для запуска макроса. Обязательной является Ctrl, а вторую мы можем назначить в специальном поле. Допустим, пусть это будет клавиша “r”. Если нужно использовать заглавную букву, нужно зажать клавишу Shift, которая будет добавлена в сочетание клавиш.
Запускаем выполнение макроса
Чтобы проверить работу записанного макроса, нужно сделать следующее:
Корректируем макрос
Созданный макрос можно изменить. Самая распространенная причина, которая приводит к такой необходимости – сделанные при записи ошибки. Вот как можно отредактировать макрос:
Метод 2: создание макроса вручную
Опытные пользователи Эксель в некоторых случаях предпочитают создавать макросы от начала до конца полностью вручную . План действий следующий:
Заключение
Таким образом, использование макросов в табличном редакторе Эксель позволяет повысить эффективность и скорость работы. Создать их можно, как в автоматическом режиме, просто записав выполненные действия, так и написав код с нуля. Также, при необходимости, можно внести изменения в ранее созданный макрос и настроить отдельные аспекты его работы.
Читайте также: