Сайт о телевидении

Сайт о телевидении

» » Интересные макросы для excel. Примеры макросов Excel

Интересные макросы для excel. Примеры макросов Excel

VBA считается стандартным языком написания сценариев для приложений Microsoft, и в настоящее время он входит в состав всех приложений Office и даже приложений других компаний. Следовательно, овладев VBA для Excel, вы сможете сразу перейти к созданию макросов для других программных продуктов Microsoft. Более того, вы сможете создавать полноценные программные продукты, одновременно использующие функции самых разных приложений.

Как включить макросы в Excel

По умолчанию, вкладка, отвечающая за управление и навигацию макросов в Excel, скрыта. Чтобы активировать данную опцию перейдите по вкладке Файл в группу Параметры. В появившемся диалоговом окне Параметры Excel, перейдите по вкладке Настройка ленты, в правом поле со списком ставим маркер напротив вкладки Разработчик. Данные действия актуальны для версий Excel 2010 и старше.

На ленте появиться новая вкладка Разработчик с элементами управления автоматизации Excel.

Написание макросов в Excel

Во вкладке Разработчик в группе Код, нажмите кнопку Запись макроса. Появиться диалоговое окно Запись макроса, которая запрашивает некоторую информацию о будущем записываемом коде. Если вы впервые создаете макрос, можете просто нажать кнопку ОК. С данного момента Excel будет фиксировать каждое действие пользователя в модуле VBA, будь то ввод данных, форматирование или создание диаграмм. Чтобы остановить запись макроса, нажмите кнопку Остановить запись, которая находится в той же группе Код.

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

Теперь вы можете посмотреть список всех созданных макросов, нажав на кнопку Макрос, находящуюся в группе Код. В появившемся диалоговом окне вы можете дать более описательные имена своим кодам или задать сочетания клавиш, которые бы запускали тот или иной макрос. Альтернативным вариантом запуска данного окна является нажатие клавиш Alt + F8.

Редактирование макросов

Поздравляю! Вы написали свой первый макрос. Логичным будет проверить теперь, какой же код сгенерировал нам Excel. Сгенерированный код написан на языке VBA (Visual Basic for Applications). Чтобы увидеть его, нужно открыть Редактор VB (VBE), который запускается нажатием клавиш Alt + F11 или кнопкой Visual Basic на вкладке Разработчик.

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

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

Для просмотра кода, щелкните по ветке Modules в окне проектов и дважды щелкните по появившейся ветке Module 1 . Редактор откроет окно с кодом, как изображено на картинке.

Здесь можно редактировать сгенерированный код, который был записан при работе в Excel. К примеру, вам требуется заполнить определенный столбец значениями от 1 до 10. У вас уже есть первые три шага, которые вводят значения 1, 2 и 3 в первые три ячейки столбца А. Нам необходимо дописать оставшиеся семь шагов.

Если вы посмотрите на приведенный выше код, вы увидите, что макрос определенным образом структурирован. Сначала приложение перемещает курсор на ячейку с помощью команды Range("A1").Select, затем редактирует его содержимое с помощью ActiveCell.FormulaR1C1 = "1". Таким образом, для оставшихся шагов мы можем повторить эти действия, меняя адрес ячейки и значение, которое вы хотите записать в эту ячейку. Например, чтобы задать ячейке A4 значение 4, вы должны написать:

Range("A4" ).Select
ActiveCell.FormulaR1C1 = "4"

И повторить аналогичные шаги для оставшихся значений.

После того, как вы закончите редактирование, сохраните книгу. Запустить макрос вы сможете нажатием кнопки F5, либо, вернувшись в рабочую книгу Excel, перейти по вкладке Разработчик в группу Код -> Макросы и выбрать из списка, интересующий вас макрос.

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

Увеличение скорости выполнения макросов Excel

Пока все хорошо. Давайте разберем пару хитростей, которые помогут ускорить выполнение макроса. Рассмотрим в качестве примера фрагмент кода, приведенный выше. Современные компьютеры отработают рассматриваемый код так быстро, что вы даже не заметите этого. Но что если вам необходимо выполнить операцию 50000 раз. Это займет какое-то время. Если макрос, написанный вами, исчисляется сотнями строк, ускорить выполнение кода можно путем обрезки части процессов, который не используется во время исполнения макроса.

