Создание макросов в программе Microsoft Excel. Макросы

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

Рассмотрим два примера:

1. Ищем и используем команду

Например, нам необходима команда, которая бы вставляла в выделенные ячейки цифру "1". Запускаем поисковик, набираем поисковую фразу, получаем результаты, начинаем просматривать, находим код примерно в таком виде:

Sub Вставка1() Dim q As Object On Error Resume Next Set q = Cells For Each q In Selection q = 1 Next q End Sub

Выделяем данный код (без нумерации строк, начиная со слова Sub ) и нажимаем Ctrl+C . Переходим в свою рабочую книгу MS Excel и нажимаем сочетание клавиш Alt+F11 , у вас откроется окно редактора VBA:

В левом окне "Project - VBA Project" выбираем (щелкаем мышкой) нашу рабочую книгу, в которую необходимо вставить макрос, например, "VBAProject (Книга2)":

В пункте меню "Insert" выбираем "Module":

В левом окне "Project - VBA Project" у вас должна появиться новая папка "Modules" и в ней новый объект "Module1":

Переходим курсором в правое "Большое" поле для ввода и нажимаем Ctrl+V , скопированный макрос вставиться в модуль:

Макросы в MS Excel можно вставлять в следующие места:

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

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

Чтобы вставить код в Рабочий лист, в левом окне редактора VBA выберите соответствующий лист, щелкните по нему два раза левой кнопкой мышки, переместите курсор в правое поле ввода и вставьте код.

Для вставки кода в Книгу, выберите "ЭтаКнига":


Давайте потренируемся. Вставьте код опубликованный ниже в "Лист1".

Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo a If Target = 2 Then VBA.MsgBox ("Ячейка " & Target.Address & " = 2") End If a: Exit Sub End Sub

Данный макрос выводит информационное сообщение если вы введете в любую ячейку листа "2".

Вернитесь в рабочую книгу, перейдите в "Лист1" и введите в ячейку "А1" цифру "2" и нажмите Enter , после чего у вас должно появиться следующее сообщение:

Если вы видите это сообщение, то вы все сделали правильно. Если нет, то вы вставили код куда-то не туда, повторите попытку.

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

2. Ищем и используем функцию

Находим в интернете VBA код функции, которая подсчитывает, например, количество слов в ячейке:

Public Function КолСловВЯчейке(Ячейка As Range) Dim q As Variant Application.Volatile q = VBA.Split(Application.WorksheetFunction.Trim(Ячейка.Value), " ") КолСловВЯчейке = UBound(q) + 1 End Function

Копируем код, нажимаем сочетание клавиш Alt+F11 , откроется редактор VBA:


Добавляем новый модуль в свою книгу и в этот модуль вставляем скопированный код:


Закрываем редактор VBA и переходим в свою рабочую книгу. Создаем новый лист (необязательно) в ячейку A1 вводим текст "мама мыла раму". Встаем в ячейку, в которой хотим получить результат (количество слов), в меню "Формулы" нажимаем кнопку "Вставить функцию":

В открывшемся окне "Вставка функции" в поле "Категория" выбираем "Определенные пользователем"

В списке доступных функций выбираем "КолСловВЯчейке", нажимаем "ОК":

Вводим необходимые аргументы и нажимаем "ОК":

Получаем результат:

Важно:

Если вы не сохраните книгу, в которую вставили макрос как "Книгу с поддержкой макросов", все модули с макросами удаляться и вам придется, потом, повторно проделывать всю эту работу.

Если при вставке макроса в модуль у вас вместо некоторого текста стоят красные знаки "???????? "

Это значит, что у вас проблема с кодировкой, которая наблюдается с копированием Кириллического текста из некоторых браузеров. Чтобы победить эту проблему, попробуйте вставить скопированный код в пустой лист MS Excel, как "Текст в кодировке Unicode". Для этого перейдите в книгу MS Excel, выберите или создайте пустой лист, встаньте в ячейку "A1" и нажмите сочетания клавишCtrl+Alt+V . Должно будет появиться меню "Специальной вставки", выберите пункт "Текст в кодировке Unicode" и нажмите "OK".

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

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

