Билл Джелен Трейси Сирстад Применение Vba и Макросов в Microsoft Excel Скачать
Макросы на VBA в Microsoft Excel. Уровень 1. Базовый
Воспользуйтесь специальным предложением! Этот курс дешевле на 25% в комплексных курсах:
Краткое описание
- 100% практика на примерах
- По окончании — удостоверение с включением в Федеральный реестр
- Сертификат РУНО о прохождении курса Microsoft Excel
- Формат обучения: дистанционный, корпоративный
В ДИСТАНЦИОННОМ ФОРМАТЕ ВАС ЖДЕТ:
- видеозаписи уроков с доступом 24/7 + возможность пересматривать видео
- практические задания, сам. задания + разбор решений
- неограниченный доступ ко всем учебным материалам (кроме видео)
- прямая связь с преподавателем по всем вопросам в рамках курса
НЕОБХОДИМО В ПРОЦЕССЕ ОБУЧЕНИЯ:
Дистанционное обучение в РУНО — это:
Очные и онлайн занятия в группе
Онлайн — в форме вебинара с обратной связью по расписанию, согласованному с заказчиком.
Данная программа проверена Департаментом образования и соответствует уровню профессионального стандарта «Бухгалтер».
Курс предназначен для тех, кто желает значительно поднять свой профессиональный уровень.
Как проходит обучение
Наша цель — передать качественные прикладные знания, применимые на практике, позволяющие в кратчайшие сроки повысить уровень профессионализма всей вашей команде!
Формы обучения для сотрудников компаний
— видеокурсы на нашей платформе с обратной связью и контролем знаний ваших работников. Возможность обучения в любое удобное для сотрудников время 24/7 без отрыва от производства.
— обучение сотрудников на территории заказчика. Занятия проводятся по расписанию, согласованному с заказчиком.
— обучение в форме вебинара с обратной связью в режиме онлайн. Занятия проводятся по расписанию, согласованному с заказчиком. Контроль знаний по завершении каждой темы.
— мы предоставим любой курс из нашего каталога в формате SCORM для обучения сотрудников на платформе Заказчика по предварительной заявке.
Узнать о корпоративном обучении подробнее
Оставьте заявку и мы рассчитаем стоимость обучения ваших сотрудников
Заявка на корпоративное обучение
По окончании вы будете уметь:
- создавать и применять пользовательские функции
- использовать автоматическую запись макроса в Excel
- программировать работу с переменными, условные переходы и циклы, диалоги для ввода значений и вывода сообщений
- программировать доступ и управление объектами Excel
- свободно читать и исправлять ошибки в коде VBA
- применять переменные, циклы, диалоги для ввода значений и вывода информации, пользовательские функции
- разбираться в редакторе VBA, проводить отладку кода и редактирование
Учебная программа
ПРОГРАММА КУРСА
Лекция №1: Автоматическая запись макроса
Лекция №2: Использование абсолютных и относительных ссылок
Лекция №3: Исправление недостатков программного кода
Сам. задание №1: Задание №1
Лекция №4: Создание проекта VBA
Лекция №5: Ввод и редактирование программного кода
Лекция №6: Запуск процедуры VBA
Лекция №7: Типы данных, переменные, константы
Лекция №8: Инструкция управления порядком выполнения команд
Сам. задание №2: Задание №2
Лекция №9: Понятие объектно-ориентированного программирования
Лекция №10: Модель объектов Excel
Лекция №11: Свойства и методы объекта Workbook
Лекция №12: Работа с диапазонами ячеек
Сам. задание №3: Задание №3
Решение задания №1: Задание №3
Лекция №13: Цикл со счетчиком For. Next
Лекция №14: Цикл с условием Do. Loop
Лекция №15: Цикл по объектам For Each. Next
Лекция №16: Примеры циклических операций с ячейками и листами
Сам. задание №4: Задание №4
Решение задания №2: Задание №4
Лекция №17: Создание процедуры Function
Лекция №18: Использование пользовательской функции
Лекция №19: Решение типичных задач автоматизации с помощью пользовательских функций
Сам. задание №5: Задание №5
Лекция №20: Типы ошибок
Лекция №21: Создание процедуры обработки ошибок Run-time
Лекция №22: Отладка и пошаговое тестирование
Сам. задание №6: Задание №6
Решение задания №3: Задание №6
Лекция №23: Настройка уровней безопасности
Лекция №24: Защита проекта VBA
Лекция №25: Создание пользовательских кнопок для запуска макросов
Лекция №26: Использование рабочих книг и листов
Сам. задание №7: Задание №7
Решатель VBA.
К написать код VBA Напишите код VBA Код VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи. читать далее нам нужно использовать три «функции решателя» в VBA, и это функции «SolverOk, SolverAdd и SolverSolve».
Синтаксическая форма | Комментарии по использованию |
Range (» D5 «) или [ D5 ] | Ячейка D5 текущего листа. Полная и краткая формы. Тут применим только синтаксис типа A1, но не R1C1. То есть такая конструкция Range (» R1C2 «) — вызовет ошибку, даже если в книге Excel включен режим формул R1C1. Разумеется после этой формы вы можете обратиться к свойствам соответствующей ячейки. Например, Range (» D5 «) .Interior.Color = RGB(0, 255, 0) . |
Cells(5, 4) или Cells(5, «D») | Ячейка D5 текущего листа через свойство Cells . 5 — строка (row), 4 — столбец (column). Допустимость второй формы мало кому известна. |
Cells(65540) | Ячейку D5 можно адресовать и через указание только одного параметра свойсва Cells . При этом нумерация идёт слева направо, потом сверху вниз. То есть сначала нумеруется вся строка (2^14=16384 колонок) и только потом идёт переход на следующую строку. То есть Cells(16385) вернёт вам ячейку A2 , а D5 будет Cells(65540) . Пока данный способ выглядит не очень удобным. |
18 трюков для Excel VBA 2018 год
Итог: Изучите 18 советов для экономии времени при написании макросов VBA для Excel или других приложений Office.
18 Советов для макросов VBA
В начале прошлого года я написал популярный пост о 17 советах для Excel на 2017 год. Я решил продолжить традицию в этом году и написать пост о советах, которые сэкономят ваше время при написании макросов VBA.
Здесь часть из моих любимых советов, а также некоторые любимые из блога на YouTube и моего курса VBA Pro.
Очевидно, есть множество советов для VBA. Поэтому, пожалуйста, оставьте комментарий внизу поста с вашими любимыми советами. Таким образом, мы все можем учиться друг у друга! 🙂
Скачать PDF
Вы можете скачать печатную версию статьи в формате PDF.
Содержание
- Alt + F11, чтобы открыть редактор VB
- Храните свои макросы в личной книге макросов
- Ctrl + Пробел для автозаполнения
- Intellisense для листов
- Использовать комментарии либерально
- F8, чтобы пройти через каждую строку кода
- Назначить макросы фигурам
- Автоматизируйте повторяющиеся задачи с помощью цикла For Next
- Используйте Option Explicit
- Таблицы Excel (ListObjects)
- Получить код с помощью Macro Recorder
- Непосредственное окно
- Назначить сочетание клавиш для макроса
- Убедитесь, что выбран диапазон
- Ctrl + Y, чтобы удалить строку кода
- Ctrl + I для быстрой информации
- Ctrl + J Открывает раскрывающийся список Intellisense
- Функции рабочего листа
# 1 — Alt + F11, чтобы открыть редактор VB
VB Editor — это приложение, которое мы используем для написания макросов и создания пользовательских форм. Его можно открыть, нажав кнопку Visual Basic на вкладке «Разработчик» в Excel.
Сочетание клавиш для открытия редактора VB в любой версии Excel для Windows — Alt + F11.
Если вы не видите вкладку «Разработчик» на ленте, щелкните изображение, чтобы узнать, как его включить:
Если вы используете клавиатуру ноутбука, вам нужно нажать и удерживать клавишу Fn, прежде чем нажимать F11. Функциональные клавиши на ноутбуках, как правило, являются многофункциональными клавишами и требуют нажатия клавиши Fn для активации функциональных клавиш (F1 – F12).
Некоторые ноутбуки имеют функцию Fn Lock, которая делает функциональные клавиши первичными, что означает, что вам не придется нажимать клавишу Fn при нажатии F1-F12.
Ознакомьтесь с моей статьей «Лучшие сочетания клавиш для Excel», чтобы узнать больше.
# 2 — Храните свои макросы в личной книге макросов
Мы также можем создавать собственные панели инструментов с кнопками для запуска наших макросов. Мне нравится думать о PMW как о нашем инструментальном поясе Excel, который может сэкономить нам время на выполнение задач, которые мы выполняем каждый день.
Например, у меня есть статья с макросом, который создает список уникальных значений на новом чистом листе. Мы можем сохранить этот макрос в нашем PMW и назначить его кнопке на ленте или ярлыке клавиатуры, а затем запустить его в любое время на любой открытой книге.
Ознакомьтесь с моей бесплатной серией видеороликов о том, как создать личную книгу макросов, чтобы узнать больше. В этой серии также есть видео о том, как добавить кнопки макросов на пользовательскую ленту.
Это одно из часто используемых мною сочетаний клавиш в VBA. Когда мы набираем код, Ctrl + Space открывает раскрывающееся меню Intellisense, которое содержит список подходящих объектов, свойств, методов, констант и переменных.
Чтобы использовать сочетание клавиш Ctrl + Space в VB Editor:
- Начните вводить строку кода, подобную ActiveCell.
- После ввода первых нескольких букв нажмите Ctrl + Пробел
- Вы увидите список всех слов VBA, которые начинаются с Act.
- Нажмите стрелки вверх / вниз, чтобы выбрать слово
- Затем нажмите Tab или Enter, чтобы завершить слово.
Эти преимущества могут значительно сэкономить время при отладке кода.
Обычно мы также видим раскрывающееся меню Intellisense после ввода точки (.) В редакторе VB.
Однако это работает не всегда. Одним из распространенных случаев является свойство Worksheets.
Если мы введем Worksheets («Лист1»). Мы НЕ видим меню Intellisense. Вы можете расстроиться и подумать, что Intellisense не работает.
Причина, по которой он не работает, заключается в том, что свойство Worksheets может содержать ссылку на один или несколько листов. В зависимости от ссылки, свойства и методы будут разными для каждого случая. Было бы замечательно, если бы Intellisense был достаточно умен, чтобы понять это, но это всего лишь одна из тех вещей, с которыми нам приходится жить …
Есть два способа обойти это и увидеть Intellisense для рабочих листов:
2. Сначала установите для рабочей таблицы переменную объекта Worksheets. Затем, когда мы введем имя переменной, за которым следует точка (ws.), Появится меню Intellisense.
Сначала установите для рабочей таблицы переменную объекта Worksheets. Затем, когда мы введем имя переменной, за которым следует точка (ws.), Появится меню Intellisense.
Мы можем добавить комментарии к нашему коду, которые помогут объяснить, что делает каждый раздел кода.
Чтобы создать комментарий в VBA, вы вводите апостроф в начале строки. Как только вы переместите текстовый курсор за линию, текст станет зеленым.
Зеленый текст позволяет легко различать комментарии при чтении кода. VBA полностью игнорирует строки комментариев, и вы можете добавить столько, сколько захотите.
Комментарии к коду несколько спорная тема. Некоторые разработчики считают, что правильно написанный код должен говорить сам за себя, и вам не нужно добавлять дополнительные комментарии. Я понимаю их точку зрения, но это не работает для меня по двум причинам.
Когда я возвращаюсь к своим собственным проектам спустя месяцы / годы, я не помню, что делает весь макрос. Комментарии похожи на заголовки в этом сообщении в блоге и позволяют легко просматривать макрос, чтобы найти нужный раздел. Они также быстро говорят нам, что делает каждый раздел.
Если вы собираетесь поделиться своим проектом VBA или в конечном итоге передать его кому-то другому для технического обслуживания, тогда им будет намного легче выучить ваш код, если вы добавите много комментариев. Я называю это «вежливым планированием вашего наследия». 🙂
№ 6 — F8, чтобы пройти через каждую строку кода
Сочетание клавиш для перехода по каждой строке кода — F8. Эквивалентом Mac для Step Into/Through является Cmd + Shift + I.
Это позволяет нам тестировать и отлаживать каждую строку кода в наших макросах. Мы также можем открыть Excel рядом с редактором VB (или на отдельном мониторе), чтобы увидеть действия, выполняемые в Excel при выполнении каждой строки.
Часто это может помочь вам быстро найти ошибку с помощью листа или диапазона.
- Нажмите внутри макроса, который вы хотите запустить. Вы можете нажать на любую строку кода. Макрос всегда будет начинаться сверху.
- Нажмите F8.
- Имя макроса будет выделено желтым цветом.
- Нажмите F8 еще раз, чтобы запустить эту строку и выделить следующую строку.
- Продолжайте нажимать F8, чтобы запустить каждую строку.
Важно отметить, что выделенная желтым строка еще не была выполнена. Она будет запущен, когда вы снова нажмете F8.
Листовые элементы управления для кнопок, запускающих макросы, выглядят немного устаревшими. К счастью, мы также можем использовать любую фигуру в Excel для запуска макроса. Формы можно раскрасить и отформатировать, чтобы они больше походили на современные кнопки, которые можно найти в Интернете и в мобильных приложениях.
- Вставьте фигуру на лист и отформатируйте ее по своему вкусу. Обычно это будет прямоугольная или круглая форма, содержащая текст.
- Щелкните правой кнопкой мыши форму и выберите «Назначить макрос …».
- Выберите макрос из списка и нажмите ОК. Макрос обычно будет тем, который хранится в той же книге, что и фигура.
- Нажмите на форму, выбрав ячейку на листе.
- При наведении курсора курсор изменится на указатель руки. Нажатие на форму запустит макрос.
Я рекомендую, чтобы окно «Да / Нет» появилось до того, как макрос действительно запустится. Это предотвращает любые случайные нажатия кнопок. Посмотрите мое видео о добавлении окна сообщения Да / Нет в ваши макросы. Это часть моей серии видеороликов о Персональной рабочей тетради.
# 8 — Автоматизируйте повторяющиеся задачи с помощью цикла For Next
Мы склонны выполнять одни и те же задачи снова и снова в Excel. Такие задачи, как: применение форматирования к нескольким диапазонам / листам, создание списка листов, копирование данных в каждую рабочую книгу, настройка фильтров для каждой сводной таблицы и т.д.
Циклы являются одним из самых мощных инструментов в VBA, которые позволяют нам автоматизировать эти задачи. Цикл будет проходить по каждому элементу в коллекции (например, рабочие листы в рабочей книге или ячейки в диапазоне) и выполнять любой код, который вам нравится, для каждого элемента.
Существует несколько различных типов циклов, но цикл For Next Loop является наиболее распространенным. Ознакомьтесь с моей углубленной статьей «For Next Loop» в VBA для более подробной информации об этой обязательной технике кодирования.
Это еще одна спорная тема, но я требую (вежливо прошу), чтобы все участники моего курса VBA Pro использовали Option Explicit.
Опция Explicit требует от нас объявить все переменные. Когда мы видим строки кода с инструкциями Dim в верхней части макроса, это объявляет переменную.
Мы в основном говорим VBA создать переменную в памяти для последующего использования во время выполнения кода. Затем мы можем установить значения или ссылки на объекты для этих переменных в макросе под оператором Dim.
Основное преимущество Option Explicit заключается в том, что он предотвращает опечатки и экономит время. Редактор VB выдаст сообщение «Ошибка компиляции: переменная не определена» при попытке запустить код, если переменная в коде не объявлена. Также будет выделена переменная, чтобы вы могли объявить ее или исправить опечатку.
Если у вас нет Option Explicit и неправильно написана переменная, код все равно будет работать и может привести к ошибкам в результатах. Если ваш макрос длинный, то может понадобиться много времени, чтобы найти эти опечатки. Доверьтесь мне. Там было сделано это!
Опция Explicit предотвращает эти ошибки и помогает вам оставаться в здравом уме. 🙂
Использование таблиц Excel в наших книгах дает ряд преимуществ. Они экономят время благодаря форматированию данных, автоматическому заполнению формул и отлично работают в качестве источника сводной таблицы.
Таблицы Excel также значительно упрощают написание кода VBA для динамических диапазонов данных. Это список или набор данных, в котором количество строк или столбцов постоянно меняется по мере получения новых / обновленных данных.
Например, следующая строка кода ссылается на ячейки в диапазоне A2: A15.
Это жестко заданный диапазон. Если вы добавляете новые данные внизу, вам придется вручную изменить код, чтобы включить новые строки.
Однако, если мы храним данные в таблице Excel и ссылаемся на столбец таблицы, нам не нужно об этом беспокоиться.
Преимущество в том, что код будет автоматически включать новые строки, добавленные в таблицу. Не требуется ручное обновление или обслуживание кода.
Мы также можем ссылаться на таблицы Excel с помощью объекта, свойств и методов ListObjects в VBA.
Определенно есть некоторые преимущества использования ListObjects, когда дело доходит до изменения структуры таблицы (добавление / удаление строк / столбцов) и свойств, а также циклического перемещения по таблице. Читайте статью моего хорошего друга Криса Ньюмана о ListObjects в VBA, в ней множество примеров.
# 11 — Получите код с помощью Macro Recorder
Macro Recorder — удивительная особенность Excel и VBA. Он создает код VBA при выполнении действий в Excel.
Например, после того, как мы включили макрос-рекордер, мы можем продолжать выполнять свою обычную работу в Excel, такую как написание формул или копирование и вставка данных. Макро-рекордер создаст весь код VBA для этих действий и сохранит его в модуле кода.
Макро-рекордер также имеет свои ограничения. Мы НЕ собираемся создавать код для циклов, если операторы, обработка ошибок, окна сообщений и т. Д. Нам нужно научиться писать код для реализации этих более продвинутых методов, которые позволяют нам полностью автоматизировать процессы и создавать приложения в Excel.
Immediate Window в редакторе VB позволяет нам запускать одну строку кода. Мы можем запустить действие (метод) над объектом или вернуть результат кода обратно в Immediate Window. Может быть, мы хотим определить, сколько рабочих листов в рабочей книге.
Введите ?Worksheets.Count и нажмите Enter. Результат будет отображен в строке ниже.
Immediate Window также является местом, в которое выводится метод Debug.Print.
Сочетание клавиш для открытия окна Immediate в редакторе VB — Ctrl + G
# 13 — Назначьте сочетание клавиш для макроса
Мы также можем назначить сочетания клавиш для запуска часто используемых макросов. Я рекомендую хранить эти макросы в вашей личной книге макросов.
- Нажмите кнопку «Макросы» на вкладке «Разработчик» или «Просмотр» на ленте.
- Выберите файл, содержащий макрос, в раскрывающемся списке «Макросы в».
- Выберите макрос из списка.
- Нажмите кнопку «Опции…».
- Введите букву в поле «Сочетание клавиш», которому вы хотите назначить макрос. Все ярлыки начнутся с Ctrl. Вы можете удерживать клавишу Shift при наборе буквы, чтобы создать комбинацию клавиш Ctrl + Shift. Обычно это рекомендуется, потому что большинство комбинаций клавиш Ctrl + уже имеют выделенные сочетания клавиш в Excel.
- Нажмите ОК и закройте окно макроса.
- Теперь вы можете нажать комбинацию клавиш для запуска назначенного макроса.
Иногда вам нужно убедиться, что у пользователя выбран диапазон (ячейки) до запуска макроса. Если у них выбрана форма (диаграмма, срез и т.д.), это может привести к ошибкам в вашем коде.
Например, у меня есть макрос, который удаляет пустые строки в выбранном диапазоне. Для правильной работы этого макроса пользователю необходимо сначала выбрать диапазон ячеек.
Функция TypeName возвращает тип данных или имя объекта для данной переменной или объекта. В этом случае он оценивает Selection и возвращает тип выбранного объекта. Если это не () диапазон, тогда оператор If верен.
Обычно вы хотите поместить это в начало макроса. Если диапазон НЕ выбран, появится окно сообщения (всплывающее), в котором пользователю будет предложено выбрать диапазон. Строка Exit Sub завершит макрос.
# 15 — Ctrl + Y, чтобы удалить строку кода
В редакторе VB Ctrl + Y удаляет строку кода, в которой находится текстовый курсор.
Это создает большую путаницу, поскольку Ctrl + Y обычно используется для команды «Повторить» практически во всех других приложениях, включая Excel!
Если вы посмотрите на меню «Правка» в редакторе VB, то увидите, что для «Вернуть» нет выделенного ярлыка. Мы можем использовать Alt, E, R в качестве альтернативного ярлыка для Redo.
Это всего лишь одна из тех странных причуд VBA, которые действительно приятно знать.
Это еще одна отличная комбинация клавиш, которую нужно знать. Ctrl + i отображает всплывающую подсказку, которую вы видите при написании или выполнении кода. Это позволяет вам видеть все параметры в свойстве, методе или функции.
- Поместите текстовый курсор в слово, для которого вы хотите отобразить всплывающую подсказку.
- Нажмите Ctrl + i.
- Появится всплывающая подсказка.
- Нажмите Escape, чтобы закрыть его или переместить курсор.
Если в строке выделена переменная, и вы хотите видеть информацию о параметре вместо значения / типа данных переменной, нажмите Ctrl + Shift + i, чтобы просмотреть информацию о параметре.
# 17 — Ctrl + J открывает раскрывающийся список IntelliSense
Сочетание клавиш Ctrl + J откроет раскрывающееся меню Intellisense, в котором отображается список объектов, свойств, методов, переменных и т.д.
Обычно я использую его, когда набираю частичную строку кода и заканчиваю ее точкой, например Range («A1»).
Затем я хочу вернуться к этой строке и увидеть выпадающий Intellisense. Нажатие Ctrl + J открывает меню. В противном случае вы должны удалить период и ввести его снова.
Мы также можем использовать Ctrl + J, чтобы выбрать другую переменную из списка. Если вы где-то использовали неправильное имя переменной или вам нужно его изменить, нажмите Ctrl + J, чтобы увидеть список имен переменных. Если вы добавите префикс к своим именам переменных (он же венгерская нотация), то другие переменные должны быть довольно близки в этом списке.
Тип WorksheetFunction. в макросе, чтобы увидеть список всех функций Excel, которые доступны в VBA.
На мой взгляд, это лучшее из обоих миров. Мы можем использовать возможности функций Excel в нашем коде VBA.
Всплывающая подсказка для функции показывает количество аргументов, но НЕ показывает имена аргументов. Поэтому обычно нам нужно набрать формулу в Excel, чтобы определить, что представляет собой каждый аргумент (если вы не запомнили его).
Функция рабочего листа, которую я чаще всего использую в VBA — это Match. Мы можем использовать Match для поиска значения и возврата номера строки или столбца ячейки, содержащей соответствующее значение. Иногда это может быть проще, чем с помощью метода Range.Find. Ознакомьтесь с моей статьей и видео о том, как найти последнюю использованную ячейку на листе, чтобы узнать больше о методе Range.Find.
Скачать PDF
Вы можете скачать печатную версию статьи в формате PDF.
Какой ваш любимый совет для VBA?
Надеюсь, вам понравился этот список и вы узнали что-то новое. Возможно, это вдохновило вас узнать больше о макросах и VBA.
Также мне интересно, какой ваш любимый трюк, который не был включен в эту статью. Пожалуйста, оставьте комментарий ниже и поделитесь своим. Здесь нет правильных или неправильных ответов, но это отличный способ учиться друг у друга.
[expert_bq id=»1570″]Предположим, что есть книга, содержащая списки на множестве листов, и нужно изменить имя каждого листа в соответствии с заголовком списка на этом листе. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Обычно это могло быть сложной задачей, состоящей из просмотра каждого листа, проверки наличия списка, копирования его имени, если оно есть, щелчка вкладки листа и вставки нового имени. Вместо выполнения всех действий вручную воспользуйтесь возможностями Excel VBA, чтобы переименовать листы автоматически.Лекция №10 Приложение VBA в MS Excel.
- видеозаписи уроков с доступом 24/7 + возможность пересматривать видео
- практические задания, сам. задания + разбор решений
- неограниченный доступ ко всем учебным материалам (кроме видео)
- прямая связь с преподавателем по всем вопросам в рамках курса
· Запись нескольких автоматизируемых действий, просмотр того, как записанный код работает с объектами, и последующее обращение к справочному руководству по объектной модели за дополнительными сведениями.