Использование команды Application.ScreenUpdating

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

1
2
3
4
5
6
7
8
9
10

Sub Макрос1()

Range("A1" ).Select

Range("A2" ).Select

Range("A3" ).Select


End Sub

Команда Application.ScreenUpdating говорит Excel, чтобы он прекратил выводить пересчитанные данные на экран, а выдал готовые значения в конце выполнения кода.

Использование команды Application. Calculation

Вторая хитрость заключается в отключении автоматических вычислений. Давайте я поясню. Каждый раз, когда пользователь или процесс обновляет ячейку, Excel пытается пересчитать все зависимые от нее ячейки. Так скажем, если ячейка, которую пытается обновить макрос, влияет на 10000 остальных ячеек, Excel будет пытаться пересчитать их все до того, как закончится выполнение кода. Соответственно, если существует целый ряд влияющих ячеек, пересчет может значительно замедлить выполнение кода. Чтобы этого не происходило, вы можете установить команду Application. Calculation в начале кода, которая переключит пересчет формул в ручной режим, а затем вернуть автоматическое вычисление в конце макроса.

1
2
3
4
5
6
7
8
9
10
11
12

Sub Макрос1()
Application.ScreenUpdating = False

Range("A1" ).Select
ActiveCell.FormulaR1C1 = "1"
Range("A2" ).Select
ActiveCell.FormulaR1C1 = "2"
Range("A3" ).Select
ActiveCell.FormulaR1C1 = "3"

Application.ScreenUpdating = True
End Sub

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

Избежание выбора ячеек и диапазонов

В режиме автоматической записи макросов, вы можете заметить, что Excel очень часто использует команду выбора ячеек, например, Range(«A1»).Select. В нашем примере, мы использовали данную команду несколько раз, чтобы выбрать ячейку и изменить ее значение. Вы можете избежать этого просто указав адрес ячейки и задав ей необходимое значение (Макрос записал движение курсора от одной ячейки к другой, следовательно, вставил эти шаги. Однако они не являются необходимыми). Так что, более эффективный код будет выглядеть следующим образом.

1
2
3
4
5
6
7
8
9
10
11

Sub Макрос1()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Range("A1" ).Value = 1
Range("A2" ).Value = 2
Range("A3" ).Value = 3
Range("A4" ).Value = 4
Range("A5" ).Value = 5
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

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

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

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

Макросы программы Microsoft Excel позволяют значительно ускорить работу с документами в этом табличном редакторе. Это достигается путем автоматизации повторяющихся действий, записанных в специальный код. Давайте разберем, как создать макросы в программе Excel, и как их можно отредактировать.

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

  • автоматически;
  • вручную.

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

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

Автоматическая запись макросов

Прежде, чем начать автоматическую запись макросов, нужно .

Открывается окно настройки записи макроса. Тут можно указать любое имя макроса, если установленное по умолчанию вас не устраивает. Главное, чтобы имя это начиналось с буквы, а не с цифры. Также, в названии не должно быть пробелов. Мы оставили название по умолчанию – «Макрос1».

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

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

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

Когда все настройки выполнены, жмем на кнопку «OK».

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

Для примера, запишем простейшее арифметическое действие: сложение содержимого трёх ячеек (=C4+C5+C6).

После этого, жмем на кнопку «Остановить запись». Эта кнопка преобразовалась из кнопки «Запись макроса», после включения записи.

Запуск макроса

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

После этого, открывается окно со списком записанных макросов. Ищем макрос, который мы записали, выделяем его, и жмем на кнопку «Выполнить».

Можно поступить ещё проще, и не вызывать даже окно выбора макросов. Мы же помним, что записали сочетание «горячих клавиш» для быстрого вызова макроса. В нашем случае, это Ctrl+М. Набираем данную комбинацию на клавиатуре, после чего макрос запускается.

Как видим, макрос выполнил в точности все те действия, которые были записаны ранее.

Редактирование макроса

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

Открывается Microsoft Visual Basic (VBE) – среда, где происходит редактирование макросов.

