Как создать макрос в excel

Содержание:

10 Примеры основных макросов в Excel

Чтобы в полной мере воспользоваться Excel Макросы незаменимы. Макрос может быть определен как последовательность команд (последовательно), которые могут быть щелчками, нажатиями клавиш или даже небольшими строками кода с более продвинутыми функциями. Эти последовательности записываются в модуль VBA и выполняются при необходимости.

Основным преимуществом макроса является выигрыш времени, которое он обеспечивает, ведь он автоматизирует то, что должно быть сделано вручную в несколько этапов. Очень используется, когда вам нужно выполнить один и тот же набор задач несколько раз.

Макрос может быть создан двумя различными способами:

  • Использование Macro Recorder: В этой процедуре Excel сохраняет каждое действие, которое будет частью макроса, а затем средство записи макросов преобразует эти действия в команды Visual Basic для приложений (VBA).
  • Использование VBA: Если вы немного разбираетесь в программировании или даже владеете языком VBA, вы можете создавать свои макросы самостоятельно. Для этого просто используйте редактор VBA, присутствующий в последних версиях Microsoft Excel.

Как упоминалось ранее, с макросами можно выполнять множество операций, однако некоторые из них отличаются от других тем, что они чаще используются в повседневной работе. Посмотрите макросы 10, которые помогут вам с вашими электронными таблицами.

Безопасность макросов в современных версиях Excel (2007 и более новых)

Чтобы запустить макрос в современных версиях Excel, файл должен быть сохранён как Книга Excel с поддержкой макросов. Открывая такой файл, по его расширению xlsm Excel понимает, что в данной рабочей книге содержатся макросы (в отличие от файла со стандартным расширением xlsx).

Поэтому, чтобы иметь возможность запускать созданный в обычной рабочей книге Excel макрос всегда и везде, нужно сохранить её с расширением xlsm. Для этого на вкладке Файл (File) нажмите Сохранить как (Save as) и в поле Тип файла (Save as type) выберите Книга Excel с поддержкой макросов (Excel Macro-Enabled Workbook).

Отличие в типе файлов ясно указывает на то, что рабочая книга содержит макросы, и это уже становится первым важным шагом к соблюдению мер безопасности. Помимо этого, в Excel существует несколько режимов безопасности макросов, выбрать один их которых можно в меню параметров приложения. Вот эти режимы:

  1. Отключить все макросы без уведомления (Disable all macros without notification)

    Запрет на выполнение любых макросов. При открытии книги Excel не уведомляет о том, что эта книга содержит макросы, поэтому пользователь может не понять причину, по которой книга Excel не работает так, как должна.

  2. Отключить все макросы с уведомлением (Disable all macros with notification)

    Запрет на выполнение макросов. Однако, если в рабочей книге есть макрос, появится предупреждение о том, что макрос присутствует, но отключен.

  3. Отключить все макросы без цифровых подписей (Disable all macros except digitally signed macros)

    Разрешено выполнение макросов только из доверенных источников. Все прочие макросы выполняться не будут. При открытии книги Excel не уведомляет о том, что эта книга содержит макросы, поэтому пользователь может не понять причину, по которой книга Excel не работает так, как должна.

  4. Включить все макросы (Enable all macros)

    Разрешено выполнение всех макросов. При открытии книги Excel не появляется уведомление о том, что в ней содержатся макросы. Соответственно пользователь может не знать, что какой-либо макрос выполняется, пока открыт файл.

Вариант Отключить все макросы с уведомлением — позволяет при открытии файла сделать выбор: разрешить запуск макросов или отключить их. При этом вверху листа появляется жёлтая полоса с уведомлением и кнопкой, как показано на рисунке ниже:

Чтобы разрешить выполнение макросов нужно просто кликнуть по кнопке Включить содержимое (Enable Content).

Написание макросов в excel самоучитель

Курс «Макросы в Excel»

Программа обучения состоит из 11-ти модулей. Вы получите очень понятное изложение теории с решением практических задач.

