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

Создание кнопки для запуска макросов в панели инструментов

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

  1. Кнопка в панели инструментов в MS Excel 2003 и более старше. Вам нужно в меню «Сервис» в пункте «Настройки» перейти на доступную вкладку «Команды» и в окне «Категории» выбрать команду «Настраиваемая кнопка» обозначена жёлтым колобком или смайликом, кому как понятней или удобней. Вытащите эту кнопку на свою панель задач и, нажав правую кнопку мыши по кнопке, вызовите ее контекстное меню, в котором вы сможете отредактировать под свои задачи кнопку, указав для нее новую иконку, имя и назначив нужный макрос.
  2. Кнопка в панели вашего быстрого доступа в MS Excel 2007 и более новее. Вам нужно клацнуть правой кнопкой мышки на панели быстрого доступа, которое находится в верхнем левом углу окна MS Excel и в открывшемся контекстном меню выбираете пункт «Настройка панели быстрого доступа». В диалоговом окне настройки вы выбираете категорию «Макросы» и с помощью кнопки «Добавить» вы переносите выбранный со списка макрос в другую половинку окна для дальнейшего закрепления этой команды на вашей панели быстрого доступа.

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

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

Когда все готово, приступаем к записи.

  1. Перейдите на вкладку «Разработчик». Кликните по кнопке «Запись макроса», которая расположена на ленте в блоке инструментов «Код».

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

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

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

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

  1. Кликаем в том же блоке инструментов «Код» по кнопке «Макросы» или жмем сочетание клавиш Alt + F8.

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

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

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

  1. Снова щелкаем на кнопку «Макросы». В открывшемся окне выбираем нужный и кликаем по кнопке «Изменить».

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

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

Range(“C3”).Select ActiveCell.FormulaR1C1 = “11”
Выражение ActiveCell.FormulaR1C1 = “=RC+RC+RC” заменим на ActiveCell.FormulaR1C1 = “= RC+RC+RC+RC” .

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

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

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

  1. Чтобы приступить к этому, нужно нажать на кнопку «Visual Basic», которая расположена в самом начале ленты разработчика.

Откроется окно редактора VBE, которое уже быдло продемонстрировано в предыдущем варианте.

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

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

Как добавить готовый макрос в рабочую книгу

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

  1. Изначально необходимо найти желаемую команду в интернете. После этого выделить полученный код.
  2. Запустить рабочую книгу, активировать комбинацию клавиш Alt+F
  3. Перед пользователем должно открыться окно VBA.

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

  1. По левую сторону необходимо найти окно “Project – VBA Project”. Из появившегося списка нужно выбрать рабочую книгу.
  2. Открыть меню “Insert”, активировать функцию “Module”.
  3. После этого в левом окне появится новая папка под названием “Moduels”.
  4. Открыть новый объект внутри созданной паки, в свободное окно вставить скопированный код по комбинации клавиш “Ctrl+V”.

Добавление кода и его сохранение для дальнейшего использования алгоритма действий

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

Отображение в Microsoft Office 2007 и 2010

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

Office 2007

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

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

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

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

В новом открывшемся окне переключатель нужно установить на последней строке «Включить все макросы». Система, конечно, предупредит, что такие действия могут позволить осуществлять запуск и опасных программ. Однако если пользователь уверен в своих действиях, на компьютере установлена надёжная противовирусная защита, то опасаться такого предупреждения нет смысла.

Также включить и отключить макрокоманды в Excel 2007 можно более простым способом, ничем не отличающимся от включения их в Excel 2010.

Office 2010

Включить и отключить макрокоманды в Excel 2010 можно, воспользовавшись меню «Разработчик». Однако данное меню не всегда активно в табличном редакторе 2010, особенно в момент первого запуска офисного приложения, поэтому первоначально следует совершить определённые действия, чтобы создать данное меню на панели инструментов. Специалисты рекомендуют выносить на панель инструментов подменю, к которым приходится достаточно часто обращаться в процессе выполнения различных задач.