Запись каждого макроса начинается с команды Sub, а заканчивается командой End Sub. Сразу же после команды Sub указывается имя макроса. Оператор «Range(«…»).Select» указывает выбор ячейки. Например, при команде «Range(«C4»).Select» выбирается ячейка C4. Оператор «ActiveCell.FormulaR1C1» используется для записи действий в формулах, и для других расчетов.

Попытаемся немного изменить макрос. Для этого, в макрос допишем выражение:

Range(«C3»).Select
ActiveCell.FormulaR1C1 = «11»

Выражение «ActiveCell.FormulaR1C1 = «=R[-3]C+R[-2]C+R[-1]C»» заменим на «ActiveCell.FormulaR1C1 = «= R[-4]C+R[-3]C+R[-2]C+R[-1]C»».

Закрываем редактор, и запускаем макрос, как и в прошлый раз. Как видим, вследствие введенных нами изменений была добавлена ещё одна ячейка с данными. Она также была включена в расчет общей суммы.

В случае, если макрос слишком большой, его выполнение может занять значительное время. Но, путем внесения ручного изменения в код, мы можем ускорить процесс. Добавляем команду «Application.ScreenUpdating = False». Она позволит сохранить вычислительные мощности, а значит ускорить работу. Это достигается путем отказа от обновления экрана во время выполнения вычислительных действий. Чтобы возобновить обновление после выполнения макроса, в его конце пишем команду «Application.ScreenUpdating = True»

Добавим также команду «Application.Calculation = xlCalculationManual» вначале кода, а в конце кода дописываем «Application.Calculation = xlCalculationAutomatic». Этим мы вначале макроса отключаем автоматический пересчет результата после каждого изменения ячеек, а в конце макроса – включаем. Таким образом, Excel подсчитает результат только один раз, а не будет его постоянно пересчитывать, чем сэкономит время.

Написание кода макроса с нуля

Продвинутые пользователи могут выполнять не только редактирование и оптимизацию записанных макросов, но и записывать код макросов с нуля. Для того, чтобы приступить к этому, нужно нажать на кнопку «Visual Basic», которая расположена в самом начале ленты разработчика.

После этого, открывается знакомое нам окно редактора VBE.

Программист пишет там код макроса вручную.

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

Пособие содержит макросы на следующие темы:
Запуск макроса с поиском ячейки.
Запуск макроса при открытии книги.
Запуск макроса при вводе в ячейку «2».
Запуск макроса при нажатии «Ентер».
Добавить в панель свою вкладку «Надстройки» (Формат ячейки).
Работа с файлами (т. е. обмен данными с ТХТ, RTF, XLS и т. д.).
Проверка наличия файла по указанному пути.
Поиск нужного файла.
Автоматизация удаления файлов.
Произвольный текст в строке состояния.
Восстановление строки состояния.
Бегущая строка в строке состояния.

Быстрое изменение заголовка окна.
Изменение заголовка окна (со скрытием названия файла).
Возврат к первоначальному заголовку.
Что открыто в данный момент.
Работа с текстовыми файлами.
Запись и чтение текстового файла.
Обработка нескольких текстовых файлов.
Определение конца строки текстового файла.
Копирование из текстового файла в эксель.

Копирование содержимого в текстовый файл.
Экспорт данных в txt.
Экспорт данных в html.
Импорт данных, для которых нужно более 256 столбцов.
Создание резервных копий ценных файлов.
Подсчет количества открытий файла.
Вывод пути к файлу в активную ячейку.
Копирование содержимого файла RTF в эксель.
Копирование данных из закрытой книги.
Извлечение данных из закрытого файла.
Поиск слова в файлах.
Создание текстового файла и ввод текста в файл.
Создание текстового файла и ввод текста (определение конца файла).
Создание документов Word на основе таблицы Excel.
Команды создания и удаления каталогов.
Получение текущего каталога.
Смена каталога.