Вы будете знать все необходимые конструкции, которые позволят написать макросы для автоматизации любых задач.

Вы получаете доступ к сборнику готовых макросов, которые можно просто брать и сразу применять для автоматизации своих задач. Уроки помогут разобраться в принципе работы команд. Вы сможете изменять эти примеры под ваши конкретные задачи.

Вы сами решаете на сколько нужен доступ:

1 мес – 2 990 руб.

3 мес – 4 990 руб.

Экономия 56% – самый популярный вариант

6 мес – 6 990 руб.

Сразу после оплаты Вы получаете доступ сразу ко всем урокам без каких-либо ограничений по прохождению.

Всего более 9 часов видео материалов

Блок 1. Основы написания макросов

Блок 2. Объектная модель

Блок 3. Работа с Application, Workbook, Worksheet

Блок 4. Методы копирования и удаления ячеек/диапазонов

Блок 5. Способы определения посл. заполненной ячейки

Блок 6. Проверка условий (If. Then. ; Select Case)

Блок 7. Работа с переменными

Блок 8. 3 вида циклов

Блок 9. Диалог с пользователем

Блок 10. Функции VBA

Блок 11. Строим сводные таблицы макросом

Сборник 100+ готовых примеров макросов

Нажмите на названии пункта, чтобы раскрыть детали

1. Вы оформляете заказ

Нажмите Купить доступ.

Также информация о заказе автоматом уйдёт к вам на почту.

2. Оплачиваете картой

3. Получаете доступ

Переходите в личный кабинет (письмо с логином и паролем уже у вас в почте). Внутри курс Макросы в Excel. Состоит из 11 блоков, каждый разбит на уроки. В уроке текстовое объяснение материала, задание в Excel файле и тест на проверку знаний. Сдаёте 80% тестов – получаете сертификат (в электронном виде на почту и в личном кабинете).

4. Применяете знания в работе

Мы постарались простым и понятным языком рассказать вам про функционал, который в разы увеличит вашу Excel-производительность. Видео, тексты, тесты, практические примеры – это всё хорошо, но теперь дело за вами! Уже с первого урока начните применять полученные знания, иначе получится, что мы зря старались.

Отзывы учениковАкадемии Excel

Хочу поблагодарить вас за курс по макросам. С excel работаю давно. Про макросы слышала, но всегда считала, что это только для программистов. Посмотрела ваши бесплатные уроки и изменила свое мнение. Самое главное, что ушёл страх. Раньше боялась, что как я, с базовым немецким (лучше бы английский учила), который последний раз открывала лет 30 назад в школе смогу разобраться в программировании. Да, сначала было не просто, но вы очень доступно и понятно объясняете.

Не всегда получается с первого раза, но я выработала для себя стратегию. Сначала просто смотрю видео и даже не пытаюсь повторять вслед за вами. Тут главное уловить идею, логику что ли. Потом уже начинаю делать задания параллельно с вашими объяснениями. Спасибоза качественные видео и доп.материалы. Одного месяца точно мало, мне понадобилось 5 мес. Училась стабильно 2-3 дня в неделю. В среднем по 1-1,5 часа. Но, возможно на меня не стоит ориентироваться. Спасибо за всё!

Дмитрий, Вы очень грамотно и доходчиво объясняете материал. Всё как-то логично, структурировано, что ощущение, что в рот положили, осталось только прожевать. Ваши короткие видео удобно пересматривать, так как не нужно проматывать полуторачасовые вебинары с кучей воды, как у других. Спасибо, что делитесь своими готовыми примерами. Просто брал и применял, практически без изменений.

Я не представляю сколько времени ушло на подготовку всего этого материала, но могу с большой степенью вероятности сказать, что это уникальный материал!