Для этого необходимо кликнуть по меню «Файл», далее перейти в «Параметры», а затем в «Настройку ленты». С правой стороны будет находиться список, среди предложенных вариантов пользователь может выбрать те меню, в которых он наиболее часто будет нуждаться, а потому желает, чтобы они постоянно были отображены на панели инструментов. В частности, в этот момент необходимо установить переключатель на строке «Разработчик» и нажать «Ок». После этого данное меню отобразится в верхней части Excel 2010.

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

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

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

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

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

Итак, макрокоманды в табличных редакторах 2003, 2007 и 2010 способны восприниматься большинством пользователей в качестве лучших помощников, позволяющих рутинную работу автоматизировать и повысить её результативность.

Вердикт

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

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

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

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

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

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

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

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

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

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

Пример 2

Эта процедура перечисляет все значения числовой последовательности Фибоначчи, вплоть до 1000. В этом примере приводятся следующие возможности макросов Excel:

  1. Объявление переменных.
  2. Цикл Do While.
  3. Ссылки на ячейки текущего листа Excel.
  4. Условный оператор.

‘ Подпрограмма для перечисления всех значений последовательности Fibonacci для всех значений ниже тысячи

Sub Fibonacci()

Dim i As Integer   ‘ счетчик для позиции в серии значений

Dim iFib As Integer   ‘ сохраняет текущее значение в серии

Dim iFib_Next As Integer   ‘ сохраняет следующее значение в серии

Dim iStep As Integer   ‘ хранит размер следующего шага

‘ Инициализация переменных variables i и iFib_Next

i = 1

iFib_Next = 0

‘ Цикл Do While, который исполняется до тех пор, пока номер

‘ числа в последовательности Фибоначчи меньше 1000.

Do While iFib_Next < 1000

If i = 1 Then

‘ Специальный случай для первой записи в серии

iStep = 1

iFib = 0

Else

‘ Сохраняется следующий размер шага, перед перезаписью

‘ текущей записи в серии

iStep = iFib

iFib = iFib_Next

End If

‘ Печать текущего значения последовательности Фибоначчи для столбца А 

‘ текущего листа

Cells(i, 1).Value = iFib

‘ Вычисление следующего значения последовательности и увеличение

‘ маркера позиции на 1

iFib_Next = iFib + iStep

i = i + 1

Loop

End Sub

Создание макросов в редакторе Visual Basic

Для ввода команд и формирования программы, т.е. создания макроса необходимо открыть специальное окно – редактор программ на VBA, встроенный в Microsoft Excel.

  • В старых версиях (Excel 2003 и старше) для этого идем в меню Сервис – Макрос – Редактор Visual Basic (Toos – Macro – Visual Basic Editor).
  • В новых версиях (Excel 2007 и новее) для этого нужно сначала отобразить вкладку Разработчик (Developer). Выбираем Файл – Параметры – Настройка ленты (File – Options – Customize Ribbon) и включаем в правой части окна флажок Разработчик (Developer). Теперь на появившейся вкладке нам будут доступны основные инструменты для работы с макросами, в том числе и нужная нам кнопка Редактор Visual Basic (Visual Basic Editor) :

К сожалению, интерфейс редактора VBA и файлы справки не переводятся компанией Microsoft на русский язык, поэтому с английскими командами в меню и окнах придется смириться:

Макросы (т.е. наборы команд на языке VBA) хранятся в программных модулях. В любой книге Excel мы можем создать любое количество программных модулей и разместить там наши макросы. Один модуль может содержать любое количество макросов. Доступ ко всем модулям осуществляется с помощью окна Project Explorer в левом верхнем углу редактора (если его не видно, нажмите CTRL+R). Программные модули бывают нескольких типов для разных ситуаций:

  • Обычные модули – используются в большинстве случаев, когда речь идет о макросах. Для создания такого модуля выберите в меню Insert – Module. В появившееся окно нового пустого модуля можно вводить команды на VBA, набирая их с клавиатуры или копируя их из другого модуля, с этого сайта или еще откуда нибудь:
  • Модуль Эта книга – также виден в левом верхнем углу редактора Visual Basic в окне, которое называется Project Explorer. В этот модуль обычно записываются макросы, которые должны выполнятся при наступлении каких-либо событий в книге (открытие или сохранение книги, печать файла и т.п.):
  • Модуль листа – доступен через Project Explorer и через контекстное меню листа, т.е. правой кнопкой мыши по ярлычку листа – команда Исходный текст (View Source). Сюда записывают макросы, которые должны выполняться при наступлении определенных событий на листе (изменение данных в ячейках, пересчет листа, копирование или удаление листа и т.д.)

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

Давайте разберем приведенный выше в качестве примера макрос Zamena:

  • Любой макрос должен начинаться с оператора Sub, за которым идет имя макроса и список аргументов (входных значений) в скобках. Если аргументов нет, то скобки надо оставить пустыми.
  • Любой макрос должен заканчиваться оператором End Sub.
  • Все, что находится между Sub и End Sub – тело макроса, т.е. команды, которые будут выполняться при запуске макроса. В данном случае макрос выделяет ячейку заливает выделенных диапазон (Selection) желтым цветом (код = 6) и затем проходит в цикле по всем ячейкам, заменяя формулы на значения. В конце выводится окно сообщения (MsgBox).

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

Абсолютная и относительная запись макроса

Вы уже знаете про абсолютные и относительные ссылки в Excel? Если вы используете абсолютную ссылку для записи макроса, код VBA всегда будет ссылаться на те же ячейки, которые вы использовали. Например, если вы выберете ячейку A2 и введете текст “Excel”, то каждый раз – независимо от того, где вы находитесь на листе и независимо от того, какая ячейка выбрана, ваш код будет вводить текст “Excel” в ячейку A2.

Если вы используете параметр относительной ссылки для записи макроса, VBA не будет привязываться к конкретному адресу ячейки. В этом случае программа будет “двигаться” относительно активной ячейки. Например, предположим, что вы уже выбрали ячейку A1, и вы начинаете запись макроса в режиме относительной ссылки. Теперь вы выбираете ячейку A2, вводите текст Excel и нажмите клавишу Enter. Теперь, если вы запустите этот макрос, он не вернется в ячейку A2, вместо этого он будет перемещаться относительно активной ячейки. Например, если выбрана ячейка B3, она переместится на B4, запишет текст “Excel” и затем перейдет к ячейке K5.

Теперь давайте запишем макрос в режиме относительных ссылок:

  1. Выберите ячейку A1.
  2. Перейдите на вкладку “Разработчик”.
  3. В группе “Код” нажмите кнопку “Относительные ссылки”. Он будет подсвечиваться, указывая, что он включен.
  4. Нажмите кнопку “Запись макроса”.
  5. В диалоговом окне “Запись макроса” введите имя для своего макроса. Например, имя “ОтносительныеСсылки”.
  6. В опции “Сохранить в” выберите “Эта книга”.
  7. Нажмите “ОК”.
  8. Выберите ячейку A2.
  9. Введите текст “Excel” (или другой как вам нравится).
  10. Нажмите клавишу Enter. Курсор переместиться в ячейку A3.
  11. Нажмите кнопку “Остановить запись” на вкладке “Разработчик”.

Макрос в режиме относительных ссылок будет сохранен.

Теперь сделайте следующее.

  1. Выберите любую ячейку (кроме A1).
  2. Перейдите на вкладку “Разработчик”.
  3. В группе “Код” нажмите кнопку “Макросы”.
  4. В диалоговом окне “Макрос” кликните на сохраненный макрос “ОтносительныеСсылки”.
  5. Нажмите кнопку “Выполнить”.

Как вы заметите, макрос записал текст “Excel” не в ячейки A2. Это произошло, потому что вы записали макрос в режиме относительной ссылки. Таким образом, курсор перемещается относительно активной ячейки. Например, если вы сделаете это, когда выбрана ячейка B3, она войдет в текст Excel – ячейка B4 и в конечном итоге выберет ячейку B5.