Посмотреть все файлы в каталоге.
Посмотреть все файлы в каталоге.
Рабочая область Microsoft Excel.
Рабочая книга.
Количество имен рабочей книги.
Защита рабочей книги.
Запрет печати книги.
Открытие книги (или текстовых файлов).
Открытие книги и добавление в ячейку А1 текста.
Сколько книг открыто.
Закрытие всех книг.
Закрытие рабочей книги только при выполнении условия.
Сохранение рабочей книги с именем, представляющим собой текущую дату.
Сохранена ли рабочая книга.
Создать книгу с одним листом.
Создать книгу.
Удаление ненужных имен.
Быстрое размножение рабочей книги.
Сортировка листов.
Поиск максимального значения на всех листах книги.
Рабочий лист.
Проверка наличия защиты рабочего листа.
Список отсортированных листов.
Создать новый лист.
Создать новый лист.
Удаление листов в зависимости от даты.
Копирование листа в книге.
Копирование листа в новую книгу (создается).
Перемещение листа в книге.
Перемещение нескольких листов в новую книгу.
Заменить существующий файл.
«Перелистывание» книги.
Вставка колонтитула с именем книги, листа и текущей датой.
Существует ли лист.
Существует ли лист.
Вывод количества листов в активной книге.
Вывод количества листов в активной книге в виде гиперссылок.
Вывод имен активных листов по очереди.
Вывод имени и номеров листов текущей книги.
Сделать лист невидимым.
Сколько страниц на всех листах?
Ячейка и диапазон (столбцы и строки).
Копирование строк на другой лист.
Копирование столбцов на другой лист.
Подсчет количества ячеек, содержащих указанные значения.
Подсчет количества ячеек в диапазоне, содержащих указанные значения.
Подсчет количества видимых ячеек в диапазоне.
Определение количества ячеек в диапазоне и суммы их значений.
Подсчет количества ячеек.
Автоматический пересчет данных таблицы при изменении ее значений.
Ввод данных в ячейки.
Ввод данных с использованием формул.
Последовательный ввод данных.
Ввод текстоввых данных в ячейки.
Вывод в ячейки названия книги, листа и количества листов.
Удаление пустых строк.
Удаление пустых строк.
Удаление пустых строк.
Удаление строки по условию.
Удаление скрытых строк.
Удаление используемых скрытых строк или строк с нулевой высотой.
Удаление дубликатов по маске.

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

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

Поиск с выделением найденных данных.
Поиск по условию в диапазоне.
Поиск последней непустой ячейки диапазона.
Поиск последней непустой ячейки столбца.
Поиск последней непустой ячейки строки.
Поиск ячейки синего цвета в диапазоне.
Поиск отрицательного значения в диапазоне и выделения синим цветом.
Поиск наличия значения в столбце.
Поиск совпадений в диапазоне.
Поиск ячейки в диапазоне.
Поиск ячейки в диапазоне.
Поиск приближенного значения в диапазоне.
Поиск начала и окончания диапазона, содержащего данные.
Поиск начала данных.
Автоматическая замена значений.
Быстрое заполнение диапазона (массив).
Заполнение через интервал(массив).
Заполнение указанного диапазона(массив).
Заполнение диапазона(массив).
Расчет суммы первых значений диапазона.
Размещение в ячейке электронных часов.
«Будильник».
Оформление верхней и нижней границ диапазона.
Адрес активной ячейки.
Координаты активной ячейки.
Формула активной ячейки.
Получение из ячейки формулы.
Тип данных ячейки.
Вывод адреса конца диапазона.
Получение информации о выделенном диапазоне.
Взять слово с 13 символа в ячейке.
Создание изменяемого списка (таблица).
Проверка на пустое значение.
Пересечение ячеек.
Умножение выделенного диапазона на.
Одновременное умножение всех данных диапазона.
Деление диапазона на.
Возведение каждой ячейки диапазона в квадрат.
Суммирование данных только видимых ячеек.
Сумма ячеек с числовыми значениями.
При суммировании — курсор внутри диапазона.

Начисление процентов в зависимости от суммы.
Начисление процентов в зависимости от суммы.
Сводный пример расчета комиссионного вознаграждения.
Движение по диапазону.
Сдвиг от выделенной ячейки.
Перебор ячеек вниз по колонне.
Создание заливки диапазона.
Подбор параметра ячейки.
Разбиение диапазона.
Объединение данных диапазона.
Объединение данных диапазона.
Узнать максимальную колонку или строку.
Ограничение возможных значений диапазона.
Тестирование скорости чтения и записи диапазонов.
Открыть MsgBox при выборе ячейки.
Скрытие строки.
Скрытие нескольких строк.
Скрытие столбца.
Скрытие нескольких столбцов.
Скрытие строки по имени ячейки.
Скрытие нескольких строк по адресам ячеек.
Скрытие столбца по имени ячейки.
Скрытие нескольких столбцов по адресам ячеек.
Мигание ячейки.
Работа с примечаниями.
Вывод на экран всех примечаний рабочего листа.
Функция извлечения комментария.
Список примечаний защищенных листов.