Если вы не видите в редакторе VBA окна "Project - VBA Project", перейдите во вкладку меню "View" и в списке выберите пункт "Project Explorer" или нажмите сочетание клавиш Ctrl+R :

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, которые помогут автоматизировать наиболее часто повторяющиеся задачи.

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

Что представляют собой Excel-макросы?

Макросы используются не только в таблицах, но и во всем Microsoft Office. Они представляют собой созданный при помощи Visual Basic for Applications код. Если вы частично знакомы с web-программированием, то можно провести аналогию с Javascript. Excel-макросы делают примерно то же самое, что и Javascript с данными формата HTML.

Небольшая часть того, что может сделать макрос в офисных приложениях:

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

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

Чем могут быть опасны макросы в Excel?

Повредить файлы на ПК;
. похитить конфиденциальные данные.

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

Еще один способ работы вредоносного макроса - посредничество для внедрения угроз в систему. В этом случае он является своеобразными воротами для внедрения и генерирования троянского ПО. Им уже будет управлять не видоизменённый макрос, а сама операционная система, а следовательно, угроза становится более масштабной. Не всегда получается вылечить такие вирусы, иногда приходится полностью менять Windows OC или жесткий диск ПК (в зависимости от задач, которые ставил хакер при написании кода).

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

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

Как записать макросы в Excel

Наиболее простой способ создания макроса - программирование прямо в Excel. Для этого вам понадобится таблица с внесенными данными и немного знаний, чтобы включить запись такого кода в программе.

Создание начинается с меню «Вид». В нем нужно выбрать позицию «Макросы» и команду «Записать Макрос». Далее нужно задать имя без пробелов, например, «Format» (если код будет отвечать за изменение формата текста или ячеек).

После чего все ваши действия будут автоматически записаны и преобразованы в код макроса. Снизу в документе появится кнопка с небольшим квадратом («Стоп»), нажатием на которую вы сможете остановить запись. Так можно автоматически записать в Excel макросы, примеры которых вы сможете разбирать дальше в процессе обучения.

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

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

При последующем обращении к документу, чтобы включить в Excel макросы, необходимо сначала разрешить их использование во всплывающей верхней строке. Затем нужно импортировать данные, которые будут редактироваться макросом из обычной таблицы формата CSV. По окончании импорта необходимо снова обратиться к меню «Вид», выбрать там «Макросы» и найти в списке имя сделанного вами кода. В конце нажмите кнопку «Выполнить». После чего вы увидите, как программа по заданному вами ранее алгоритму выполняет расчеты и форматирование документа.

Как увидеть программный код макроса?

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

Для этого нужно последовательно выполнить команды:

Развернуть вкладку «Вид»;
. открыть «Макросы»;
. выбрать имя необходимого макроса;
. вызывать окно с его кодом при помощи кнопки «Изменить».

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

Как начать работу макроса по клику на ячейку

Допустим, вы хотите, чтобы при выделении ячейки А1 запускалась работа макроса. Чтобы выбранная в Excel ячейка макрос запускала, необходимо в первый модуль добавить программный код:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$1" Then: Call module1
End Sub

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

Где можно научиться работать с макросами

Есть несколько способов научиться созданию более сложных макросов. Они должны отличаться логикой и четко настроенной последовательностью действий. Создаются такие макросы только путем написания кода VBA вручную. Для создания сложных макросов вам потребуется затратить некоторое время на изучения тонкостей языка программирования Visual Basik.

Сейчас для изучения всех возможностей Excel создано немало специальных курсов, которые идут по несколько недель, но вам потребуется для их посещения выезжать в учебный центр или присутствовать на вебинарах (что не всегда удобно из-за разницы во времени). Но более действенный и простой способ научиться создавать макросы в Excel - самоучитель с примерами. Вы можете заниматься по нему в любое удобное для вас время, а пошаговые учебники помогут разрабатывать разные варианты: от самых простых кодов до наиболее сложных. Microsoft Excel - это универсальный табличный редактор, при помощи которого можно решить множество сложных задач.

Примеры

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

Sub Макрос1()

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

Макрос 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

Пособие содержит макросы на следующие темы:
Запуск макроса с поиском ячейки.
Запуск макроса при открытии книги.
Запуск макроса при вводе в ячейку «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 не указана.