Вот код, который записал макрорекодер:

 Sub ОтносительныеСсылки() ' ' ОтносительныеСсылки Макрос ' ' ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "Excel" ActiveCell.Offset(1, 0).Range("A1").Select End Sub 

Обратите внимание, что в коде нет ссылок на ячейки B3 или B4. Макрос использует Activecell для ссылки на текущую ячейку и смещение относительно этой ячейки

Не обращайте внимание на часть кода Range(«A1»). Это один из тех случаев, когда макрорекодер добавляет ненужный код, который не имеет никакой цели и может быть удален

Без него код будет работать отлично.

Понятие макроса

Термин «Макрос» слышало множество людей. Нередко при запуске таблицы появляется предупреждение: “Этот документ использует макросы, способные навредить данному компьютеру, поэтому они отключены с целью защиты от вредоносных действий”.

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

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

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

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

Макросы можно запускать по нажатию определенной комбинации клавиш. Например, если нажать Ctrl+J, можно запустить подпрограмму.

Интересный факт: известная программа бухгалтерского учета 1C изначально очень напоминала Excel, но потом ее функционал расширился до текущего.

Если же нужно давать компьютеру сложные инструкции, можно воспользоваться редактором Visual Basic, примеры кода в котором мы и рассмотрим немного позже.

Синтаксис макроса

Макросы — это команды, написанные на языке VBA (Visual Basic for Applications). И синтаксис кода макроса не отличается от записи кода в Visual Basic.

Любой макрос имеет следующий вид:

Sub Имя_Макроса_Без_Пробелов()

‘ комментарии к макросу — они нужны для вас, VBA не воспринимает такие строки как команды

команды, написанные на языке VBA

End Sub

3 обязательных блока макроса:

1. Начало макроса. Всегда начинается с команды Sub. Далее идет имя макроса — оно может быть на русском языке, но не должно содержать пробелы и специальные символы.

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

2. Блок команд. В нашем примере он состоит из одной строки: Selection.NumberFormat = «#,##0»

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

3. Конец макроса. Всегда обозначается как End Sub.

Есть и один необязательный блок — это комментарии, которые вы можете оставлять в любом месте внутри кода макроса, поставив перед началом комментариев знак апострофа ‘. Например, вы можете описать, что именно делает тот или иной макрос.

Обратите внимание!

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

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

Например, информационная система выдает отчет «Бюджет на месяц» без выделения групповых значений цветом или шрифтом.

Нам необходимо:

  •  выделить групповые строки полужирным шрифтом;
  •  отформатировать на печать — расположить отчет по центру листа, задать масштаб 75 %, вывести в колонтитулы название отчета (рис. 4).

Рис. 4. Изменения после написания макроса

Запишем алгоритм форматирования отчета в макрос.

Нажимаем кнопку записи макроса и выполняем следующие действия:

  •  Даем макросу имя Форматирование_БДР, в блоке описания записываем, что будет делать этот макрос (например, Выделяет жирным курсивом итоги, форматирует на печать). Жмем Ок.
  •  Выделяем столбцы А:С, ставим автофильтр — на закладке Данные находим кнопку Фильтр.
  •  По столбцу КОД задаем условие не содержит точку: Текстовые фильтры — Не содержит и в поле текста ставим символ точки без пробелов (рис. 5).

Рис. 5. Использование автофильтра по столбцу «КОД»

  •  Выделяем отфильтрованный диапазон и задаем ему полужирный шрифт.
  •  Снимаем автофильтр (повторное нажатие на закладке Данные кнопки Фильтр).
  •  Заходим в меню форматирования на печать (Кнопка Файл/Office — Печать — Предварительный просмотр — Параметры страницы) и задаем там три параметра:

1) на вкладке Страница задаем масштаб 75 %;

2) на вкладке Поля отмечаем пункт Горизонтально в блоке Центрировать на странице;

