Как вставить готовый макрос в рабочую книгу
Содержание:
- Как сохранить макрос в личную книгу макросов
- Excel макросы самоучитель
- Пример 6
- Как записать макрос
- Синтаксис макроса
- Пример использования макросов №1
- Стрингизация и конкатенация макросов
- Корректируем макрос
- 10 Примеры основных макросов в Excel
- 8) Изменение цвета внутри и шрифтов
- Вариант 1: Автоматическая запись макросов
- Атанас Йонков Блоггер, Веб-разработчик yonkov.atanas@gmail.com
- Макросы для работы с данными
- Как записать макрос в 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. Уже записанные в нее макросы удалять не нужно. Они не будут между собой конфликтовать если соблюдать одно простое правило – в одном модуле нельзя хранить макросы с одинаковыми именами.
Excel макросы самоучитель
Макрос — это программа, автоматизирующая выполнение различных часто повторяющихся операций. Понятие макроса и управление его записью и применением аналогичны рассмотренным в текстовом процессоре Word.
Основной задачей пользователя является аккуратное выполнение требуемой последовательности операций в реальной таблице при включенном макрорекордере. Макрорекордер преобразует выполняемые действия в последовательность команд языка VBA.
Работая с книгой Excel, пользователь может записать несколько макросов. Все они сохраняются в VBA-модуле. Запуск макроса выполняется одним из трех способов:
- с помощью “горячих” клавиш;
- посредством выбора имени макроса в меню;
- щелчком мыши по графическому объекту, связанному с макросом.
Начало записи макроса
- Обратитесь к меню Сервис/Запись макроса. /Начать запись. .
- В окне “Запись макроса” укажите имя макроса.
- Если запуск макроса планируется через меню или “горячие” клавиши, то нажмите кнопку “Параметры” и задайте имя пункта меню или (и) сочетание клавиш.
- Нажмите “Ok” . Признак начала записи — появление небольшого окна с кнопкой “Остановить запись” .
Запись макроса
Начинать запись макроса следует после предварительного планирования действий. Рекомендуется потренироваться в выполнении записываемых операций без запуска макрорекордера. Если при записи выполнено неверное действие, следует отменить его, нажав кнопку “Отменить” на основной панели инструментов.
Завершение записи
- Нажмите кнопку “Остановить запись” .
- Если запуск макроса планируется с помощью графического объекта, то выберите требуемый объект на панели “Формы” и разместите его на рабочем листе. Для вызова указанной панели следует обратиться к меню Вид/Панели инструментов. .После размещения объекта типа “Кнопка” откроется окно “Назначить макрос объекту” , в котором требуется указать имя макроса и нажать “Ok” . Для других объектов необходимо щелкнуть по нему правой кнопкой мыши, после чего из выпадающего меню следует выбрать пункт “Назначить макросу” и указать связь с макросом.
- Опробуйте действие макроса, предварительно восстановив исходное состояние таблицы.
Пример записи макроса
Пусть требуется для выделенного диапазона ячеек, содержащих числа, установить режим форматирования в числовом виде с точностью до одного десятичного знака. Соответствующий макрос должен запускаться с помощью графического объекта “Кнопка”.
Выделить диапазон клеток, в котором задается формат
Важно сделать это до запуска макрорекордера, а не после, поскольку макрос должен быть применим для любого выделенного участка. В противном случае он будет форматировать только один диапазон.
Запустить макрорекордер.
Обратиться к меню Формат/Ячейки
и на вкладке “Число” выбрать числовой формат и “Число десятичных знаков” — 1.
Щелкнуть мышью на любой ячейке, чтобы снять выделение диапазона.
Нажать кнопку “Остановить запись” .
Вызвать панель “Элементы управления” , щелкнуть по объекту “Кнопка” и, установив указатель мыши на свободное место листа, “растянуть” объект. Сменить надпись на кнопке можно двойным щелчком мыши по стандартной надписи, но если объект выделен. Выделяется объект правой кнопкой мыши и нажатием клавиши Esc для закрытия всплывающего меню форматирования объекта.
В окне “Назначить макрос объекту” указать имя макроса, связываемого с кнопкой и нажать “Ok” .
Щелкнуть мышью вне объекта “Кнопка” , чтобы подготовить макрос к работе.
Восстановить исходные данные и опробовать работу макроса для различных выделяемых диапазонов.
На рисунке показан диапазон C1:E2, преобразованный в требуемый формат макросом, запускаемым кнопкой с надписью “Десятичный формат”.
Пример 6
Следующая подпрограмма демонстрирует, как обрабатывать ошибки с помощью операторов OnError и Resume. Также в этом коде описывается, как открывать и читать данные с файла.
‘ Подпрограмма, для для установки определенных значений
‘ в ячейках A1 и B1 документа “Data.xls” на диске C:\
Sub Set_Values(Val1 As Double, Val2 As Double)
Dim DataWorkbook As Workbook
On Error GoTo ErrorHandling
‘ Открытие документа с данными
Set DataWorkbook = Workbooks.Open(“C:\Documents and Settings\Data”)
‘ Выбрать переменные Val1 and Val2 с данных в книге Excel
Val1 = Sheets(“Sheet1”).Cells(1, 1)
Val2 = Sheets(“Sheet1”).Cells(1, 2)
DataWorkbook.Close
Exit Sub
ErrorHandling:
‘ Если файл не найден, предложить пользователю найти правильную директорию
‘ после чего продолжить выполнение подпрограммы
MsgBox “Data Workbook not found;” & _
“Please add the workbook to C:\Documents and Settings and click OK”
Resume
End Sub
После детального ознакомления с этими примерами будет значительно легче применять свои навыки на практике.
Как записать макрос
Прежде чем добавлять алгоритм действий в рабочую книгу, его необходимо создать. Для этого можно воспользоваться двумя способами:
- вручную;
- автоматически.
Для того чтобы создать макрос автоматически, достаточно записать определенный порядок действий через Excel. При этом их необходимо выполнять в данный момент. Когда запись будет окончена, ее можно будет применить к другим таблицам, нажав на воспроизведение. Главное преимущество данного способа – нет необходимости учить код, чтобы применять его на практике. Однако такой алгоритм не будет обладать какой-либо гибкостью, его можно будет применять только в определенных ситуациях. Процесс автоматической записи макросов:
- Изначально необходимой зайти “Центр управления безопасностью” через главное меню программы.
- Зайти во вкладку “Параметры макросов”.
- Активировать команду “Включить все макросы”.
Активация макросов в исходных настройках Excel
- Перейти на вкладку “Разработчик”, которая находится на основной панели инструментов.
- Нажать на кнопку “Запись макроса” (она находится в панели инструментов под названием “Код”).
Далее откроется окно с настройками алгоритма, где нужно придумать имя макроса, установить комбинацию клавиш для его запуска. После завершения настройки необходимо подтвердить заданные параметры кнопкой “ОК”.
Синтаксис макроса
Макросы — это команды, написанные на языке VBA (Visual Basic for Applications). И синтаксис кода макроса не отличается от записи кода в Visual Basic.
Любой макрос имеет следующий вид:
Sub Имя_Макроса_Без_Пробелов()
‘ комментарии к макросу — они нужны для вас, VBA не воспринимает такие строки как команды
команды, написанные на языке VBA
End Sub
3 обязательных блока макроса:
1. Начало макроса. Всегда начинается с команды Sub. Далее идет имя макроса — оно может быть на русском языке, но не должно содержать пробелы и специальные символы.
В конце имени макроса всегда ставятся скобки () — они нужны, когда вы создаете свою функцию, в них указываются аргументы функции, но об этом сейчас речь не пойдет.
2. Блок команд. В нашем примере он состоит из одной строки: Selection.NumberFormat = «#,##0»
Каждая команда должна начинаться с новой строки. Если текст команды очень длинный и не помещается на экране, его можно разбить на несколько строк, заканчивая строку символом нижнего подчеркивания _ (далее в примере мы это увидим).
3. Конец макроса. Всегда обозначается как End Sub.
Есть и один необязательный блок — это комментарии, которые вы можете оставлять в любом месте внутри кода макроса, поставив перед началом комментариев знак апострофа ‘. Например, вы можете описать, что именно делает тот или иной макрос.
Обратите внимание!
Если вы хотите разместить комментарии в несколько строк, каждую новую строку надо начинать с апострофа.
Теперь запишем более сложный макрос и научимся понимать текст его кода.
Например, информационная система выдает отчет «Бюджет на месяц» без выделения групповых значений цветом или шрифтом.
Нам необходимо:
- выделить групповые строки полужирным шрифтом;
- отформатировать на печать — расположить отчет по центру листа, задать масштаб 75 %, вывести в колонтитулы название отчета (рис. 4).
Рис. 4. Изменения после написания макроса
Запишем алгоритм форматирования отчета в макрос.
Нажимаем кнопку записи макроса и выполняем следующие действия:
- Даем макросу имя Форматирование_БДР, в блоке описания записываем, что будет делать этот макрос (например, Выделяет жирным курсивом итоги, форматирует на печать). Жмем Ок.
- Выделяем столбцы А:С, ставим автофильтр — на закладке Данные находим кнопку Фильтр.
- По столбцу КОД задаем условие не содержит точку: Текстовые фильтры — Не содержит и в поле текста ставим символ точки без пробелов (рис. 5).
Рис. 5. Использование автофильтра по столбцу «КОД»
- Выделяем отфильтрованный диапазон и задаем ему полужирный шрифт.
- Снимаем автофильтр (повторное нажатие на закладке Данные кнопки Фильтр).
- Заходим в меню форматирования на печать (Кнопка Файл/Office — Печать — Предварительный просмотр — Параметры страницы) и задаем там три параметра:
1) на вкладке Страница задаем масштаб 75 %;
2) на вкладке Поля отмечаем пункт Горизонтально в блоке Центрировать на странице;
3) на вкладке Колонтитулы создаем верхний колонтитул с текстом Бюджет на январь.
- Выходим из параметров страницы.
- Заканчиваем запись макроса.
- Нажимаем Alt+F11 и смотрим, что получилось (см. рис. 4).
Код этого макроса уже гораздо длиннее и непонятнее, но легко читаем для знающих английский язык и азы программирования в VBA.
Пример использования макросов №1
Сперва этот пример кода использовался для демонстрации комментариев кода, написанного на VBA. Но поскольку он включает и иные возможности языка, он может применяться для демонстрации следующих функций:
- Объявление переменных.
- Указание ссылок на ячейки Excel.
- Применение цикла типа For.
- Применение условного оператора.
- Отображение оповещения.
‘ Подпрограмма для поиска ячеек с адресами A1-A100 текущего активного листа
‘ и поиска ячеек, в которых содержится требуемая строка
Sub Find_String(sFindText As String)
Dim i As Integer ‘ Целочисленная переменная, которая используется в цикле типа «For»
Dim iRowNumber As Integer ‘ Целочисленная переменная, предназначенная для сохранения результата
iRowNumber = 0
‘ Цикл через ячейки A1-A100 до тех пор, пока не будет найдена строка ‘sFindText’
For i = 1 To 100
If Cells(i, 1).Value = sFindText Then
‘ Совпадение обнаружено для заданной строки
‘ Сохранение текущего номера строки и выход из цикла
iRowNumber = i
Exit For
End If
Next i
‘ Всплывающее сообщение, информирующее пользователя о найденной строке и ее номере
If iRowNumber = 0 Then
MsgBox “String ” & sFindText & ” not found”
Else
MsgBox “String ” & sFindText & ” found in cell A” & iRowNumber
End If
End Sub
Стрингизация и конкатенация макросов
Если во время создания макроса появилась необходимость в том, чтобы сделать из макроса строку или соединять макросы в один, то можно
воспользоваться операторами # и ##. Оператор # превращает переданное значение в строку. Оператор ## соединяет элементы макроса. Например, пусть у нас имеется структура,
которая используется для парсинга комманд. Она состоит из строки (имени команды) и самой команды. При этом мы решили, что имя функции должно состоять из имени комманды плюс :
typedef struct command_tag { const char *name; void (*function) (void); } command_t; command_t commands[] = { { "quit", quit_command }, { "init", init_command } };
Для сокращения кода можно объявить такой макрос
#define COMMAND(NAME) { #NAME, NAME ## _command }
Здесь #NAME превращает переданный параметр в строку, а NAME ## _command конкатенирует параметр с _command. Весь код:
#include <stdio.h> #define COMMAND(NAME) { #NAME, NAME ## _command } void quit_command() { printf("I am a quit command\n"); } void init_command() { printf("I am a init command\n"); } typedef struct command_tag { const char *name; void (*function) (void); } command_t; #define SIZE 2 command_t commands[] = { COMMAND(quit), COMMAND(init), }; int main() { size_t i; for (i = 0; i < SIZE; i++) { printf("%s says ", commands.name); commands.function(); } _getch(); return 0; }
Другой пример — макрос, который выводит на печать макрос.
#include <stdio.h> #define STR(X) #X #define PRINT_MACROS(X) printf("%s", STR(X)) #define EXAMPLE __somedata int main() { PRINT_MACROS(EXAMPLE); _getch(); return 0; }
Этот макрос выведет на печать
Макросы — опасная штука. В них очень легко можно сделать ошибку, их сложно отлаживать и сопровождать. В этом курсе си, в общем-то, вам они совершенно не нужны
(но врага надо знать в лицо). В то же время макросы — это мощный инструмент, который позволяет расширить возможности языка. Например, создание кроссплатформенных библиотек,
или условная компиляция, которая зависит от железа. Или такие изыски, как метод Даффа, позволяющий
разматывать тело цикла, или реализация сопрограмм Саймоном Тетхемом.
Q&A
Всё ещё не понятно? – пиши вопросы на ящик
Корректируем макрос
Созданный макрос можно изменить. Самая распространенная причина, которая приводит к такой необходимости – сделанные при записи ошибки. Вот как можно отредактировать макрос:
Нажимаем кнопку “Макросы” (или комбинацию Ctrl+F8).
В появившемся окошке выбираем наш макрос и щелкаем “Изменить”.
На экране отобразится окно редактора “Microsoft Visual Basic”, в котором мы можем внести правки. Структура каждого макроса следующая:
открывается с команды “Sub”, закрывается – “End Sub”;
после “Sub” отображается имя макроса;
далее указано описание (если оно есть) и назначенная комбинация клавиш;
команда “Range(“…”).Select” возвращает номер ячейки. К примеру, “Range(“B2″).Select” отбирает ячейку B2.
В строке “ActiveCell.FormulaR1C1” указывается значение ячейки или действие в формуле.
Давайте попробуем скорректировать макрос, а именно, добавить в него ячейку B4 со значением 3
В код макроса нужно добавить следующие строки:
Для результирующей ячейки D2, соответственно, тоже нужно изменить начальное выражение на следующее:.Примечание: Обратите внимание, что адреса ячеек в данной строке (ActiveCell.FormulaR1C1) пишутся в стиле R1C1.
Когда все готово, редактор можно закрывать (просто щелкаем на крестик в правом верхнем углу окна).
Запускаем выполнение измененного макроса, после чего можем заметить, что в таблице появилась новая заполненная ячейка (B4 со значением “3”), а также, пересчитан результат с учетом измененной формулы. Если мы имеем дело с большим макросом, на выполнение которого может потребоваться немало времени, ручное редактирование изменений поможет быстрее справиться с задачей.
Добавив в конце команду мы можем ускорить работу, так как во время выполнения макроса, изменения на экране отображаться не будут
Если потребуется снова вернуть отображение на экране, пишем команду: .
Чтобы не нагружать программу пересчетом после каждого внесенного изменения, в самом начале пишем команду , а в конце – . Теперь вычисление будет выполняться только один раз.
10 Примеры основных макросов в Excel
Чтобы в полной мере воспользоваться Excel Макросы незаменимы. Макрос может быть определен как последовательность команд (последовательно), которые могут быть щелчками, нажатиями клавиш или даже небольшими строками кода с более продвинутыми функциями. Эти последовательности записываются в модуль VBA и выполняются при необходимости.
Основным преимуществом макроса является выигрыш времени, которое он обеспечивает, ведь он автоматизирует то, что должно быть сделано вручную в несколько этапов. Очень используется, когда вам нужно выполнить один и тот же набор задач несколько раз.
Макрос может быть создан двумя различными способами:
- Использование Macro Recorder: В этой процедуре Excel сохраняет каждое действие, которое будет частью макроса, а затем средство записи макросов преобразует эти действия в команды Visual Basic для приложений (VBA).
- Использование VBA: Если вы немного разбираетесь в программировании или даже владеете языком VBA, вы можете создавать свои макросы самостоятельно. Для этого просто используйте редактор VBA, присутствующий в последних версиях Microsoft Excel.
Как упоминалось ранее, с макросами можно выполнять множество операций, однако некоторые из них отличаются от других тем, что они чаще используются в повседневной работе. Посмотрите макросы 10, которые помогут вам с вашими электронными таблицами.
8) Изменение цвета внутри и шрифтов
Этот макрос изменяет цвета внутри и у источника ячеек в соответствии с буквой ячеек.
Sub Colorir_interior_letra () Для N = 1 до диапазона («O65536»). End (xlUp) .Row
Выберите диапазон шкалы («O» и N) Случай “А” Диапазон («O» и N) .Interior.ColorIndex = 3 Диапазон («O» и N) .Font.ColorIndex = 1
Случай “B” Диапазон («O» и N) .Interior.ColorIndex = 4 Диапазон («O» и N) .Font.ColorIndex = 2
Случай “C” Диапазон («O» и N) .Interior.ColorIndex = 5 Диапазон («O» и N) .Font.ColorIndex = 3
Случай “D” Диапазон («O» и N) .Interior.ColorIndex = 7 Диапазон («O» и N) .Font.ColorIndex = 12
Case Else Диапазон («O» и N) .Interior.ColorIndex = 6 Диапазон («O» и N) .Font.ColorIndex = 4 End Select
Вариант 1: Автоматическая запись макросов
Прежде чем начать автоматическую запись макросов, нужно включить их в программе Microsoft Excel. Для этого воспользуйтесь нашим отдельным материалом.
Подробнее: Включение и отключение макросов в Microsoft Excel
Когда все готово, приступаем к записи.
- Перейдите на вкладку «Разработчик». Кликните по кнопке «Запись макроса», которая расположена на ленте в блоке инструментов «Код».
Открывается окно настройки записи макроса. Тут можно указать любое имя для него, если установленное по умолчанию вас не устраивает. Главное, чтобы имя это начиналось с буквы, а не с цифры, а также в названии не должно быть пробелов. Мы оставили название по умолчанию – «Макрос1».
Тут же при желании можно установить сочетание клавиш, при нажатии на которые макрос будет запускаться. Первой клавишей обязательно должна быть Ctrl, а вторую пользователь устанавливает самостоятельно. Мы в качестве примера установили клавишу М.
Далее следует определить, где будет храниться макрос. По умолчанию он расположен в этой же книге (файле), но при желании можно установить хранение в новой книге или в отдельной книге макросов. Мы оставим значение по умолчанию.
В самом нижнем поле можно оставить любое подходящее по контексту описание макроса, но это делать не обязательно. Когда все настройки выполнены, жмем на кнопку «OK».
После этого все ваши действия в данной книге (файле) Excel будут записываться в макрос до тех пор, пока вы сами не остановите запись.
Для примера запишем простейшее арифметическое действие: сложение содержимого трех ячеек (=C4+C5+C6).
Когда алгоритм был выполнен, щелкаем на кнопку «Остановить запись». Эта кнопка преобразовалась из кнопки «Запись макроса» после включения записи.
Запуск макроса
Для проверки того, как работает записанный макрос, выполним несколько простых действий.
- Кликаем в том же блоке инструментов «Код» по кнопке «Макросы» или жмем сочетание клавиш Alt + F8.
После этого открывается окно со списком записанных макросов. Ищем макрос, который мы записали, выделяем его и кликаем на кнопку «Выполнить».
Можно поступить еще проще и не вызывать даже окно выбора макросов, так как на первом этапе мы задали сочетание клавиш для быстрого вызова макроса. В нашем случае это Ctrl + М. Жмем данную комбинацию на клавиатуре, после чего он запускается.
Как видим, он выполнил в точности все те действия, которые были записаны ранее.
Редактирование макроса
Естественно, при желании вы можете корректировать созданный макрос, чтобы всегда поддерживать его в актуальном состоянии и исправлять некоторые неточности, допущенные во время процесса записи.
- Снова щелкаем на кнопку «Макросы». В открывшемся окне выбираем нужный и кликаем по кнопке «Изменить».
Открывается «Microsoft Visual Basic» (VBE) – среда, где происходит их редактирование.
Запись каждого макроса начинается с команды , а заканчивается командой . Сразу же после указывается имя макроса. Оператор указывает выбор ячейки. Например, при команде «Range(«C4»).Select» выбирается ячейка «C4». Оператор используется для записи действий в формулах и других расчетов.
Попытаемся немного изменить макрос, дописав выражение:
Выражение заменим на .
Закрываем редактор и запускаем макрос. Как видим, вследствие введенных нами изменений была добавлена дополнительная ячейка с данными. Она также была включена в расчет общей суммы.
В случае если макрос слишком большой, его выполнение может занять значительное время, но внесением ручного изменения в код мы можем ускорить процесс. Добавляем команду . Она позволит сохранить вычислительные мощности, а значит, ускорить работу. Это достигается путем отказа от обновления экрана во время выполнения вычислительных действий. Чтобы возобновить обновление после выполнения макроса, в его конце пишем команду .
Добавим также команду в начало кода, а в его конец дописываем . Этим мы сначала отключаем автоматический пересчет результата после каждого изменения ячеек, а в конце макроса – включаем. Таким образом, Excel подсчитает результат только один раз, а не будет его постоянно пересчитывать, чем сэкономит время.
Атанас Йонков Блоггер, Веб-разработчик yonkov.atanas@gmail.com
В этом уроке я покажу Вам самые популярные макросы в VBA Excel, которые вы сможете использовать для оптимизации своей работы. VBA – это язык программирования, который может использоваться для расширения возможностей MS Excel и других приложений MS Office. Это чрезвычайно полезно для пользователей MS Excel, поскольку VBA может использоваться для автоматизации вашей работы и значительно увеличить Вашу эффективность. В этой статье Вы познакомитесь с VBA и я вам покажу некоторые из наиболее полезных, готовых к использованию примеров VBA. Вы сможете использовать эти примеры для создания собственных скриптов, соответствующих Вашим потребностям.
Я подготовил для вас несколько самых полезных примеров VBA Excel с большой функциональностью, которую вы сможете использовать для оптимизации своей работы. Чтобы их использовать, вам необходимо записать их в файл. Следующий параграф посвящен установке макроса Excel. Пропустите эту часть, если вы уже знакомы с этим.
Table of Contents
Как включить макросы в Excel
В Excel нажмите комбинацию клавиш alt + F11. Это приведет вас к редактору VBA в MS Excel. Затем щелкните правой кнопкой мыши папку Microsoft Excel Objects слева и выберите Insert => Module. Это место, где сохраняются макросы. Чтобы использовать макрос, вам нужно сохранить документ Excel как макрос. Из табуляции File => Save as, выберите Save as macro-enabled Workbok (расширение .xlsm) Теперь пришло время написать свой первый макрос!
1. Копирование данных из одного файла в другой.
Очень полезный макрос, поскольку он показывает, как скопировать ряд данных изнутри vba и как создать и назвать новую книгу. Вы можете изменить этот макрос в соответствии с вашими собственными требованиями:
2. Отображение скрытых строк
Иногда большие файлы Excel можно содержать скрытые строки для большей ясности И для лучшего удобства пользователей. Вот один макрос, который отобразит все строки из активной рабочей таблицы:
14. Отправка активного файла по электронной почте
Мой любимый код VBA. Он позволяет вам прикреплять и отправлять файл, с которым вы работаете, с предопределенным адресом электронной почты, заголовком сообщения и телом сообщения! Сначала Вам нужно сделать референцию в Excel на Microsoft Outlook (в редакторе Excel VBA, нажмите tools => references и выберите Microsoft Outlook).
15. Вставка всех графиков Excel в презентацию PowerPoint
Очень удобный макрос, который позволяет вам добавлять все ваши графики Excel в презентацию Powerpoint одним щелчком мыши:
16. Вставка таблицы Excel в MS Word
Таблицы Excel обычно помещаются внутри текстовых документов. Вот один автоматический способ экспорта таблицы Excel в MS Word:
17. Извлечение слов из текста
Мы можем использовать формулы, если хотим извлечь определенное количество символов. Но что, если мы хотим извлечь только одно слово из предложения или диапазон слов в ячейке? Для этого мы можем сами создать функцию Excel с помощью VBA. Это одна из самых удобных функций VBA, поскольку она позволяет создавать собственные формулы, которые отсутствуют в MS Excel. Давайте продолжим и создадим две функции: findword() и findwordrev():
Отлично, мы уже создали две новые функции в Excel! Теперь попробуйте использовать их в Excel. Функция = FindWordRev (A1,1) берет последнее слово из ячейки A1. Функция = FindWord (A1,3) берет третье слово из ячейки A1 и т. Д.
Поздравления! Поскольку вы все еще читаете это, вы действительно заинтересованы в изучении VBA. Как вы уже сами видели, язык программирования VBA чрезвычайно полезен и может сэкономить нам много времени. Надеюсь, вы нашли эту информацию полезной и использовали ее, чтобы стать мастером MS Excel, VBA и компьютерных наук в целом.
Макросы для работы с данными
Эта часть посвящена управлению данными: их очистке, форматированию и т. д.
- Как скопировать и вставить диапазон
- Как преобразовать все формулы в диапазон с значениями
- Как преобразовать текстовые значения в числовые
- Как преобразовать тире в минус
- Как удалить лишние пробелы из всех ячеек в диапазоне
- Как отсечь слева 5 знаков в каждой ячейке диапазона
- Как добавить в ячейку недостающие нули
- Как заменить пустые ячейки нулём
- Как добавить текст в начало или конец ячейки
- Как создать макрос преобразования данных
- Как очистить данные от непечатаемых символов
- Как выделить дубликаты в диапазоне данных
- Как скрыть повторяющиеся строки
- Как выборочно скрыть стрелки автофильтра
- Как скопировать отфильтрованные строки в новый Excel файл
- Как создать новый лист для каждого элемента в автофильтре
- Как показать отфильтрованные столбцы в строке состояния
Как записать макрос в Excel?
В Excel есть встроенная программа макрорекордер, которая записывает каждое действие пользователя и переводит его в язык программирования VBA.
Такой способ записи макроса не требует специальных знаний программирования, поэтому запись макроса с помощью макрорекордера — самый простой способ создания макроса.
Однако при работе с макрорекордером есть свои недостатки:
- Макрорекордер записывает все Ваши действия, в том числе и случайно сделанные ошибки. Поэтому перед записью макроса четко продумайте список выполняемых действий — это поможет избежать ошибок;
- Макрорекордер записывает действия, выполненные только в программе Excel. Переключения на другие программы макрорекордер не записывает;
- Макрорекордер записывает только те действия, для которых есть кнопки или команды меню в Excel.
Вводная часть – зачем нужны макросы
С 1993 года в разработке приложений для компьютеров началась революция, когда был создан объединённый продукт Microsoft Office, где Exel стал играть одну из ключевых ролей. Именно в это время появляется мощное дополнение VBA, позволяющее автоматизировать задачи Exel. Табличный процессор получил возможность не только предоставлять удобный интерфейс для умного пересчёта ячеек, но и стал полноценным продуктом для решения прикладных задач.
Рассмотрим на простых примерах как создавать программы. Автоматизация или программирование работы машины любит точные определения:
- Работаем в приложении Office 365 для дома. При этом рассматриваются те возможности, которые не принципиальны при переходе на работу в расширенные версии. Например, для малого бизнеса, где наиболее полноценно раскрываются возможности табличного процессора и макросы excel 2010.
- При описании будет использоваться интерфейс Exel 2016.
- VBA, диалект предметно ориентированного языка Visual Basic применяемый при работе с приложениями Microsoft Office.
- Макрос или макрокоманда — программный алгоритм действий, определённый пользователем. Кроме того, это понятие применяется для символьного имени книги-шаблона, в которой хранится код действий.
- Используется только функциональность, предусмотренная базовым вариантом табличного процессора, использующего макросы для excel 2013.
- Предполагается, что читатель знаком с возможностями табличного процессора, но никогда не использовал макрос в excel 2007.
Рассмотрим, как создать макрос в excel 2007 на примере решения очень простой задачи:
В течение шести дней с понедельника по субботу на склад поступал цемент. Работали разные кладовщики. Информация вносится в компьютер последовательно не сортируя.
Задача — используя информацию кладовщиков (см. рис.1) сделать сводную таблицу за неделю. Посчитать общий вес поступившего цемента и по каждому кладовщику отдельно.
Как создать макрос
Крутые игровые клавиатуры – например, от Razer, оборудованы специальными клавишами для запуска макросов.
У различных производителей программы отличаются, но функционируют они одинаково: для записи нужно или нажать клавиши в той последовательности, в которой вы хотите их эмулировать или указать команды с помощью встроенного редактора.
При этом, указываются не только сами клавиши, но и интервалы между нажатиями, количество нажатий, условия выполнения, что делать в случае невыполнения, необходимость повтора и количество циклов.
Однако если у вас обычная офисная клавиатура без всяких «наворотов», это не проблема, если возникла необходимость в записи макросов. На обычную клавиатуру существует масса софта, имитирующего нажатие клавиш. Особо стоит отметить:
Key Manager;
- Perfect Keyboard Pro;
- BotMek;
- AutoHotkey;
- Hot Keyboard.
Естественно, для запуска записанного макроса, придется использовать те кнопки, которые есть в наличии. Рекомендую забиндить действия на редко используемые клавиши – например, цифровую клавиатуру.
Учитывайте, что все эти утилиты в большинстве случаев определяются системами безопасности ММО игр, как вредоносные. При их запуске возможны проблемы со входом в игру, а в худшем случае и бан аккаунта.
Написание макросов в Excel
Код макроса Excel написанный на языке Visual Basic for Application (VBA), а его выполняет инструмент приложения, к которому он присоединен. Большинство этих инструментов не доступно на уровне окна программы Excel. Как написать макрос.
Теперь продемонстрируем на примере информацию о том, как писать, редактировать и выполнять код макроса.
Чтобы написать макрос:
- Откройте рабочую книгу Excel, в которой необходимо использовать макрос: «РАЗРАБОТЧИК»-«Код»-«Visual Basic». Или нажмите комбинацию горячих клавиш ALT+F11.
Перед началом работы в редакторе следует сделать простую настройку. Выберите инструмент в редакторе Visual Basic: «Tools»-«Options». И на вкладке «Editor» активируйте опцию «Require Variable Declaration». Это позволит реализовать автоматическое заполнение инструкций Options Explicit в начале каждого ново созданного кода. А в поле ввода «Tab Width:» укажите значение 2 вместо 4-х. Это позволит уменьшить ширину кода. Данная настройка редактора распространяется на все листы, но в границах одной рабочей книги.
Выберите инструмент: «Insert»-«Module» чтобы создать новый стандартный модуль для макросов. В появившемся окне модуля под текстом Option Explicit введите следующий код макроса:
Нажмите на кнопку в редакторе «Run Macro» или клавишу F5 на клавиатуре. В появившемся окне «Macros» нажмите на кнопку «Run», чтобы посмотреть результат работы макроса.
Примечание. Если в главном меню отсутствует закладка «РАЗРАБОТЧИК», тогда ее необходимо активировать в настройках: «ФАЙЛ»-«Параметры»-«Настроить ленту». В правом списке «Основные вкладки:» активируйте галочкой опцию «Разработчик» и нажмите на кнопку ОК.