Перечень примечаний в отдельном списке.
Перечень примечаний в отдельном списке.

Подсчет количества примечаний.
Подсчет примечаний.
Выделение ячеек с примечаниями.
Отображение всех примечаний.
Изменение цвета примечаний.
Добавление примечаний.
Добавление примечаний в диапазон по условию.
Перенос комментария в ячейку и обратно.

Перенос значений из ячейки в комментарий.
Пользовательские вкладки на ленте.
Дополнение панели инструментов.
Добавление кнопки на панель инструментов.
Панель с одной кнопкой.
Панель с двумя кнопками.
Создание панели справа.

Создание пользовательского меню (вариант 1).
Создание пользовательского меню (вариант 2).
Создание пользовательского меню (вариант 3).
Создание пользовательского меню (вариант 4).
Создание пользовательского меню (вариант 5).
Создание пользовательского меню (вариант 6).
Создание списка пунктов главного меню Excel.
Создание списка пунктов контекстных меню.
Отображение панели инструментов при определенном условии.
Скрытие и отображение панелей инструментов.
Создать подсказку к моим кнопкам.
Создание меню на основе данных рабочего листа.
Создание контекстного меню.
Блокировка контекстного меню.
Добавление команды в меню Сервис.
Добавление команды в меню Вид.
Создание панели со списком.
Мультфильм с помощником в главной роли.
Дополнение помощника текстом, заголовком, кнопкой и значком.
Новые параметры помощника.
Использование помощника для выбора цвета заливки.
ДИАЛОГОВЫЕ ОКНА.
Функция INPUTBOX (через ввод значения).
Вызов предварительного просмотра.
Настройка ввода данных в диалоговом окне.

Открытие диалогового окна (Открыть файл).
Открытие диалогового окна (Печать).
Другие диалоговые окна.
Вызов броузера из Экселя.
Диалоговое окно ввода данных.
Диалоговое окно настройки шрифта.
Значения по умолчанию.
Форматирование текста. Таблицы. ГРАНИЦЫ И ЗАЛИВКА.
Вывод списка доступных шрифтов.
Выбор из текста всех чисел.
Прописная буква только в начале текста.
Подсчет количества повторов искомого текста.
Выделение из текста произвольного элемента.
Отображение текста «задом наперед».
Англоязычный текст — заглавными буквами.
Запуск таблицы символов из Excel.
информация о пользователе, компьютере, принтере и т. д.
Получить имя пользователя.
Вывод разрешения монитора.
Получение информации об используемом принтере.
Просмотр информации о дисках компьютера.
ЮЗЕРФОРМЫ.
ДИАГРАММЫ.
Построение диаграммы с помощью макроса.
Сохранение диаграммы в отдельном файле.
Построение и удаление диаграммы нажатием одной кнопки.
Вывод списка диаграмм в отдельном окне.
Применение случайной цветовой палитры.
Эффект прозрачности диаграммы.
Построение диаграммы на основе данных нескольких рабочих листов.
Создание подписей к данным диаграммы.
РАЗНЫЕ ПРОГРАММЫ.
Программа для составления кроссвордов.
Создать обложку DVD.
Игра «Минное поле».
Игра «Угадай животное».
Расчет на основании ячеек определенного цвета.
ДРУГИЕ ФУНКЦИИ И МАКРОСЫ.
Вызов функциональных клавиш.
Расчет среднего арифметического значения.
Перевод чисел в «деньги».
Поиск ближайшего понедельника.
Подсчет количества полных лет.
Расчет средневзвешенного значения.
Преобразование номера месяца в его название.
Использование относительных ссылок.
Преобразование таблицы Excel в HTML-формат.
Генератор случайных чисел.
Случайные числа — на основании диапазона.
Применение функции без ввода ее в ячейку.
Подсчет именованных объектов.
Включение автофильтра с помощью макроса.
Создание бегущей строки.
Создание бегущей картинки.
Вращающиеся автофигуры.
Вызов таблицы цветов.
Создание калькулятора.
Склонение фамилии, имени и отчества.
ДАТА И ВРЕМЯ.
Вывод даты и времени.
Вывод даты и времени.
Получение системной даты.
Извлечение даты и часов.
Функция ДатаПолная.Используемая версия MS Office не указана.

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

