Полезные макросы Excel для автоматизации рутинной работы с примерами применения для разных задач.
Примеры макросов для автоматизации работы
Макросы для фильтра сводной таблицы в Excel.
Как автоматизировать фильтр в сводных таблицах с помощью макроса? Исходные коды макросов для фильтрации и скрытия столбцов в сводной таблице.
Макрос для создания сводной таблицы в Excel.
Как автоматически сгенерировать сводную таблицу с помощью макроса? Исходный код VBA для создания и настройки сводных таблиц на основе исходных данных.
Макросы для изменения формата ячеек в таблице Excel.
Как форматировать ячейки таблицы макросом? Изменение цвета шрифта, заливки и линий границ, выравнивание. Автоматическая настройка ширины столбцов и высоты строк по содержимому с помощью VBA-макроса.
Макрос для копирования и переименования листов Excel.
Как одновременно копировать и переименовывать большое количество листов одним кликом мышкой? Исходный код макроса, который умеет одновременно скопировать и переименовать любое количество листов.
Сборник готовых макросов
Приветствую на странице, которую каждый начинающий VBA-программист просто обязан добавить в закладки. Сейчас расскажу почему.
Макросы могут сэкономить массу времени. Можно автоматизировать небольшие задачи (ссылка на примеры), или создавать целые проекты автоматизации. Нажал кнопку и макрос выполнил работу целого отдела (вот я вообще не преувеличиваю).
Если Вы не знаете, что такое макрос в Excel и для чего они нужны, то рекомендую начать обучение с бесплатного самоучителя. Сборник готовых примеров, конечно, тоже поможет, но лучше начать с основ, а потом уже переходить к практике.
Моя история
Я ещё со школы начал изучать VBA. Читал книжки, пользовался макрорекордером (подсматривал код, изменял под себя).
Когда ты школьник, то верх мастерства сделать калькулятор или игру. Стал студентом — разработал инвестиционный проект строительства свиноводческого комплекса (вводишь пару основных цифр и программа говорит какая мощность комплекса нужна, сколько нужно людей и денег, плюс тонную документов с деталями цикла производства и план-график выхода на проектную мощность).
Это всё, конечно, интересно и круто, но не сравнить с написанием макросов для решения реальных бизнес-задач.
Представьте на минуту, что всю вашу рутину:
- привести таблицу в «нормальный» вид;
- собрать данные из нескольких файлов в один;
- отфильтровать простыню из данных по нескольким критериям;
- построить сводную таблицу, график и отправить боссу
- тонна аналогичных скучных задач.
можно поручить Excel. ОДИН РАЗ прописать логику с помощью VBA и всё! Да, я знаю, что написание макроса иногда может занять неделю, а то и месяц. Но сколько вы каждый день/неделю/месяц тратите время на ерунду?
Я сам далеко не сразу узнал всё про макросы. Приходилось много читать скучных книг с примерами, которые даже не понимал куда применить, собирать по крупицам информацию в интернете. Да что там говорить — я и сейчас продолжаю изучать VBA.
Про сборник
Изначально я не хотел никому и не при каких обстоятельствах показывать сборник. Максимум ученикам и то, какую-нибудь урезанную версию (т..к постоянно добавляю новые коды). С рождением сына я пересмотрел свою позицию и захотел оставить след в истории (пафосно звучит, ну и пусть).
На поиск всех этих примеров я потратил слишком много времени, и будет круто, если сэкономлю ваше и вы сможете уделить его действительно важным вещам.
Если вы считаете, что что-то должно быть в списке, просто оставьте комментарий. Как только добавлю код — удалю комментарий, а про вас напишу в статье.
В этой огромной статье я собрал уже более 200 макросов, для удобства разбил их по группам.
Вы сможете использовать эти коды, даже если до этого не использовали VBA.
Работа с Excel файлами (WorkBook)
- Как создать файл Excel с помощью VBA
- Как сохранить файл в Excel при изменении определенной ячейки или диапазона
- Как сохранить файл в Excel перед закрытием
- Как защитить лист в книге перед закрытием
- Как снятие защиту с листа при открытии Excel файла
- Как открыть Excel файл на нужном листе
- Как открыть Excel файл, определенный пользователем
- Как определить, открыт ли Excel файл
- Как определяем, существует ли Excel файл в папке
- Как обновить все связи в открытых Excel файлах
- Как закрыть сразу все Excel файлы
- Как открыть все Excel файлы в папке
- Как распечатать все Excel файлы в папке
- Как не дать закрыть Excel файл до тех пор, пока не заполнит ячейку
- Как создать резервную копию текущего Excel файла с сегодняшней датой
Назад к списку тем
Работа с листами Excel файла (WorkSheets)
- Как добавить новый лист и присвоить имя
- Как удалить все листы, кроме активного
- Как скрыть все, кроме активного рабочего листа
- Как отобразить все листы книги
- Как переместить рабочие листы книги
- Как сортировать листы по названию
- Как сгруппировать листы по цвету ярлычка
- Как скопировать лист в новый Excel файл
- Как создать новый Excel файл для каждого листа
- Как распечатать листы
- Как защитить все листы
- Как снять защиту со всех листов
- Как создать оглавление со списком листов
- Как изменить масштаб листа с помощью двойного клика
- Как выделить столбец активной строки на листе
Назад к списку тем
Работа с диапазонами (Range)
Эта часть посвящена диапазонам: их выбору, изменению, скрытию и т. д.
- Как выбрать и изменить форматирование диапазона
- Как создать и выбрать именованный диапазон
- Как сделать перебор диапазона ячеек
- Как выбрать и форматировать диапазон
- Как вставить пустые строки в диапазон
- Как отобразить все скрытые строки и столбцы
- Как удалить пустые строки
- Как удалить пустые столбцы
- Как отобрать и отформатировать все формулы на листе
- Как найти первую пустую строку или столбец
- Как применить дополнительный цвет заливки
- Как отсортировать диапазоны по двойному щелчку
- Как ограничить диапазон прокрутки в той или иной области
- Как автоматически задать область печати листа
Назад к списку тем
Макросы для работы с данными
Эта часть посвящена управлению данными: их очистке, форматированию и т. д.
- Как скопировать и вставить диапазон
- Как преобразовать все формулы в диапазон с значениями
- Как преобразовать текстовые значения в числовые
- Как преобразовать тире в минус
- Как удалить лишние пробелы из всех ячеек в диапазоне
- Как отсечь слева 5 знаков в каждой ячейке диапазона
- Как добавить в ячейку недостающие нули
- Как заменить пустые ячейки нулём
- Как добавить текст в начало или конец ячейки
- Как создать макрос преобразования данных
- Как очистить данные от непечатаемых символов
- Как выделить дубликаты в диапазоне данных
- Как скрыть повторяющиеся строки
- Как выборочно скрыть стрелки автофильтра
- Как скопировать отфильтрованные строки в новый Excel файл
- Как создать новый лист для каждого элемента в автофильтре
- Как показать отфильтрованные столбцы в строке состояния
Назад к списку тем
Макросы для сводных таблиц
- Как создать обратную совместимость сводной таблицы
- Как обновить все сводные таблицы книги
- Как создать список всех сводных таблиц книги
- Как создать все сводные таблицы, используя единый кэш
- Как скрыть все промежуточные итоги в сводной таблице
- Как изменить названия всех полей сводной
- Как принудительно суммировать значения для всех полей сводной
- Как применить числовой формат для всех элементов данных
- Как сортировать поля сводной в алфавитном порядке
- Как применить пользовательскую сортировку к элементам данных
- Как поставить защиту на сводную таблицу
- Как применить ограничения сводного поля
- Как автоматически удалять листы с детализацией
- Как распечатать сводную таблицу для каждого значения фильтра
- Как для каждого элемента фильтра создать новый Excel файл
- Как подготовить диапазон данных для сводной таблицы
Назад к списку тем
Макросы для графиков
- Как изменить размер диаграмм на рабочем листе
- Как привязать график к определенному диапазону
- Как создать набора бессвязных диаграмм
- Как распечатать всех диаграммы на рабочем листе
- Как отметить первое и последнее значение на графике
- Как сопоставить цвет диаграммы и исходных данных
- Как сопоставить цвет точек графика и исходных данных
Назад к списку тем
Макросы для отправки писем из Excel
- Как отправить Excel файл почтой (как вложение)
- Как отправить диапазон значений в качестве вложения
- Как отправить один листа файла в качестве вложения
- Как отправить письмо со ссылкой на наши файлы
- Как разослать письма с добавлением адресов в наш список контактов
- Как сохранить все вложения в отдельной папке
- Как сохранить определенные вложения в папку
Назад к списку тем
Макросы для работы с Access
- Как выполнить запрос Access из Excel
- Как запустить макрос Access из Excel
- Как открыть отчет Access из Excel
- Как открыть форму Access из Excel
- Как сжать базу данных Access из Excel
Назад к списку тем
Макросы для работы с MS Word
- Как отправить данные из Excel в Word документ
- Как сделать слияние с Word документом
Назад к списку тем
Макросы для работы с PowerPoint
- Как отправить данные Excel в PowerPoint
- Как отправить график из Excel в PowerPoint
- Как преобразовать рабочую книгу в презентацию PowerPoint
Назад к списку тем
Функция FilenamesCollection предназначена для получения списка файлов из папки, с учётом выбранной глубины поиска в подпапках. Используется рекурсивный перебор папок, до заданного уровня вложенности. К статье прикреплено 2 примера файла с макросами на основе этой функции:
Надстройка samradDatePicker (русифицированная) для облегчения ввода даты в ячейки листа Excel. Добавляет в контекстное меня ячеек пункт выбора даты, а при выделении ячеек, содержащих дату, справа от ячейки отображает значок календаря. Поместите файл надстройки из вложения в папку автозагрузки Excel (C:Program FilesMicrosoft OfficeOFFICExxXLSTART). В контекстном меню ячеек появляется новый пункт — «Выбрать дату из календаря«.
Требуется макросом поместить изображение (картинку) на лист Excel? Используйте функцию ВставитьКартинку, которая позволит вам вставить картинку в выбранную ячейку (или диапазон ячеек). При вызове функции можно задать дополнительные дополнительные параметры, указав, следует ли подгонять картинку (или ячейку) по высоте и ширине. В этом примере демонстрируются возможные варианты применения функции вставки картинок:
макрос удалит на листе все строки, в которых содержится искомый текст: (пример — во вложении ConditionalRowsDeleting.xls) Sub УдалениеСтрокПоУсловию() Dim ra As Range, delra As Range, ТекстДляПоиска As String Application.ScreenUpdating = False ' отключаем обновление экрана ТекстДляПоиска = "Наименование ценности" ' удаляем строки с таким текстом ' перебираем все строки в используемом диапазоне листа For Each ra In ActiveSheet.UsedRange.Rows
Функции GetFileName и GetFilePath по сути аналогичны, и предназначены для вывода диалогового окна выбора файла Функция GetFilenamesCollection позволяет выборать сразу несколько файлов в одной папке. Функция GetFolderPath работает также, только служит для вывода диалогового окна выбора папки.
|
Bubble Sort
— This macro will perform a bubble sort in excel. You use it simply by selecting one column to sort and then running …
Reverse Cell Contents (Mirror)
— This macro will completely reverse the contents of any cell. This means that if you have a cell which reads «My Tex …
test 1
— Code: Sub Convert_Html_Entities() »»»»»»» TeachExcel.com »»»»»»» ‘Convert HTML Entities into read …
test 2 ? 国
— Sub Convert_Html_Entities() »»»»»»» TeachExcel.com »»»»»»» ‘Convert HTML Entities into readable t …
Get Values from a Chart
— This macro will pull the values from a chart in excel and list those values on another spreadsheet. This will get t …
Format Cells as Text in Excel
— This free Excel macro formats a selection of cells as Text in Excel. This macro applies the Text number format to c …
Format Cells as Time in Excel
— This free Excel macro formats a selection of cells in the Time format in Excel. This Time number format means that …
Make Text Uppercase
— This macro will change all text within the selected cells to uppercase. It works only on selected cells within Micr …
Delete Blank Rows in Excel
— This is a macro which will delete blank rows in excel. This version will delete an entire row if there is a blank c …
Delete Duplicate Rows
— This macro will delete rows that appear twice in a list or worksheet. If two cells are identical, this macro will …
Delete Empty Columns
— This macro will delete columns which are completely empty. This means that if there is no data within the entire co …
Delete Hidden Worksheets
— This macro will delete all hidden worksheets within a workbook. When you run this macro a warning window will pop …
Print Entire Workbook in Excel
— This free excel macro allows you to print the entire workbook in Excel. You can easily set this macro to a button …
Print Specific Pages in Excel
— This free Excel macro allows you to print a pre-specified selection of pages from Excel. This means you can print 2 …
Change Text to Lowercase
— This macro will change all text within the selected cells to lowercase. It works only on selected cells within Micr …
Delete a VBA Module From Excel
— Delete a VBA macro module from Excel with this macro. This macro allows you to fully remove a macro module from Ex …
Open any Program from Excel
— This free excel macro allows you to open any program on your computer from excel. You can open a media player, fil …
Open Microsoft Word from Excel
— This free macro will open the Microsoft Word program on your computer. You do need to have this program first. This …
Приветствую на странице, которую каждый начинающий VBA-программист просто обязан добавить в закладки. Сейчас расскажу почему.
Макросы могут сэкономить массу времени. Можно автоматизировать небольшие задачи (ссылка на примеры), или создавать целые проекты автоматизации. Нажал кнопку и макрос выполнил работу целого отдела (вот я вообще не преувеличиваю).
Если Вы не знаете, что такое макрос в Excel и для чего они нужны, то рекомендую начать обучение с бесплатного самоучителя. Сборник готовых примеров, конечно, тоже поможет, но лучше начать с основ, а потом уже переходить к практике.
Моя история
Я ещё со школы начал изучать VBA. Читал книжки, пользовался макрорекордером (подсматривал код, изменял под себя).
Когда ты школьник, то верх мастерства сделать калькулятор или игру. Стал студентом — разработал инвестиционный проект строительства свиноводческого комплекса (вводишь пару основных цифр и программа говорит какая мощность комплекса нужна, сколько нужно людей и денег, плюс тонную документов с деталями цикла производства и план-график выхода на проектную мощность).
Это всё, конечно, интересно и круто, но не сравнить с написанием макросов для решения реальных бизнес-задач.
Представьте на минуту, что всю вашу рутину:
- привести таблицу в «нормальный» вид;
- собрать данные из нескольких файлов в один;
- отфильтровать простыню из данных по нескольким критериям;
- построить сводную таблицу, график и отправить боссу
- тонна аналогичных скучных задач.
можно поручить Excel. ОДИН РАЗ прописать логику с помощью VBA и всё! Да, я знаю, что написание макроса иногда может занять неделю, а то и месяц. Но сколько вы каждый день/неделю/месяц тратите время на ерунду?
Я сам далеко не сразу узнал всё про макросы. Приходилось много читать скучных книг с примерами, которые даже не понимал куда применить, собирать по крупицам информацию в интернете. Да что там говорить — я и сейчас продолжаю изучать VBA.
Про сборник
Изначально я не хотел никому и не при каких обстоятельствах показывать сборник. Максимум ученикам и то, какую-нибудь урезанную версию (т..к постоянно добавляю новые коды). С рождением сына я пересмотрел свою позицию и захотел оставить след в истории (пафосно звучит, ну и пусть).
На поиск всех этих примеров я потратил слишком много времени, и будет круто, если сэкономлю ваше и вы сможете уделить его действительно важным вещам.
Если вы считаете, что что-то должно быть в списке, просто оставьте комментарий. Как только добавлю код — удалю комментарий, а про вас напишу в статье.
В этой огромной статье я собрал уже более 200 макросов, для удобства разбил их по группам.
Вы сможете использовать эти коды, даже если до этого не использовали VBA.
Работа с Excel файлами (WorkBook)
- Как создать файл Excel с помощью VBA
- Как сохранить файл в Excel при изменении определенной ячейки или диапазона
- Как сохранить файл в Excel перед закрытием
- Как защитить лист в книге перед закрытием
- Как снятие защиту с листа при открытии Excel файла
- Как открыть Excel файл на нужном листе
- Как открыть Excel файл, определенный пользователем
- Как определить, открыт ли Excel файл
- Как определяем, существует ли Excel файл в папке
- Как обновить все связи в открытых Excel файлах
- Как закрыть сразу все Excel файлы
- Как открыть все Excel файлы в папке
- Как распечатать все Excel файлы в папке
- Как не дать закрыть Excel файл до тех пор, пока не заполнит ячейку
- Как создать резервную копию текущего Excel файла с сегодняшней датой
Назад к списку тем
Работа с листами Excel файла (WorkSheets)
- Как добавить новый лист и присвоить имя
- Как удалить все листы, кроме активного
- Как скрыть все, кроме активного рабочего листа
- Как отобразить все листы книги
- Как переместить рабочие листы книги
- Как сортировать листы по названию
- Как сгруппировать листы по цвету ярлычка
- Как скопировать лист в новый Excel файл
- Как создать новый Excel файл для каждого листа
- Как распечатать листы
- Как защитить все листы
- Как снять защиту со всех листов
- Как создать оглавление со списком листов
- Как изменить масштаб листа с помощью двойного клика
- Как выделить столбец активной строки на листе
Назад к списку тем
Работа с диапазонами (Range)
Эта часть посвящена диапазонам: их выбору, изменению, скрытию и т. д.
- Как выбрать и изменить форматирование диапазона
- Как создать и выбрать именованный диапазон
- Как сделать перебор диапазона ячеек
- Как выбрать и форматировать диапазон
- Как вставить пустые строки в диапазон
- Как отобразить все скрытые строки и столбцы
- Как удалить пустые строки
- Как удалить пустые столбцы
- Как отобрать и отформатировать все формулы на листе
- Как найти первую пустую строку или столбец
- Как применить дополнительный цвет заливки
- Как отсортировать диапазоны по двойному щелчку
- Как ограничить диапазон прокрутки в той или иной области
- Как автоматически задать область печати листа
Назад к списку тем
Макросы для работы с данными
Эта часть посвящена управлению данными: их очистке, форматированию и т. д.
- Как скопировать и вставить диапазон
- Как преобразовать все формулы в диапазон с значениями
- Как преобразовать текстовые значения в числовые
- Как преобразовать тире в минус
- Как удалить лишние пробелы из всех ячеек в диапазоне
- Как отсечь слева 5 знаков в каждой ячейке диапазона
- Как добавить в ячейку недостающие нули
- Как заменить пустые ячейки нулём
- Как добавить текст в начало или конец ячейки
- Как создать макрос преобразования данных
- Как очистить данные от непечатаемых символов
- Как выделить дубликаты в диапазоне данных
- Как скрыть повторяющиеся строки
- Как выборочно скрыть стрелки автофильтра
- Как скопировать отфильтрованные строки в новый Excel файл
- Как создать новый лист для каждого элемента в автофильтре
- Как показать отфильтрованные столбцы в строке состояния
Назад к списку тем
Макросы для сводных таблиц
- Как создать обратную совместимость сводной таблицы
- Как обновить все сводные таблицы книги
- Как создать список всех сводных таблиц книги
- Как создать все сводные таблицы, используя единый кэш
- Как скрыть все промежуточные итоги в сводной таблице
- Как изменить названия всех полей сводной
- Как принудительно суммировать значения для всех полей сводной
- Как применить числовой формат для всех элементов данных
- Как сортировать поля сводной в алфавитном порядке
- Как применить пользовательскую сортировку к элементам данных
- Как поставить защиту на сводную таблицу
- Как применить ограничения сводного поля
- Как автоматически удалять листы с детализацией
- Как распечатать сводную таблицу для каждого значения фильтра
- Как для каждого элемента фильтра создать новый Excel файл
- Как подготовить диапазон данных для сводной таблицы
Назад к списку тем
Макросы для графиков
- Как изменить размер диаграмм на рабочем листе
- Как привязать график к определенному диапазону
- Как создать набора бессвязных диаграмм
- Как распечатать всех диаграммы на рабочем листе
- Как отметить первое и последнее значение на графике
- Как сопоставить цвет диаграммы и исходных данных
- Как сопоставить цвет точек графика и исходных данных
Назад к списку тем
Макросы для отправки писем из Excel
- Как отправить Excel файл почтой (как вложение)
- Как отправить диапазон значений в качестве вложения
- Как отправить один листа файла в качестве вложения
- Как отправить письмо со ссылкой на наши файлы
- Как разослать письма с добавлением адресов в наш список контактов
- Как сохранить все вложения в отдельной папке
- Как сохранить определенные вложения в папку
Назад к списку тем
Макросы для работы с Access
- Как выполнить запрос Access из Excel
- Как запустить макрос Access из Excel
- Как открыть отчет Access из Excel
- Как открыть форму Access из Excel
- Как сжать базу данных Access из Excel
Назад к списку тем
Макросы для работы с MS Word
- Как отправить данные из Excel в Word документ
- Как сделать слияние с Word документом
Назад к списку тем
Макросы для работы с PowerPoint
- Как отправить данные Excel в PowerPoint
- Как отправить график из Excel в PowerPoint
- Как преобразовать рабочую книгу в презентацию PowerPoint
Назад к списку тем
Уже добавили страницу в закладки? Зря, я же пополняю список)