Разное [iMacros] Создание макросов и их применение в Excel. Написание макросов Excel (2017)

Тема в разделе "Разное", создана пользователем BoomInfo, 13 авг 2019.

  1. BoomInfo

    BoomInfo Администратор Команда форума Администратор

    Создание макросов и их применение в Excel. Написание макросов Excel (2017)
    makros_polza

    Вебинар 1. Минимум необходимой теории
    7 сентября (четверг) с 19:00 до 21:00 (МСК)

    Теоретический вебинар
    Что такое макросы? Как их писать?

    Наша задача научиться трём способам написания макросов:

    • с помощью макрорекордера (только как помощника)
    • используя чужой код (где брать и как изменять под себя)
    • сами с нуля (посвятим бОльшую часть времени)
    Редактор VBE
    Макросы пишут в редакторе Visual Basic Editor и наша задача научиться эффективно использовать его для решения своих задач. На вебинаре узнаем из каких окон состоит, как настроить под себя (какие панелии окно добавить, а какие лучше убрать).

    Объектная модель Excel

    90% макросов что-то делают с ячейками (Cells), диапазонами (Range), листами (WorkSheets) и excel-файлами (Workbooks), нам предстоит разобраться с иерархией этих объектов. Также узнаем их основные свойства и методы.

    Домашнее задание

    Пишем с нуля макросы, которые:

    • создаёт оглавление Excel-файла с большим количеством листов

    • записывает информацию о пользователе, который открывает файл

    Вебинар 2. Изменяем, копируем, удаляем через VBA
    11 сентября (понедельник) с 19:00 до 21:00 (МСК)
    Практический вебинар

    3 варианта копирования

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

    5 способов удаления

    Вы замечали, что вариантов удаления несколько:

    • удалить только значения (ClearContents),

    • очистить форматы (ClearFormats),

    • удалить комментарий (ClearComments),

    • удалить всё сразу (Clear),

    • да ещё и со смещением (Delete)
    Рассмотрим на примерах все способы.

    Определяем последнюю заполненную ячейку

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

    • свойство Range.End (когда в столбце все строки заполнены значениями)

    • метод Range.Find (самую последнюю строку/столбец)

    • метод SpecialCells (самую-самую последнюю (даже удалённую) строку/столбец)
    Домашнее задание

    Пишем с нуля макросы, которые:

    • создаёт оглавление Excel-файла с большим количеством листов

    • записывает информацию о пользователе, который открывает файл

    Вебинар 3. Циклы - короли автоматизации
    14 сентября (четверг) с 19:00 до 21:00 (МСК)
    Практический вебинар

    Что такое циклы? Почему они короли?

    Макросы должны уметь делать работу за нас. Мы напишем код, а макрос пусть +100500 раз повторит все наши действия.

    Если Вы уже в теме макросов, то вот какие типы циклом рассмотрим:

    • For ... next (цикл со счётчиком)

    • Do ... Loop (с условиями While и Until)

    • For each ... (по объектам коллекций WorkSheets, Сells и др.)
    К примеру, Вам надо заполнить данными 150 договоров по шаблону. Вот мы и запишем пару строк кода как заполнить 1 договор, а циклы повторят процедуру 150 раз. Делая руками, мы бы потратили 2 дня, а макрос за 2 минуты выполнит эту работу.

    Основы работы с переменными

    Если циклы - это короли, то переменные - их верные помощники. Имя листа, файла, путь сохранения и т.д. - постоянно меняются. Определим для подобных параметров переменные и напишем макрос, который будет использовать универсальный код и выполняться в 2-3 раза быстрее.

    Домашнее задание

    Пишем с нуля макросы, которые:

    • заполнит 138 договоров ГПХ и отправит их каждому сотруднику на почту

    • из выгрузки продаж за 9 мес. сформирует excel-файлы по зонам ответственности каждого менеджера и директора региона и сохранит в нужную папку


    Вебинар 4. Учимся общаться с пользователем
    18 сентября (понедельник) с 19:00 до 21:00 (МСК)

    Практический вебинар

    Скажи мне: Кто ты?

    До искуственного интеллекта нам будет ещё далеко, но вот запросить информацию от пользователя (ответить Да/Нет, ввести число, выделить диапазон ячеек, для которых будет выполнен макрос и т.д.) мы научимся. Возможно, Вы уже слышали про:

    • MsgBox (информационные сообщения),

    • InputBox (получение данных от пользователя)

    • Application.InputBox (продвинутый вариант InputBox)
    Мы на практических примерах разберёмся во всех тонкостях.

    Работа с файловой системой

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

    • создавать и удалять папки (нужно, чтобы макрос смог сохранять результат в нужное место),

    • выводить FileDialog (решили собрать данные с нескольких excel-файлов, вот и надо попросить пользователя указать какие конкретно) и т.д.
    Ничего сложного в этой теме нет, пугаться не стоит.

    Домашнее задание

    Пишем с нуля макросы, которые:

    • создаёт список файлов в папке (покажу два принципиально разных варианта решения задачи)

    • сбор данных из нескольких файлов Excel в один (все из одной папки, по списку файлов, по тем, что выберет пользователь)
    Вебинар 5. Функции VBA. + Создание собственных
    21 сентября (четверг) с 19:00 до 21:00 (МСК)

    Практический вебинар

    Макросы на VBA - это Вам не ВПР писать. Тут думать надо!

    Формулы в VBA можно писать несколькими способами, каждый имеет свои особенности, вот нам и надо будет разобраться с:

    • текстом (UCase, LCase, StrConv, Left, Mid, Len, InStr, RevStr, Trim и др.)

    • датой и временем (Date, Time, Now, WeekDay, DateDiff, DateAdd и др.)

    • числами (Abs, Fix, Int, Round, Rnd, Sgn, Sin, Cos, Tan, Atn и др.)

    • преобразование данных (IsNumeric, IsDate, IsArray, IsObject, IsEmpty и др.)

    • форматами (Format, FormatCurrency/DateTime/Number/Percent)
    Function - то тоже макрос, но необычный

    Узнаем про отдельный вид макросов - Функции (Function). Расскажу, про принципиальные отличия от обычных, научу писать свои собственные формулы (их нет ни в одной версии Excel):

    • СуммаЯчеекПоЦвету (находит сумму ячеек с определённым цветом заливки)

    • ЛатиницаВРусские и РусскиеВЛатиницу (преобразует буквы)

    • ЧислоИзЯчейки (извлекает из ячейки с текстом число)
    Также поделюсь собственными готовыми функциями, которые не надо писать самим, а просто взяли и используете (+можно под свои задачи легко изменить).

    WorkSheetFunction - ещё один вариант написания формул VBA

    Особый вид функций, который работает быстрее обычных, но имеет свои особенности. К примеру формулу ВПР в ячейку B1 можно написать так:

    • Range(B1).FormulaLocal = =ВПР(A1$D$1:$F$520)

    • Range(B1) = Application.VLookup(Сells(1,1)Range($D$1:$F$5)20)

    • Range(B1) = Application.WorksheetFunction.Vlookup(сells(1
    Скачать: Оформить VIP Подписку и открыть доступ к этой и другим темам.
    Скрытый текст:
    **Скрытый текст: Скрытый текст могут просматривать только пользователи следующих групп: VIP, Администратор, Модератор.**
     
    Dobryak нравится это.