. .

В предыдущих статьях вы видели, как Excel может управлять другими приложениями Microsoft, такими как Word и Outlook. Но одновременно с этим другие приложения также могут быть использованы для управления Excel. Например, вы написали макрос для Word или Access, который создает таблицу Excel, заполняет ее данными, а затем сохраняет ее. Excel не обязательно должен при этом […]

. .

Вы можете использовать эту технологию для управления Microsoft Outlook и отправлять электронные сообщения прямо из вашего листа таблицы или копировать записи вашей записной книги. Конечно же, особенности Excel таковы, что но электронной почте будет отправлена таблица, но этот метод позволяет вам отправлять только часть таблицы. Для того чтобы этот код работал, вам необходимо иметь установленный […]

. .

Этот метод может оказаться очень полезным, например, если у вас есть стандартный документ с таблицами, заполненными данными макросами из таблиц Excel. Вы можете запустить макрос, и данные будут перенесены в таблицы в документе Word. Недавно у меня была задача по написанию программы по заполнению отчета по SLA (Service Level Agreement — уровень сервисных соглашений). Отчет […]

. .

Для автоматизации работы приложений часто используются макросы. Любой макрос — это последовательность действий, записанная под определенным именем. Если при работе с Microsoft Excel возникает необходимость несколько раз выполнить одну и ту же последовательность операций (например, сложное форматирование текущей ячейки или добавление новой строки с заполнением некоторых ее ячеек формулами), то можно записать эти действия, а […]

Работа с книгами

Макрос 1. Создание новой рабочей книги с нуля
Макроc 2. Сохранение книги при изменении определенной ячейки/диапазона
Макрос 3. Сохранение рабочей книги перед закрытием
Макрос 4. Защита рабочего листа в книге перед закрытием
Макрос 5. Снятие защиты с листа при открытии Excel-файла
Макрос 6. Открыть книгу на нужном листе
Макрос 7. Открытие конкретной книги, определенной пользователем
Макрос 8. Определяем, открыта ли книга
Макрос 9. Определяем, существует ли книга в папке
Макрос 10. Обновляем все связи в открытых книгах
Макрос 11. Закрываем сразу все книги
Макрос 12. Открыть все рабочие книги в папке
Макрос 13. Распечатать все книги в папке
Макрос 14. Не даем закрыть книгу до тех пор, пока не заполнит ячейку
Макрос 15. Создаем резервную копию текущей книги с сегодняшней датой

Работа с листами

Макрос 16. Добавляем новый рабочий лист и присваиваем имя
Макрос 17. Удалить все листы, кроме активного
Макрос 18. Скрыть все, кроме активного рабочего листа
Макрос 19. Отобразить все листы книги
Макрос 20. Перемещение рабочих листов
Макрос 21. Сортировка листов по названию
Макрос 22. Группа листы по Цвету ярлычка
Макрос 23. Скопировать лист в новую книгу
Макрос 24. Создать новую рабочую книгу для каждого листа
Макрос 25. Печать листов
Макрос 26. Защитить все листы
Макрос 27. Снять защиту со всех листов
Макрос 28. Создание оглавления
Макрос 29. Изменение масштаба изображения рабочего листа с помощью двойного щелчка
Макрос 30. Выделить столбец активной строки

Выделение и изменение диапазонов

Макрос 31. Выбор и форматирование диапазона
Макрос 32. Создание и выбор именованных диапазонов
Макрос 33. Перебор с помощью ряда клеток
Макрос 34. Выбор и форматирование диапазонов
Макрос 35. Вставка пустых строк в диапазоне
Макрос 36. Отобразить все скрытые строки и столбцы
Макрос 37. Удаление пустых строк
Макрос 38. Удаление пустых столбцов
Макрос 39. Выбор и форматирование всех формул в рабочем журнале
Макрос 40. Найдите и выберите первую пустую строку или столбец
Макрос 41. Применить дополнительный цвет заливки
Макрос 42. Отсортировать диапазоны по двойному щелчку
Макрос 43. Ограничение диапазона прокрутки в той или иной области
Макрос 44. Автоматически задать область печати листа