Спасибо, за ваш курс: Макросы в ExcelКак всегда, доступное изложение материала по принципу от простого к сложному с практическими примерами. До записи к вам на курс уже пробовала писать макросы, использовала макрорекордер, где-то находила готовые примеры и пыталась изменить под свои задачи. Эта была бессистемна работа. Постоянно не понимала почему в примере работает, а если что-то меняю, то сразу появляются какие-то ошибки. Ваш курс расставил всё по местам.

Рекомендую его всем, кто пытается автоматизировать свои рутинные задачи средствами VBA. Вы увидите возможности применения условий, циклов, массивов и ещё много чего полезного. Вас ждут примеры простых макросов, которые значительно сэкономят время при написании собственных программ.

Сохранение файла Excel с названием из ячейки — без привязки к ячейке

Теперь давайте представим, что заранее мы не можем определить, какая именно ячейка будет формировать название файла (может B14, а может и нет), поэтому мы можем немного скорректировать алгоритм таким образом, чтобы он брал значение из ячейки, которая является активной, но в этом случае Вы, конечно же, предварительно, должны выбрать ее (т.е. встать на нее).

Замените код процедуры следующим кодом, который совсем немного, но изменен.

 Sub SaveFile() 'Объявление переменных Dim CellValue As String Dim Path As String Dim FinalFileName As String 'Временно отключаем показ вспомогательных сообщений Application.DisplayAlerts = False 'Задаём каталог сохранения файла (в данном случае текущий каталог) Path = ThisWorkbook.Path & "" 'Проверка значения ячейки If ActiveCell.Value = "" Then MsgBox "В ячейке отсутствует значение", vbCritical, "Ошибка!" Exit Sub End If 'Получаем значение активной ячейки CellValue = ActiveCell.Value 'Формируем итоговый путь и название файла FinalFileName = Path & CellValue 'Сохраняем файл ActiveWorkbook.SaveAs FileName:=FinalFileName, _ FileFormat:=xlOpenXMLWorkbook 'FileFormat:=xlOpenXMLWorkbookMacroEnabled 'Для сохранения файла с макросом 'Включаем вывод сообщений Application.DisplayAlerts = True MsgBox "Файл успешно сохранен с названием - " & CellValue, vbInformation, "Результат" End Sub 

Проверяем работу, становимся на нужную ячейку, и запускаем макрос (в процедуре я добавил проверку, если выбрана пустая ячейка, возникнет ошибка).

Как видим, все отработало.

Краткое руководство: создание макроса

​ подобное).​​Все, что находится между​ окнах придется смириться:​ пользовательских функций позволяет​Alt+F8​в строке состояния​ снова и снова,​ на ленте отображается​ создания макроса его​ вычислительные мощности, а​ содержимого трёх ячеек​ способами:​ где ваш курсор​ ALT+F8). Появится окно​ окне Мастера функций​ Excel и выберите​Personal.xls​Если во время записи​Sub​Макросы (т.е. наборы команд​ автоматизировать эти операции,​

​(одновременно нажмите клавиши​ в Excel 2007​ просто запуская этот​ вкладка​ можно отредактировать, чтобы​ значит ускорить работу.​ (=C4+C5+C6).​автоматически;​ позиционируется, когда вы​ со списком записанных​ (​ команду​, которая используется как​ макроса макрорекордером вы​и​

​ на языке VBA)​ перекладывая монотонную однообразную​Alt​ и более новых​ макрос. Это гораздо​Разработчик​ изменить выполняемые им​ Это достигается путем​После этого, жмем на​вручную.​ начинаете запись макроса!​ макросов и кнопками​

Процедура

​Настройка панели быстрого доступа​​ хранилище макросов. Все​

​ ошиблись — ошибка​End Sub​​ хранятся в программных​​ работу на плечи​и​ версиях:​ эффективнее, чем выполнять​. По умолчанию вкладка​ действия.​

​ отказа от обновления​​ кнопку «Остановить запись».​

  1. ​Воспользовавшись первым вариантом, вы​​ Даже если он​​ для управления ими.​​) в категории​​ (Customise Quick Access​​ макросы из​​ будет записана. Однако​

  2. ​- тело макроса,​​ модулях. В любой​​ Excel. Другим поводом​​F8​​Панель инструментов записи макроса​​ раз за разом​​Разработчик​Допустим, что необходимо каждый​​ экрана во время​​ Эта кнопка преобразовалась​ просто записываете определенные​

  3. ​ уже находится в​С помощью макропрограмм можно​Определенные пользователем (User Defined)​ Toolbar)​

  4. ​Personal.xls​​ смело можете давить​​ т.е. команды, которые​​ книге Excel мы​​ для использования макросов​

​);​​ в Excel 2003:​

