Цитата:
Сообщение от sparkfire
хочу научиться их писать
|
Вначале о макросе.
Макрос - это программа, выполняющая вместо нас некие часто повторяющиеся и полезные нам действия. Чтобы вместо нажимания восьмидесяти восьми кнопок на клавиатуре и маслания километров колесом мыши, причём повторяющихся изо дня в день (да смотри не перепутай!) - всё это совершалось нажатием одной клавиши (сочетания клавиш) или клика мышью по созданной кнопочке!
Как создаются макросы разберём на простом примере.
Скопировать значение ячейки А1 в ячейку В1.
Создаём новую книгу и
Сохраняем её.
В ячейку А1 вводим любое число.
Начинаем запись макроса: Сервис - Макрос - Начать запись
Всплывает окошко:
Рассмотрим его внимательно.
Имя макроса автоматом предлагается Макрос1, можно назвать его и по своему например Мой_макрос_который_копирует_значение. Важно! Имя макроса не должно содержать пробелов!
Сочетание клавиш. Можно не назначать. Но если действия выполняемые макросом будут очень часты, удобно назначить "горячую клавишу" например Сtrl+й. Важно! Если назначите макросу уже зарезервированные системой сочетания (такие как Сtrl+с - копировать, Сtrl+v - вставить ...), то в этой книге после нажатия сочетаний будет работать макрос, а не они. Латинские и русские буквы различаются. Поэтому Сtrl+й и Сtrl+q будут различаться, хотя и будем нажимать одну и ту же клавишу.
Сохранить в .... Здесь в выпадающем меню предлагается сохранить макрос только в этой книге. Так, наше Сtrl+й, будет работать только здесь, а в любой другой книге Сtrl+й - работать не будет. Если же мы сохраним в личной книге макросов, то макрос будет работать в любой даже вновь созданной книге.
Описание. Можно не заполнять. Автоматом туда вписывается комментарий когда и кем создан макрос. Если что-то хотите для напоминания ещё туда записать - на здоровье - на работу макроса это влиять не будет.
Нажали ОК.
Теперь работаем ручками, т.е. клавиатурой или мышью. Эксель всё запоминает и записывает последовательность наших действий.
Кликаем на ячейке А1, затем Сtrl+с - копируем, кликаем на ячейке В1, Сtrl+v - вставляем.
Готово! Теперь нам надо остановить запись. Сделать это можно, нажав кнопку на всплывшей панели остановки макроса, а можно опять же через меню Сервис - Макрос - Остановить запись
А теперь самое интересное! Залезем в запись макроса, в программу, которую Эксель сделал следя за нашими действиями и переводя их на язык VBA - Вижуал Бейсик фор Апликейшн.
Сервис - Макрос - Макросы (или Alt+F8)
В появившемся окне, выбираем "Войти"
Открывается наш записанный макрос.
Это автоматическая запись. Всё это можно было точно также набирать в данной программе ручками, зная язык программирования VBA.
Начинается программа с Sub и далее через пробел название программы
Затем после ' идут комментарии не влияющие на ход выполнения программы - эти строки зелёные.
Далее чёрным - это исполняемые строки программы.
В конце End Sub - конец программы.
Попробуем прочитать нашу программу.
Selection.Copy - Выделенное. Скопировать
Range("B1").Select - Ячейку B1. Выделить
ActiveSheet.Paste - На текущем листе. Вставить
Т.е. макрос записал, что копируется не ячейка А1, а копируется любая выделенная ячейка в B1.
Непорядок.
Останавливаем выполнение макроса. Жмём значок "квадратик" в верхней панели.
Переписываем макрос добавив вверху строку
Range("A1").Select - Ячейку А1. Выделить
Selection.Copy
Range("B1").Select
ActiveSheet.Paste
Порядок! Сохраняем нашу редакцию макроса.
Закрываем и тестируем нашу книгу. Вводим любое число в А1. Кликаем абы где, например, на С25. Сtrl+й * и ... Работает, ёшки-матрёшки! Или как гениально высказался предыдущий оратор: "планка самооценки" поднялась (а в месте с ней скорость нарубки капусты).
*если вы не назначали горячих клавиш, то макрос можно также выполнить Сервис - Макрос - Макросы - Выполнить.
Э-э, рано радоваться. Самостоятельное задание. Написать макрос копирования занчение ячейки А1 на другой лист в ячейку В2 и раскрашивания её красным цветом. Успехов.
Приду проверю, раздам конфектки.
(Сегодняшний урок во вложении)