Макросы в Excel

  Макросы в Excel

Содержание
1. Введение
2. Работа с макросами
• Создание макросов
• Редактирование макросов
• Удаление макросов
• Переименование макросов
3. Назначение макроса
• клавише быстрого вызова и пункту основного меню
• графическому объекту и кнопке пользователя
4. Запись новых действий в существующий макрос
5. Создание кнопки для вызова макроса
6. Примеры макросов
7. Безопасность макросов. Уровни безопасности.
• Высокий уровень
• Средний уровень
• Низкий уровень
8. Заключение
9. Список литературы

Введение
Если при работе с Microsoft Excel для Windows у вас возникла необходимость несколько раз выполнить одну и ту же последовательность действий, то вы можете записать эту последовательность под определенным именем. Записанная под определенным именем последовательность действий называется макросом. Записанный макрос можно вызывать для выполнения из основного меню при помощи кнопки на панели инструментов или на рабочей области, а также комбинации клавиш. Макрос может быть назначен так же графическому объекту.
Макрос записывается на языке Visual Basic for Applications. Текст макроса можно вызывать для редактирования.
Работа с макросами
Создание макросов
К часто повторяющимся действиям можно отнести выбор нужного формата. Процедуру создания макросов мы рассмотрим на примере макроса “Число”, который будет устанавливать для выделенной области числовой формат. Требуемый числовой формат создадим заранее в категории форматов .
Для записи макроса выполните следующие действия:
Выполните команду | | .
Появится окно диалога “Запись макроса”.
Введите в поле ввода название создаваемого макроса — “Число”. Помимо стандартной информации (когда и кем был записан макрос) вы можете ввести в поле ввода краткое описание назначения макроса. После этого нажмите кнопку . Начиная с этого момента осуществляется запись макроса. На экране появляется кнопка . Если вы нажмете на ней кнопку мыши, то запись макроса будет закончена. Другим признаком режима записи макроса является появление слова “Запись” в строке состояния.
Теперь вам нужно выполнить последовательность действий, которая и будет записана в макрос. В нашем случае последовательность действий следующая: выделите ячейки, которые вы собираетесь форматировать, и нажмите Ctrl+1; в появившемся окне диалога “Формат ячеек” выберите вкладку “Число”, а на ней категорию форматов Все форматы. Из появившегося списка форматных кодов выберите требуемый код, после чего нажмите кнопку .
В заключение вам остается завершить запись макроса. Кроме нажатия на кнопку вы можете воспользоваться альтернативным способом: в списке опций пункта основного меню выберите , а затем — .
Если кнопка отсутствует с экрана, то ее легко можно восстановить. Для этого нажмите правую кнопку мыши на любой панели инструментов и в появившемся списке выберите пункт . Появится список категорий кнопок. Выберите среди них категорию . Появится набор кнопок, который содержит кнопку . Нажмите на ней кнопку мыши и, удерживая ее нажатой, переместите кнопку на нужную вам панель или просто на экран. Для выхода из режима настройки панелей нажмите кнопку .
После окончания записи макроса он появляется в списке макросов под именем “Число”. Для вызова макроса выполните команду | . Появится окно диалога со списком макросов. Найдите требуемый макрос и нажмите кнопку . Результатом работы макроса “Число” будет ввод форматного кода в выделенные ячейки таблицы.
В Excel предусмотрена возможность вызывать макрос при помощи клавиши быстрого вызова или назначить макросу пункт меню в списке опций меню . Обе эти возможности можно реализовать одновременно. Для этого при выполнении 3 шага процедуры создания макроса, после ввода имени, нужно нажать кнопку . Появится окно диалога.
Назначить макросу пункт меню или клавишу быстрого вызова можно и после того как макрос создан. Для этого выполните команду | . Появится окно диалога со списком макросов. Выделите нужный и нажмите кнопку . Появится окно диалога, в котором вы можете сделать все необходимые назначения.
При записи макроса можно включать режим с относительными ссылками. Этот режим позволяет использовать записанный макрос для любой области рабочей книги. Режим с относительными ссылками нужно включать при записи макросов, которые используют ссылки на адреса рабочей книги.
Разберем два примера макросов. Один записан в обычном режиме, а другой— с относительными ссылками, после чего сравним их работу.
Пример 1. Вывод на экран названий месяцев
При составлении различных отчетов и сводок в качестве названий строк часто используются названия месяцев. Создадим макрос, который будет выводить на экран столбец с названиями месяцев в ячейках A1:A12. Для этого выполните следующие действия:
• Установите курсор в какую-нибудь ячейку книги, за исключением A1.
• Выполните команду | | . Появляется окно диалога “Запись макроса”.
• Введите в поле ввода название создаваемого макроса “Месяц_абс”. В поле ввода введите текст: “Вводит названия месяцев”. Нажмите кнопку . Появится окно диалога “Запись макроса”.
• Введите клавишу быстрого вызова макроса. Для этого перейдите в поле ввода Ctrl, переключитесь на латинский регистр, удалите находящуюся там букву и введите букву m. После этого нажмите кнопку . Начиная с этого момента, осуществляется запись макроса.
• Выполните последовательность действий, которую будет выполнять макрос: установите курсор в ячейку A1; введите слово “январь”; поместите указатель мыши в правый нижний угол ячейки A1, при этом указатель мыши изменит вид на черный крестик; нажмите кнопку мыши и, удерживая ее нажатой, продолжите выделение до ячейки A12.
• Нажмите на кнопку .
Если вы не выполните условие 1 шага, то есть курсор будет находиться в ячейке A1, то макрос будет правильно работать только в том случае, когда вы перед нажатием клавиш Ctrl+m поместите курсор в ячейку A1.
Макрос записан и теперь нажатие клавиш Ctrl+m вызовет появление в ячейках A1:A12 названий месяцев. При записи макроса мы не включали режим записи с относительными ссылками, поэтому названия месяцев будут появляться только в ячейках A1:A12. Для устранения этого неудобства предназначен режим записи с относительными ссылками.
Пример 2. Создание макроса с относительными ссылками
В этом примере вам предстоит создать макрос с относительными ссылками для размещения заголовка таблицы продаж компьютеров в произвольном месте рабочей книги.
Перед созданием макроса включите режим записи с относительными ссылками. Для этого выполните следующие действия:
• Выполните команду | | .
• Введите в поле ввода название создаваемого макроса — “Заголовок”. В поле ввода введите текст: “Вводит названия компьютеров”.
• Нажмите кнопку . Появится окно диалога “Запись макроса”.
• Введите наименование добавляемого пункта меню: “Типы ЭВМ”. Нажмите кнопку .
• Выполните последовательность действий, которую будет выполнять макрос: введите заголовок таблицы: “Тип компьютера”, нажмите клавишу ; введите тип 1 компьютера “CP_35_SR” и нажмите клавишу . Аналогично введите следующие типы компьютеров “CP_40_SR”, “CP_55_LS”, “CP_55_SX”. Выделите четыре ячейки с введенными типами компьютеров, выберите команду | , а затем команду (поскольку названия типов компьютеров не умещаются полностью в ячейке).
• Нажмите на кнопку .
После окончания записи макроса в меню команды появится пункт с названием “Типы ЭВМ”, которое мы ввели на 4 шаге.
Для выполнения макроса “Заголовок” нужно нажать кнопку мыши на пункте с названием “Типы ЭВМ”. В том месте таблицы, где расположен курсор, появится заголовок следующего вида: “Тип компьютера CP_35_SRCP_40_SRCP_55_LSCP_55_SX”
Этот макрос отличается от макроса, созданного в примере №1 тем, что заголовок таблицы можно поместить в любом месте текущей рабочей книги.
Редактирование макросов
В этом разделе мы рассмотрим вопросы изменения текста макроса, его удаления и переименования. Здесь же будет рассказано о том, как записать новую последовательность действий в уже существующий макрос.
Одним из способов внесения изменений в записанный макрос является запись нового макроса. Однако это не всегда удобно, а часто бывает и утомительно из-за большого объема работы. В следующем примере мы изменим формат вводимых чисел в макросе “Число”.
Пример 3. Редактирование текста макроса
В этом примере вам предстоит изменить текст макроса.
Для входа в режим редактирования макроса выполните команду | . Появляется окно диалога “Макрос”, в котором после выбора нужного для редактирования макроса становятся доступными кнопки, в том числе кнопка .
Редактировать можно и непосредственно в модуле с текстом макроса. Текст макроса “Число” расположен в модуле 1, расположенном после 16 листа рабочей книги. Используя кнопки прокрутки листов найдите модуль 1 и нажмите кнопку мыши на его ярлычке. Перед вами появится текст макроса “Число”, записанный на языке Visual Basic:
Число Макрос Форматный код “# #??” Быстрый вызов: Ctrl+x
Sub Число()
Selection.NumberFormat = “# #??”
End Sub
Первые две строки составляют комментарий, последующие — текст макроса. Редактирование сводится к тому, что вместо форматного кода “# #??” вводится форматный код “# #??,00”.
Действуя аналогичным образом, вы можете внести более серьезные изменения в текст макроса. Фактически вы имеете возможность изменять текст программы Visual Basic, реализующий макрос. Это открывает перед вами большие возможности в написании собственных программ.
Удаление макросов
Если макрос назначен клавише быстрого доступа, графическому объекту или кнопке, то процесс удаления является стандартным. Вы выбираете опцию пункта основного меню. Появляется окно диалога “Макрос”, содержащее список макросов текущей рабочей книги. После выбора макроса, который вы предполагаете удалить, станут доступными кнопки окна диалога “Макрос”, в том числе кнопка . Для удаления выбранного макроса вам достаточно нажать эту кнопку.
Макрос можно удалить и другим способом. Если макрос записан в отдельном модуле, то нужно удалить модуль. Для этого нужно сделать его активным, а затем нажать правую кнопку мыши на его ярлычке. Появится окно диалога, в котором нужно выбрать команду . Если модуль содержит и другие макросы, то нужно выделить весь текст удаляемого макроса и нажать клавишу на клавиатуре.
Объекты, которым был назначен макрос, удаляются из режимов редактирования этих объектов.
Определенную трудность представляет процесс удаления строк с названиями макросов из пункта основного меню. Для их удаления вы можете использовать окно диалога “Редактор меню”, которое открывается нажатием кнопки , расположенной на панели инструментов “Visual Basic”. Вы можете выбрать требующийся пункт меню из списка Меню. При этом в следующем списке появляются опции этого пункта меню. Вы можете выбрать и удалить нужную строку нажатием кнопки .
Кнопка окна диалога восстанавливает стандартное состояние всех пунктов основного меню Excel.
После нажатия кнопки восстановить ранее сделанные в пункты меню назначения с помощью клавиш Ctrl+Z невозможно. Можно только закрыть файл без сохранения всех сделанных изменений, а затем открыть его снова.
Окно диалога “Редактор меню” можно вызвать и без использования кнопки . Для этого нужно выполнить следующие действия:
• Сделайте активным какой-нибудь модуль. Если в рабочей книге нет ни одного макроса, то создайте какой-нибудь макрос (например, не выполняющий никаких действий).
• Выберите пункт текущего меню. Появится ниспадающее меню, в котором присутствуют дополнительные опции, одной из которых является .
• Установите курсор на команду и нажмите клавишу . Появится требуемое окно диалога.
Не создавайте макрос, восстанавливающий пункты меню. Делайте эту работу вручную и вы избежите неприятностей, связанных с потерей информации.
Переименование макроса
Специальной команды для переименования макроса нет, а часто возникает потребность исправить имя или присвоить макросу совершенно новое наименование. Для этого нужно войти в режим редактирования макроса и в тексте программы исправить заголовок.
Пример 4. Изменение имени макроса
Изменим имя макроса “Месяцы” на “Месяцы_с_абсолютными_адресами”. Для этого войдите в режим редактирования макроса “Месяцы”. Ниже расположен текст программы.
Месяцы Макрос Быстрый вызов: Ctrl+o
Sub Месяцы()
ActiveCell.FormulaR1C1 = “январь”
Selection.AutoFill Destination:=ActiveCell.Range(“A1:A12”); _
Type:=xlFillDefault
ActiveCell.Range(“A1:A12”).Select
End Sub
Первая строка является комментарием. Заменим “Месяцы” на “Месяцы_с_абсолютными_адресами”. Соответствующим образом изменим комментарий. В результате получим новый текст программы макроса:
'Месяцы_с_абсолютными_адресами Макрос Быстрый вызов: Ctrl+o
Sub Месяцы_с_абсолютными_адресами()
ActiveCell.FormulaR1C1 = “январь”
Selection.AutoFill Destination:=ActiveCell.Range(“A1:A12”); _
Type:=xlFillDefault
ActiveCell.Range(“A1:A12”).Select
End Sub
Новое имя автоматически заменит старое в списках макросов. По клавише быстрого вызова будет вызываться макрос с новым именем. Но не все замены происходят автоматически. Если ваш макросу были назначены графические объекты или кнопки, то вам нужно будет самим сделать для них переназначения.
Запись в существующий макрос новых действий
Если вы хотите добавить в макрос новые действия, то вам нужно включить соответствующий режим записи макроса. Для этого выполните следующие действия:
Сделайте активным модуль, в котором находится макрос.
В тексте программы установите курсор в место ввода новых действий.
Выполните команду | | . Теперь ваши действия при записи макроса будут записываться в программу с того места, где вы установили курсор.
Перейдите в лист рабочей книги, где вы будете записывать новые действия.
Выполните команду | | . Начиная с этого момента все ваши действия будут записываться в макрос.
Выполните все дополнительные действия макроса.
Нажмите на кнопку ь.
Рассмотрим конкретный пример добавления новых записей......


Толық нұсқасын 30 секундтан кейін жүктей аласыз!!!


Әлеуметтік желілерде бөлісіңіз:
Facebook | VK | WhatsApp | Telegram | Twitter

Қарап көріңіз 👇



Пайдалы сілтемелер:
» Туған күнге 99 тілектер жинағы: өз сөзімен, қысқаша, қарапайым туған күнге тілек
» Абай Құнанбаев барлық өлеңдер жинағын жүктеу, оқу
» Дастархан батасы: дастарханға бата беру, ас қайыру

Соңғы жаңалықтар:
» Су тасқынынан зардап шеккендерге қосымша тағы 553 мың теңге төленеді
» Елімізде TikTok желісі бұғатталуы мүмкін бе?
» Елімізде су тасқынынан зардап шеккендердің қандай мүліктеріне өтемақы төленеді?