​ одни и те​не видна, поэтому​ месяц создавать отчет​

​ выполнения вычислительных действий.​ из кнопки «Запись​​ действия в программе​​ ячейке A1, ваш​​ увеличить производительность труда​​:​​:​​загружаются в память​ на кнопку отмены​​ будут выполняться при​​ можем создать любое​ в вашей работе​

​В появившемся списке макросов​Нажмите​ же действия вручную.​ необходимо выполнить указанные​ для главного бухгалтера.​

​ Чтобы возобновить обновление​ макроса», после включения​ Microsoft Excel, которые​ первый макрос лучше​

Дальнейшие действия

  • ​ пользователя в десятки​После выбора функции выделяем​Затем в открывшемся окне​ при старте Excel​

  • ​ последнего действия (Undo)​ запуске макроса. В​ количество программных модулей​

Процедура

​ может стать необходимость​​ выберите тот, который​

​Стоп​Чтобы записать макрос, нужно​ ниже действия.​​ Требуется выделить красным​​ после выполнения макроса,​​ записи.​​ выполняете в данный​ записывать после нажатия​ раз. Но чтобы​

  1. ​ ячейки с аргументами​​ выберите категорию​​ и могут быть​​ — во время​​ данном случае макрос​​ и разместить там​​ добавить в Microsoft​

  2. ​ нужно запустить;​​, когда выполните все​​ включить режим записи.​​Выберите​​ цветом и полужирным​​ в его конце​​Для того, чтобы проверить,​ момент времени. Потом,​​ клавиш должны быть​​ использовать запись пользовательских​

​ (с суммой, для​​Макросы​

  1. ​ запущены в любой​​ записи макроса макрорекордером​​ выделяет ячейку заливает​​ наши макросы. Один​​ Excel недостающие, но​

  2. ​Нажмите кнопку​​ действия, которые должны​​ Это можно сделать​​Excel​​ шрифтом имена клиентов​​ пишем команду «Application.ScreenUpdating​​ как работает записанный​ можно будет воспроизвести​​ Ctrl + Home.​​ макросов на все​ которой надо посчитать​

  3. ​и при помощи​ момент и в​ она не просто​ выделенных диапазон (Selection)​

  4. ​ модуль может содержать​​ нужные вам функции.​​В​​ быть записаны в​​ на вкладке​​>​​ с просроченными счетами.​

​ = True»​​ макрос, кликаем в​

​ эту запись. Данный​Пример: Представьте себе, что​ 100% следует соблюдать​

​ НДС) как в​ кнопки​​ любой книге.​​ возрвращает Вас в​ желтым цветом (код​ любое количество макросов.​ Например функцию сборки​​ыполнить​​ макрос. Теперь код​Вид​

​Параметры​ Для этого можно​Добавим также команду «Application.Calculation​ том же блоке​ способ очень легкий,​

​ каждый месяц вы​ простые правила, которые​ случае с обычной​Добавить (Add)​

Дальнейшие действия

​После включения записи и​ предыдущее состояние, но​ = 6) и​ Доступ ко всем​ данных с разных​(Run).​

support.office.com>

Выпадающий календарь в ячейке (выбор даты на листе Excel)

Надстройка samradDatePicker (русифицированная) для облегчения ввода даты в ячейки листа Excel.