3) на вкладке Колонтитулы создаем верхний колонтитул с текстом Бюджет на январь.

  •  Выходим из параметров страницы.
  •  Заканчиваем запись макроса.
  •  Нажимаем Alt+F11 и смотрим, что получилось (см. рис. 4).

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

8) Изменение цвета внутри и шрифтов

Этот макрос изменяет цвета внутри и у источника ячеек в соответствии с буквой ячеек.

Sub Colorir_interior_letra () Для N = 1 до диапазона («O65536»). End (xlUp) .Row

Выберите диапазон шкалы («O» и N) Случай “А” Диапазон («O» и N) .Interior.ColorIndex = 3 Диапазон («O» и N) .Font.ColorIndex = 1

Случай “B” Диапазон («O» и N) .Interior.ColorIndex = 4 Диапазон («O» и N) .Font.ColorIndex = 2

Случай “C” Диапазон («O» и N) .Interior.ColorIndex = 5 Диапазон («O» и N) .Font.ColorIndex = 3

Случай “D” Диапазон («O» и N) .Interior.ColorIndex = 7 Диапазон («O» и N) .Font.ColorIndex = 12

Case Else Диапазон («O» и N) .Interior.ColorIndex = 6 Диапазон («O» и N) .Font.ColorIndex = 4 End Select

Как запустить макрос на основе значения ячейки в Excel?

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

Например, если значение в ячейке A1 находится в диапазоне от 10 до 50, запустите macro1, а если значение больше 50, запустите macro2. Чтобы решить эту задачу в Excel, примените следующий код VBA.

1. Щелкните правой кнопкой мыши вкладку листа, на которой вы хотите выполнить макрос на основе значения ячейки, а затем выберите Просмотреть код из контекстного меню, а в открывшемся Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код в пустой модуль:

Код VBA: запуск макроса, если значение ячейки больше или меньше:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Target) And Target.Address = "$A$1" Then
        Select Case Target.Value
        Case 10 To 50: Macro1
        Case Is > 50: Macro2
        End Select
    End If
End Sub

Внимание: В приведенном выше коде:

A1 это ячейка, которая содержит конкретное значение, на основе которого вы хотите запустить макрос;

Случай с 10 по 50: Macro1: это означает, что если значение находится между 10 и 50, запустить Macro1;

Случай> 50: Macro2: это означает, что если значение больше 50, запустить Macro2.

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

2. Затем сохраните и закройте это окно кода, теперь, когда значение, которое вы вводите в ячейке A10, составляет от 50 до 1, будет запущен макрос Macro1, если введенное значение больше 50, выполняется макрос Macro2.

Запустить или запустить макрос, если значение ячейки равно определенному тексту с кодом VBA

Если вы хотите запускать макрос на основе определенного текста в ячейке, например, для запуска макроса 1, если введен текст «Удалить», и запуска макроса 2, если введен текст «Вставить». Следующий код может оказать вам услугу.

1. Щелкните правой кнопкой мыши лист, на котором вы хотите выполнить макрос на основе значения ячейки, а затем выберите Просмотреть код из контекстного меню, а в открывшемся Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код в пустой модуль:

Код VBA: запустить макрос, если значение ячейки больше или меньше:

Sub worksheet_change(ByVal target As Range)
Set target = Range("A1")
If target.Value = "Delete" Then
 Call Macro1
End If
If target.Value = "Insert" Then
Call Macro2
End If
End Sub 

Внимание: В приведенном выше коде «Удалить(Основной ключ) и Вставить»- это тексты ячеек, на основе которых вы хотите запускать макросы, и Macro1 и Macro2 макросы, которые вы хотите выполнить на основе текста. Пожалуйста, измените их по своему усмотрению

2. Затем сохраните этот код и закройте окно, теперь при вводе текста «Удалить» в ячейку A1 срабатывает макрос 1, если вводится текст «Вставить», выполняется макрос 2.

Добавить комментарий

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

Adblock
detector