Работа с данными

Макрос 45. Копирование и вставка диапазона
Макрос 46. Преобразование всех формул в диапазоне в значения
Макрос 47. Преобразуем текстовых значений в числовые
Макрос 48. Преобразование тире в минус
Макрос 49. Удаляем лишние пробелы из всех ячеек в диапазоне
Макрос 50. Отсекаем слева 5 знаков в каждой ячейки диапазона
Макрос 51. Добавляем в ячейку недостающие нули
Макрос 52. Заменить пустые ячейку нулём
Макрос 53. Добавление текста в начало или конец ячейки
Макрос 54. Создание макроса преобразования данных
Макрос 55. Очистка данных (непечатаемые символы)
Макрос 56. Выделим дубликаты в диапазоне данных
Макрос 57. Скрываем повторяющиеся строки
Макрос 58. Выборочно скрываем стрелки автофильтра
Макрос 59. Копируем отфильтрованные строки в новую книгу
Макрос 60. Создание нового листа для каждого элемента в Автофильтре
Макрос 61. Показать отфильтрованные столбцы в строке состояния

Работа со сводными таблицами

Макрос 62: Создание обратной совместимости сводной таблицы
Макрос 63. Обновление всех сводных таблиц книги
Макрос 64. Создание «описи» всех сводной таблицы книги
Макрос 65. Создаем все сводные таблицы, используя тот же кэш данных
Макрос 66. Скрываем все промежуточные итоги в сводной таблице
Макрос 67. Изменяем названия данных всех полей сводной
Макрос 68. Принудительное суммирование для всех данных сводной
Макрос 69. Применить числовой формат для всех элементов данных
Макрос 70. Сортировка полей сводной в алфавитном порядке
Макрос 71. Применить пользовательскую сортировку к элементам данных
Макрос 72: Ставим защиту на сводную таблицу
Макрос 73. Применять ограничения сводного поля
Макрос 74. Автоматическое удаление листов с детализацией сводной
Макрос 75. Печать сводной таблицы для каждого элемента фильтра
Макрос 76. Создание нового файла для каждого элемента фильтра
Макрос 77. Готовим диапазон данных для сводной таблицы

Работа с диаграммами и графиками

Макрос 78. Изменение размера диаграмм на рабочем листе
Макрос 79. Привязываем график к определенному диапазону
Макрос 80. Создание набора бессвязных диаграмм
Макрос 81. Печать всех диаграмм на рабочем листе
Макрос 82. Отмечаем лучшее и худшее значение на
Макрос 83. Одинаковые цвета для значений на разных диаграммах
Макрос 84. Соответствие цвета диаграмм цвету диапазонов

Отправка писем из Excel

Макрос 85. Отправка активной книги почтой (вложение)
Макрос 86. Отправка диапазон значений в качестве вложения
Макрос 87. Отправка одного листа в качестве вложения
Макрос 88. Отправить письмо с ссылкой на наши файлы
Макрос 89: Рассылка писем с добавлением адресов в наш список контактов
Макрос 90. Сохранение всех вложений в отдельной папке
Макрос 91. Сохранение определенных вложений в папку

Взаимодействие с другими приложениями Office

Макрос 92. Запуск запроса доступа из Excel



Макрос 96. Сжатие базы данных Access из Excel
Макрос 97. Отправка данных Excel в документ в формате Word
Макрос 98. Делаем Слияние с документом в формате Word
Макрос 99. Отправка данных Excel в презентации PowerPoint
Макрос 100. Отправка Excel диаграмм в PowerPoint презентации
Макрос 101. Преобразование рабочей книги в презентации PowerPoint

Взаимодействие с другими приложениями Office
научимся работать с Word, Access и PowerPoint
Макрос 92. Запуск запроса доступа из Excel
Макрос 93. Запуск макроса Access из Excel
Макрос 94. Открытие отчета Access из Excel
Макрос 95. Открытие формы доступа из Excel