Добавляет в контекстное меня ячеек пункт выбора даты, а при выделении ячеек, содержащих дату, справа от ячейки отображает значок календаря.

Поместите файл надстройки из вложения в папку автозагрузки Excel (C:Program FilesMicrosoft OfficeOFFICExxXLSTART).

В контекстном меню ячеек появляется новый пункт – “Выбрать дату из календаря“. Рядом с ячейками, в которые уже введена дата, будет отображаться маленький календарик, щелчок по которому вызовет большой календарь – для выбора даты.

  • 79 комментариев
  • Читать далее
  • 242331 просмотр
  • 2 прикреплённых файла

Вводная часть – зачем нужны макросы

С 1993 года в разработке приложений для компьютеров началась революция, когда был создан объединённый продукт Microsoft Office, где Exel стал играть одну из ключевых ролей. Именно в это время появляется мощное дополнение VBA, позволяющее автоматизировать задачи Exel. Табличный процессор получил возможность не только предоставлять удобный интерфейс для умного пересчёта ячеек, но и стал полноценным продуктом для решения прикладных задач.

Рассмотрим на простых примерах как создавать программы. Автоматизация или программирование работы машины любит точные определения:

  • Работаем в приложении Office 365 для дома. При этом рассматриваются те возможности, которые не принципиальны при переходе на работу в расширенные версии. Например, для малого бизнеса, где наиболее полноценно раскрываются возможности табличного процессора и макросы excel 2010.
  • При описании будет использоваться интерфейс Exel 2016.
  • VBA, диалект предметно ориентированного языка Visual Basic применяемый при работе с приложениями Microsoft Office.
  • Макрос или макрокоманда — программный алгоритм действий, определённый пользователем. Кроме того, это понятие применяется для символьного имени книги-шаблона, в которой хранится код действий.
  • Используется только функциональность, предусмотренная базовым вариантом табличного процессора, использующего макросы для excel 2013.
  • Предполагается, что читатель знаком с возможностями табличного процессора, но никогда не использовал макрос в excel 2007.

Рассмотрим, как создать макрос в excel 2007 на примере решения очень простой задачи:

В течение шести дней с понедельника по субботу на склад поступал цемент. Работали разные кладовщики. Информация вносится в компьютер последовательно не сортируя.

Задача — используя информацию кладовщиков (см. рис.1) сделать сводную таблицу за неделю. Посчитать общий вес поступившего цемента и по каждому кладовщику отдельно.

На всякий случай рекомендуем знать, как сделать сумму прописью в Excel.

Как использовать Личную Книгу Макросов

Дальше все просто. Любой нужный вам макрос (т.е. кусок кода, начинающийся на Sub и заканчивающийся End Sub) можно смело копировать и вставлять либо в Module1, либо в отдельный модуль, добавив его предварительно через меню Insert – Module. Хранить все макросы в одном модуле или раскладывать по разным – исключительно вопрос вкуса. Выглядеть это должно примерно так:

Запустить добавленный макрос можно в диалоговом окне, вызываемом с помощью кнопки Макросы (Macros) на вкладке Разработчик:

В этом же окне, нажав кнопку Параметры (Options), можно задать сочетание клавиш для быстрого запуска макроса с клавиатуры. Будьте внимательны: сочетания клавиш для макросов различают раскладку (русская или английская) и регистр.

Кроме обычных макросов-процедур в Личной Книге можно хранить и пользовательские макро-функции (UDF = User Defined Function). В отличие от процедур, код функций начинаются с оператора Functionили Public Function, а заканчиваются на End Function:

Код необходимо аналогичным образом скопировать в любой модуль книги PERSONAL.XLSB и затем можно будет вызвать функцию обычным образом, как любую стандарную функцию Excel, нажав кнопку fx в строке формул и выбрав функцию в окне Мастера Функций в категории Определенные пользователем (User Defined):

Примеры таких функций можно в больших количествах найти в интернете или здесь же на сайте (сумма прописью, приблизительный текстовый поиск, ВПР 2.0, конвертация кириллицы в транслит и т.п.)

7) Изменить цвет ячейки при наведении мыши

Вы также можете обеспечить большую интерактивность с пользователями электронных таблиц. В идеале интерактивность имеет целью облегчить обслуживание и визуализацию информации. Приведенный ниже макрос – это пример того, как ваши таблицы могут отображать ячейки с одинаковым цветовым тоном, когда мышь передает данные, которые коррелируют эти ячейки.

Private Sub Worksheet_SelectionChange (ByVal Target As Range)

Димская домашняя линия как диапазон Дальность Dim Line2 как длинный

Set Line Start = Range («A» и Line2, Target)

Закрашивает выделенную ячейку в столбце 5 Set Line = Range (ячейки (Target.Row, 1), ячейки (Target.Row, 5))

С линейкой .Interior.ColorIndex = 12 Конец с

Как работать с макросами в Excel

5 простых советов, которые помогут в создании макросов без программирования. Воспользуйтесь этими простыми советами, которые позволяют быстро и просто создавать качественные макропрограммы автоматически:

1 Правильные имена в макросах.

Присваивайте макросам короткие, но содержательные имена. Когда вы войдете вкус, со временем вам придется создавать много макросов. При выборе в диалоговом окне их легче найти с короткими и содержательными названиями. Система VBA предоставляет вам возможность указать описание к имени. Обязательно используйте ее.

Имя макроса обязательно должно начинаться с букв и не может содержать пробелы, символы или знаки препинания. После первого символа, вы можете использовать больше букв, цифр или нижнее подчеркивание, но максимальная длина имени составляет 80 символов.

2 Используйте относительные (не абсолютные) адреса ячеек

Абсолютный адрес ячейки – это точное местонахождение курсора, когда информация о его размещении записывается в макро-адреса с жесткой привязкой к конкретной ячейке в момент записи. Абсолютные адреса ограничивают возможности макроса, если будут добавляться / удаляться данные на листе Excel или список данных будет становиться больше. Относительные средства не привязывают курсор к конкретному адресу ячейки.

По умолчанию в Excel включен режим «Абсолют», но вы можете изменить его, включив кнопку «Относительные ссылки» расположенную ниже под кнопкой «Запись макроса» на панели инструментов вкладки «Разработчик»:

3 Всегда начинайте запись с курсором в A1

Абсолютный отсчет ячеек, всегда ведется с исходного положения (адрес ячейки А1) – до адреса курсора с вашими данными. Если вы сохранили ваш макрос в книге личных макросов (рекомендуется так и делать), то вы можете использовать свою программу на других листах с аналогичными данными. Независимо от того, где ваш курсор позиционируется, когда вы начинаете запись макроса! Даже если он уже находится в ячейке A1, ваш первый макрос лучше записывать после нажатия клавиш должны быть Ctrl + Home.

Пример: Представьте себе, что каждый месяц вы получаете десятки таблиц из всех филиалов. От вас требуется организовать данные и рассчитать показатели, чтобы произвести еще один ежемесячный отчет. Вы можете записать макрос для выполнения всех этих функций, в том числе открытие и соединение всех листов в одну комбинированную таблицу.

4 Всегда перемещаться с клавиш направления в момент записи макроса

Используйте кнопки со стрелками для управления курсором (Ctrl + Up, и т.п.). Позиционируйте курсор, так чтобы вы могли добавить, изменить или удалить данные внутри таблицы по мере необходимости.

Использование мыши для навигации является более сложным и не так надежным в момент записи. Когда дело доходит до макросов, использовать мышь лучше только для вызова меню.

5 Создавайте макросы для конкретных небольших задач

Держите ваши макросы для небольших специфичных задач. Чем больше программный код в макросе, тем медленнее он работает, особенно если это требуется для выполнения многих функций или рассчитать много формул в большой электронной таблице.

Если вы запустите каждый процесс отдельно, вы можете быстро просмотреть результаты для проверки точности их выполнения.

Если нельзя разбить длинный макрос на короткие приложения, а требуется проверить его функциональность пошагово («отладкой»). Нажмите клавишу F8 каждый раз, когда вы хотите перейти к следующему шагу выполнения задачи. Процесс выполнения программы останавливается, когда он видит ошибку. Вы можете исправить ошибку, которую легко найти с помощью «отладки» или записать по-новому.

Пример 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

После детального ознакомления с этими примерами будет значительно легче применять свои навыки на практике. 

Макрос на VBA Excel – Формируем документы по шаблону

Очень часто бывает такое, что нужно сформировать документы по определенному шаблону, на основе каких-то данных, например, по каждому сотруднику или по каждому лицевому счету. И делать это вручную бывает достаточно долго, когда этих самых сотрудников или лицевых счетов много, поэтому сегодня мы рассмотрим примеры реализации таких задач в Excel с помощью макроса написанного на VBA Excel.

Немного поясню задачу, допустим, нам необходимо сформировать какие-то специфические документы по шаблону массово, т.е. в итоге их получится очень много, как я уже сказал выше, например, по каждому сотруднику. И это нужно сделать непосредственно в Excel, если было бы можно это сделать в Word, то мы бы это сделали через «Слияние», но нам нужно именно в Excel, поэтому для этой задачи мы будем писать макрос.

Мы с Вами уже выгружали данные по шаблону через клиент Access из базы MSSql 2008 в Word и Excel вот в этой статье — Выгрузка данных из Access в шаблон Word и Excel. Но сейчас допустим, у нас данные располагаются в базе, в клиенте которой нельзя или слишком трудоемко реализовать такую задачу, поэтому мы просто выгрузим необходимые данные в Excel и на основе таких данных по шаблону сформируем наши документы.

В нашем примере мы, конечно, будем использовать простой шаблон, только для того чтобы это было просто наглядно и понятно (только в качестве примера), у Вас в свою очередь шаблон будет, как мне кажется намного сложней.

Напомню, что на данном сайте тема VBA Excel уже затрагивалась, например, в материале – Запрет доступа к листу Excel с помощью пароля

И так приступим!

Код макроса на VBA Excel

Для того чтобы написать код макроса, открывайте на ленте вкладку «Разработчик», далее макросы.

Примечание! По умолчанию данной вкладке в Excel 2010 может и не быть, чтобы ее отобразить нажмите правой кнопкой по ленте пункт меню «Настройка ленты»

затем, в правой области поставьте галочку напротив пункта «Разработчик»

После вкладка разработчик станет отображаться на ленте.

Далее, когда Вы откроете вкладку разработчик и нажмете кнопку «Макросы» у Вас отобразится окно создания макроса, Вы пишите название макросы и жмете «создать».

После у Вас откроется окно редактора кода, где собственно мы и будем писать свой код VBA. Ниже представлен код, я его как обычно подробно прокомментировал:

Теперь осталось выполнить этот макрос, для этого откройте вкладку разработчик->макросы->выполнить наш макрос:

и после выполнения у Вас в той же папке появится вот такие файлы

Вот с таким содержимым:

Для удобства можете на листе с данными создать кнопку и задать ей событие выполнить наш только что созданный макрос, и после чего простым нажатием выполнять этот макрос. Вот и все! Удачи!

Как записать самый простой макрос?

Для начала запишем самый легкий макрос — зададим в ячейке А1 формат вида 12 345:

  •  Открываем новую книгу, в ячейке А1 набираем шестизначное число 123456. Сейчас оно выдается без разделителей разрядов. Запишем макрос, который ставит эти разделители.
  •  Заходим на панели инструментов в закладку Вид*, находим кнопку Макросы, жмем Запись макроса. В появившемся окне задаем имя макроса и книгу, в которой хотим этот макрос сохранить.

Важно

Запустить макросы можно только из открытых книг, поэтому если вы планируете использовать записанные вами макросы довольно часто, стоит использовать специальную книгу макросов, которая автоматически открывается вместе с запуском сеанса Excel.

Если вы все-таки хотите хранить макросы в отдельном файле, эту книгу нужно сохранить, выбрав тип файла Книга Excel с поддержкой макросов. В противном случае после закрытия книги макросы будут стерты.

 Выбираем Сохранить в… —  Личная книга макросов и нажимаем Ок (рис. 1).

Рис. 1. Запись макроса в личную книгу макросов

 Записываем в макрос действия, которые хотим выполнить: вызываем контекстное меню Формат ячеек (можно воспользоваться комбинацией клавиш Сtrl+1) и задаем нужный нам формат числа: на закладке Число идем в блок (все форматы) и выбираем там формат вида # ##0.

К сведению

Этот формат можно задать и в блоке Числовой, но чуть позже вам станет ясно, почему мы воспользовались блоком Все форматы.

 На закладке Вид — Макросы выбираем пункт Остановить запись.

Второй, более быстрый способ остановить запись макроса — нажать на появившийся в левом нижнем углу синий квадратик (рис. 2.).

Мы рекомендуем

Всегда обращайте внимание на этот квадратик: если он появился на панели, значит, сейчас идет запись всех ваших действий в макрос. Не забывайте вовремя останавливать запись макроса, чтобы потом его не пришлось переделывать

Проверяем, что макрос записан и работоспособен:

  •  в ячейку А2 вбиваем любое шестизначное число;
  •  запускаем макрос одним из двух способов: на закладке Вид — Макросы выбираем пункт Макросы или нажимаем комбинацию клавиш Alt+F8, находим в списке наш макрос и нажимаем кнопку Выполнить.

Рис. 2. Форматирование числа и остановка записи макроса

Итак, вы записали свой первый макрос! Примите поздравления. Теперь давайте познакомимся с личной книгой макросов и синтаксисом написания команд для макроса.

Создание графической кнопки на листе Excel

Данный способ доступен для любой из версий MS Excel и заключается он в том, что мы вынесем кнопку прямо на наш рабочий лист как графический объект. Для этого вам нужно:

  • В MS Excel 2003 и более старше переходите в меню «Вид», выбираете «Панель инструментов» и нажимаете кнопку «Формы».
  • В MS Excel 2007 и более новее вам нужно на вкладке «Разработчик» открыть выпадающее меню «Вставить» и выбрать объект «Кнопка».

После всего этого вы должны нарисовать кнопку на вашем листе при зажатой левой кнопке мыши. После окончания процесса рисования включится автоматически окошко, где вам нужно будет выбрать тот макрос, который обязан, выполнятся при нажатии на вашей кнопке.

Рекомендации по использованию макросов

Есть несколько рекомендаций, позволяющих значительно увеличить эффективность использования макросов в электронных таблицах:

  1. Перед тем, как записывать макрос с помощью рекордера, следует заранее продумать все свои действия, поскольку автоматизироваться будут все действия (в том числе, и ошибочные).
  2. Не стоит торопиться, поскольку паузы при записи макросов не учитываются. Вполне можно начать продумывать по ходу какие-то действия. А все записанные операции будут обработаны в один момент.
  3. Обязательно необходимо научиться использовать режим отладки макроса. Если возникают какие-то ошибки, он поможет обнаружить, в чем причина неполадки. На первых порах без ошибок не обойтись, потому что в реальной программе будет все не так идеально, как может показаться на первый взгляд.
  4. Перед использованием макросов, сделанных другими людьми, нужно настроить антивирусную программу на их обнаружение. Как правило, эта опция установлена по умолчанию.
  5. Если загружаются документы из сомнительных источников, следует выбрать опцию «Отключить макросы» при их открытии. И не рекомендуется менять настройки, которые выставлены по умолчанию в настройках безопасности Excel.
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector