Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Еще…Меньше
Чтобы изменить макрос, прикрепленный к книге Microsoft Excel, используйте редактор Visual Basic.
Важно: Для работы с макросами необходимо включить вкладку Разработчик. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».
Изменение параметров безопасности макросов
Чтобы редактировать и запускать макрос, необходимо установить уровень безопасности, чтобы временно включить все макрос.
-
На вкладке Разработчик в группе Код выберите элемент Безопасность макросов.
-
В группе Параметры макросов выберите переключатель Включить все макросы (не рекомендуется, возможен запуск опасной программы), а затем дважды нажмите кнопку ОК.
Предупреждение: Чтобы предотвратить запуск потенциально опасного кода, мы рекомендуем вернуться к любому параметру, который отключает все макросы после завершения работы с макросами.
Редактирование макроса
-
На вкладке Разработчик в группе Код нажмите кнопку Макросы.
-
В поле Имя макроса выберите макрос, который вы хотите изменить.
-
и нажмите кнопку Изменить. Откроется редактор Visual Basic.
Совет: Чтобы получить справку во время работы в редакторе Visual Basic, в меню Справка выберите Microsoft Visual Basic Справкаили нажмите F1.
Нужна дополнительная помощь?
Содержание
- Редактирование макроса
- Vba excel макрос изменения макроса
- Как создавать, изменять и запускать макросы в Excel
- Что такое макрос и для чего он применяется
- Как создать новый макрос в Excel
- Способ 1. Автоматический запуск макроса
- Запуск выполнения макроса
- Корректировка макроса
- Способ 2. Создание макроса в ручном режиме
- Как изменять существующие макросы
- Заключение
Редактирование макроса
Узнайте, как изменить макрос в специальном текстовом редакторе Visual Basic. Visual Basic — это язык программирования, используемый для записи макросов.
Откройте вкладку «Разработчик».
На вкладке «Разработчик» на ленте находятся все команды макроса.
Чтобы она была отображаться на ленте, щелкните «Файл» > «Параметры> Настроитьленту», выберите «Разработчик» и нажмите кнопку «ОК».
На вкладке «Разработчик» в группе «Код» есть кнопка «Запись макроса» и некоторые другие полезные кнопки.
Создание макроса с помощью Visual Basic
Щелкните «Разработчик» > Visual Basic.
При необходимости в меню Insert (Вставка) выберите команду Module (Модуль).
Примечание: Модули будут созданы автоматически для всех листов книги.
В окне кода модуля введите или скопируйте нужный текст макроса.
Для запуска макроса из окна модуля нажмите клавишу F5.
Когда макрос будет создан, в меню File (Файл) выберите команду Close and Return to Microsoft Excel (Закрыть и вернуться в Microsoft Excel).
На вкладке «Разработчик» в группе «Код» нажмите кнопку «Макрос».
В поле «Имя макроса» выберите макрос, который вы хотите изменить.
и нажмите кнопку Изменить. Откроется редактор Visual Basic.
Источник
Vba excel макрос изменения макроса
В этой статье я расскажу, как можно редактировать макрос, записанный с помощью команды «Запись макроса. «.
Файлы для скачивания:
Файл | Описание | Размер файла: | Скачивания |
---|---|---|---|
Пример | 11 Кб | 1521 |
Давайте возьмем файл с предварительно записанным макросом или запишем новый макрос, как это сделать описано в статье «Как записать макрос не зная языка VBA? «.
Напомню, мы записывали макрос, который копирует данные из диапазона ячеек E2:E6, и вставляет их как значения в ячейки G2:G6. Допустим, у нас увеличился диапазон копирования и теперь нам нужно копировать данные из диапазона E2:E10, не переписывать же из-за этого макрос. Нам будет достаточно его отредактировать.
Итак, давайте откроем наш файл с записанным макросом, нажмем сочетания клавиш Alt+F8, должно будет открыться диалоговое окно макрос:
В данном окне мы выбираем наш макрос «Макрос1» и нажимаем кнопку «Изменить», откроется окно редактора Visual Basic for Application, в котором мы увидим VBA-код нашего макроса:
Нам необходимо перейти курсором в окно кода и поменять в строке кода Range(«E2:E6»).Select на Range(«E2:E10»).Select и закрыть редактор, после чего сохранить файл.
После чего наш макрос будет копировать данные уже из нового диапазона.
Источник
Как создавать, изменять и запускать макросы в Excel
Excel предусматривает огромное количество функций по автоматизации вычислений и обработки данных. Тем не менее, объем человеческих задач очень большой, и не всегда встроенного функционала достаточно. Да, даже если он очень широкий. В этих случаях ситуацию спасают макросы.
Они значительно увеличивают эффективность работы с информацией. Дело в том, что они не только помогают реализовать некоторые функции, которые отсутствуют в стандартном комплекте, но и автоматизировать часто повторяющиеся действия. Сегодня мы более детально разберемся в том, что такое макросы, как они работают и как создавать новые и редактировать старые макросы.
Что такое макрос и для чего он применяется
Итак, макрос – это набор команд, которые должен выполнить Эксель. Они дают возможность автоматизировать почти любые часто повторяющиеся задачи. Достаточно просто выбрать одну команду один раз, воспользовавшись комбинацией горячих клавиш или панелью инструментов.
Макросы пишутся с помощью языка программирования VBA, но простой макрос можно записать и без него. Технически он ничем не отличается от программы, потому что содержит набор инструкций, которые компьютеру нужно выполнить. Нередко макрос сравнивается с кулинарным рецептом, где также описывается, в какой последовательности нужно выполнить какие действия, чтобы получить желаемый результат.
Но у макроса и рецепта есть одно ключевое различие. Макрос запускается один раз, после чего все остальные действия выполняет вручную. Поэтому если использовать кухонные метафоры, его проще сравнить с мультиваркой, в которую достаточно один раз положить нужные ингредиенты, после чего блюдо будет приготовлено самостоятельно.
Инструкции, которые передаются макросу, содержат макрооператоры – конкретные команды, которые офисному пакету нужно выполнить. Ряд из них являются специфическими, но большая часть соответствует командам из главного меню. Это делается для того, чтобы сделать процесс создания макросов более дружелюбным для пользователя.
Давайте приведем один пример. Любое приложение, независимо от используемой операционной системы, содержит кнопку «Закрыть». Если мы хотим сделать это через макрос, нам нужно ввести в среду разработки команду ActiveWindow.Close. Видим, что по названиям операторов можно много чего понять, поскольку все они пишутся на английском языке. Это также упрощает задачу пользователя, который знает английский язык.
Бояться макросов не нужно, поскольку VBA – очень простой язык программирования. Большую часть действий можно запрограммировать, даже не написав ни строчки кода. Достаточно просто эти действия записать один раз. При этом важно помнить, что редактор кода значительно функциональнее по сравнению с визуальными методами написания макросов.
Как создать новый макрос в Excel
Как мы уже поняли, есть два способа записи макросов в Excel: ручной или автоматический. Чтобы воспользоваться последним методом, не требуется наличие каких-либо навыков программирования. Правда, он ограничен и не дает возможности записывать условия, формировать сложные циклы и так далее.
Поэтому для профессионального овладения электронными таблицами умение программировать обязательно. Ведь нередко кроме непосредственно написания кода невозможно вообще как-либо решать поставленные задачи.
Способ 1. Автоматический запуск макроса
Перед тем, как записывать макросы, необходимо провести ряд несложных настроек, прежде всего, включить сами макросы. Правда, на данном этапе начинающего пользователя могут встретить некоторые трудности. Дело в том, что настройки макросов находятся на вкладке «Разработчик», доступ к которой изначально закрыт. Поэтому нужно сначала включить эту возможность. Последовательность действий следующая:
- Найти меню «Файл» и сделать по нему левый клик мышью.
- Далее появляется экран с набором подпунктов. Нам нужно выбрать меню «Параметры».
- После этого находим пункт «Настройка ленты» и ищем в нем флажок, активирующий вкладку «Разработчик».
- Подтверждаем свои действия путем нажатия клавиши «ОК».
После этого мы увидим вкладку «Разработчик» в нашей программе. Делаем переход по ней. Перед нами появляется большое количество инструментов разработчика. Из всего этого ассортимента нас интересует группа «Код». Там находится маленькая кнопка «Записать макрос», после клика по которой осуществляется непосредственная запись этой программы.
Далее пользователь увидит диалоговое окно. С него можно задать параметры для нашей будущей подпрограммы. Здесь доступны следующие настройки:
- Имя макроса. Допустимо использование какого-угодно имени за исключением того, которое начинается с числа или символа. При этом нельзя в качестве имени использовать больше одного слова.
- Комбинация клавиш. Это некий пусковой крючок для макроса. Он используется для того, чтобы включить макрос. Все горячие клавиши начинаются с клавиши Ctrl, а вторую можно настроить самостоятельно. Например, можно использовать горячую клавишу r. Также возможен ввод большой буквы. Для этого необходимо воспользоваться клавишей Shift, которая автоматически добавляется в комбинацию горячих клавиш.
- Место хранения. По умолчанию предусмотрен вариант, когда макрос применяется к текущей книге. Тем не менее, пользователь может выбрать новую или создать собственную книгу для макросов.
- Описание. При желании пользователь может в нескольких предложениях описать, что будет делать макрос. Это будет особенно полезно, если одной и той же книгой пользуются несколько человек.
После выполнения всех действий нужно нажать клавишу ОК, тем самым подтвердив изменения. Теперь все действия, совершаемые пользователем, будут автоматически записываться в макрос. Это будет продолжаться ровно до тех пор, пока запись программы не будет остановлена. Значительно проще разобрать это на реальном примере. Давайте сделаем программку, которая будет умножать содержимое двух ячеек. Для этого нужно запустить запись макроса, ввести в ячейку формулу (в нашем случае это =B2*B3), нажать клавишу Enter, после чего остановить запись. Кнопка остановки записи макроса находится на вкладке «Разработчик» в группе «Код».
Запуск выполнения макроса
Как же проверить, работает ли наш макрос? Для этого нужно выполнить следующие действия:
- Открыть вкладку «Разработчик». Там в самой левой части есть кнопка «Макросы», по которой нужно сделать левый клик мышью один раз. Кроме этого, пользователь может открыть аналогичную опцию путем нажатия горячих клавиш Alt + F8.
- После этого у нас откроется окно настройки макросов. Нужно выбрать тот, который мы только что создали, и нажать на кнопку «Выполнить». Этот же результат можно получить, если нажать сочетание клавиш, которое мы назначили для макроса раньше.
- О том, что макрос работает, мы можем судить по действиям программы. Если они повторяют те, которые были сделаны раньше, значит все ОК.
Таким способом можно проверить любой макрос. Но что делать, если оказывается, что он работает не совсем так, как нам нужно было?
Корректировка макроса
Если в ходе исполнения макроса появляются какие-то проблемы, их можно исправить. Самая распространенная проблема, по которой команды не выполняются, как надо – ошибки пользователя на этапе первичной записи команд. Чтобы отредактировать созданный макрос, нужно выполнить следующие действия.
- Открыть окошко макросов путем нажатия на ту же кнопку, что была описана выше или же воспользоваться комбинацией клавиш.
- Выбираем наш макрос. Находим кнопку «Изменить», которая находится справа от него. Делаем единичный левый клик мышью по ней.
- После этого откроется редактор Visual Basic. Правки придется вносить в код, поэтому если навыков программирования нет, нужно быть очень внимательным при записи макроса.
На данном этапе нужно уже немного переходить к следующей теме: ручное редактирование макроса. Любой макрос начинается командой Sub. О том, что макрос заканчивается, компьютер понимает по команде End Sub. После слова Sub показывается название макроса. После этого в структуре записывается описание макроса и та комбинация клавиш, которая необходима для его запуска.
Далее следуют команды, которые выполняют конкретные действия. Например, номер ячейки мы получаем с помощью оператора Range. В нашем примере, мы получаем ячейку B2 с помощью команды Range(“B2″).Select. Это действие аналогично выбору ячейки левой кнопкой мышки. Значение ячейки, которая выбрана на данный момент указывается с помощью оператора ActiveCell.FormulaR1C1.
Давайте попробуем наш макрос немного отредактировать. Допустим, нам нужно выполнить такую задачу: добавить дополнительную ячейку с адресом B4 и значением 3. В таком случае в код необходимо добавить такие строки:
На первый взгляд это может показаться довольно сложной задачей, но на самом деле, команды – это полноценный язык, который нужно просто изучить. Представьте, что вы пишете сообщение, только не человеку, а компьютеру с просьбой сделать то-то и то-то. Да, программирование именно так и устроено по факту. Все намного проще, чем кажется.
Но это уже лирическое отступление. Нам еще осталось совершить одно действие – изменить первоначальное выражение, которое касалось ячейки D2, на это: ActiveCell.FormulaR1C1 = «=RC[-2]*R[1]C[-2]*R[2]C[-2]»
Внимание! Видим, что адреса в ячейках в данном примере записываются, как R1C1.
После того, как мы выполним все описанные выше действия, можно закрыть редактор макросов. Для этого достаточно просто кликнуть по крестику. То есть, выполнить действия, аналогичные закрытию любого окна в операционной системе.
Далее нужно перепроверить макрос еще раз. Видим, что после его исполнения в таблице появилась еще одна ячейка. Если макрос очень большой, то ручное редактирование имеет множество преимуществ перед повторной его записью. Также оно позволяет избежать повторных ошибок.
Также можно ускорить работу макроса путем добавления команды Application.ScreenUpdating = False. После этого на экране не будут показываться те промежуточные шаги, которые выполняет макрос, лишь конечный результат. Если же нужно, чтобы отображение на экране было вновь включено, тогда нужно заменить False на True.
Способ 2. Создание макроса в ручном режиме
Автоматическая запись макроса – это хорошо, но данный метод имеет множество недостатков. Профессионалы создают макросы вручную. Для этого нужно выучить язык VBA и выполнять следующие действия:
- Перейти во вкладку «Разработчик» и нажать на кнопку «Visual Basic». Она находится в самой левой части панели инструментов в этой вкладке.
- Далее появится окно, которое мы уже знаем по предыдущему разделу.
- Весь код пишется здесь.
Надо отметить, что все детали сегодня рассмотреть не получится, поскольку нужно знать язык VBA для этого. Тем не менее, общий механизм такой. А после того, как вы освоите язык VBA, вы сможете уже учиться и более сложным языкам программирования, поскольку логика одинаковая что для написания макроса, что для написания полноценных компьютерных программ.
Как изменять существующие макросы
Детали о том, как изменять существующие макросы, описывались выше. В целом логика остается той же самой, за тем лишь исключением, что коррекция макросов – это точечные изменения (например, отредактировать ячейку, если случайно была выбрана неправильно). В то время как изменение – более фундаментальное редактирование, включая добавление новых строк кода и так далее.
Заключение
Мы видим, что макросы – это высокоэффективный инструмент, позволяющий автоматизировать огромные массивы работы. Если пользователю приходится выполнять огромное количество однотипных действий, или имеющихся возможностей Excel не хватает, они способны легко и просто исправить ситуацию.
Источник
Александр Пользователь Сообщений: 30 |
Цель макросом из личной книги макросов при его запуске обновить рабочий файл до последней версии. Можно ли получить как-то содержимое макроса из открытой книги в переменную, а потом replace- ом заменить необходимый кусок и перезаписать его? Изменено: Александр — 13.01.2021 16:04:49 |
DANIKOLA Пользователь Сообщений: 422 |
Тема не новая, подобный вопрос был здесь , там посмотрите #6, хорошая ссылка. |
Jack Famous Пользователь Сообщений: 10848 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#3 14.01.2021 09:06:55
пример Изменено: Jack Famous — 14.01.2021 09:08:19 Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
|
Александр Пользователь Сообщений: 30 |
DANIKOLA, спасибо, буду пробовать в примере можно обращаться к модулю, который содержит макрос, будем надеяться с ним сработает replace |
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
#5 14.01.2021 11:48:32
почему нет? Если знаете имя, то проблем нет. Например, вот этот код запоминает в переменную res весь текст искомой процедуры/функции:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||||
Mershik Пользователь Сообщений: 8277 |
#6 14.01.2021 12:06:53
а я и не знал) спасибо. Не бойтесь совершенства. Вам его не достичь. |
||
Александр Пользователь Сообщений: 30 |
#7 14.01.2021 18:16:59
Отлично! Спасибо |
||
Александр Пользователь Сообщений: 30 |
#8 27.01.2021 11:14:06 Не вышло изменить макрос =( ни при попытке обратиться к самому макросу:
ни при попытке обращения к модулю
Раз объекты как таковые существуют и к ним можно обращаться, то способ их изменить должен быть, но не понимаю что именно я делаю не так. Изменено: Александр — 27.01.2021 11:47:15 |
||||
БМВ Модератор Сообщений: 21378 Excel 2013, 2016 |
наверно не разрешили в настройках безопасности программы обращаться к этим объектам. По вопросам из тем форума, личку не читаю. |
Александр Пользователь Сообщений: 30 |
#10 27.01.2021 11:40:59 Добавил —
Включено —
|
||||
Александр Пользователь Сообщений: 30 |
#11 27.01.2021 13:20:49 Нашел рабочий код тут . Работает с личной книги макросов. активной книге и только в указанном модуле
|
||
You have learnt how to write macro code in VBA editor in the previous chapter. You can edit the macro code, rename a macro and delete a macro.
If you master Excel VBA, writing code or modifying code for a macro is a trivial task. You can edit the macro code however you want. If you want to make only few simple changes in the macro code, you can even copy macro code from one place to another.
Copying a Macro Code
You have created two macros – MyFirstMacro and Button1_Click in the macro enabled workbook MyFirstMacro.xlsm. You have created the first macro by recording the steps and the second macro by writing code. You can copy code from the first macro into the second macro.
-
Open the workbook MyFirstMacro.xlsm.
-
Click the Developer tab on the Ribbon.
-
Click Visual Basic. The Visual Basic editor opens.
-
Open the code for Module1 (MyFirstMacro macro code) and Module2 (Button1_Click () macro code).
-
Click the Window tab on the Ribbon.
-
Select Tile Horizontally from the dropdown list.
You can view the code of the two macros in the tiled windows.
-
Copy the MsgBox line in the Module2 code.
-
Paste it above that line.
-
Modify the string as −
MsgBox “Hello World!”
-
Copy the following code from Module1.
Paste it in the Module2 code in between the two MsgBox lines of code.
-
Click the Save icon to save the code.
-
Click the Button in the Excel sheet. A Message box appears with the message — Hello World! Click OK.
The table data appears (according to the code that you copied) and message box appears with message — Best Wishes to You!
You can modify the code in just a few steps. This is the easiest task for a beginner.
Renaming a Macro
Suppose you want to run the edited macro from any worksheet other than the one that has the command button. You can do it irrespective of button click by renaming the macro.
- Click the VIEW tab on the Ribbon.
- Click Macros.
- Select View Macros from the dropdown list.
The Macro dialog box appears.
- Click the macro name – Button1_Click.
- Click the Edit button.
The macro code appears in the VBA editor.
Change the name that appears in the Sub line from Button1_Click to RenamedMacro. Leave Sub and parenthesis as they are.
Open the Macro dialog box. The macro name appears as you renamed.
- Click RenamedMacro.
- Click the Run button. The macro runs. Now a button click is not necessary.
Deleting a Macro
You can delete a macro that you have recorded or coded.
- Open the Macros dialog box.
- Click the macro name.
- Click the Delete button.
The Delete confirmation message appears.
Click Yes if you are sure to delete the macro. Otherwise, click No.
В этой статье я расскажу, как можно редактировать макрос, записанный с помощью команды «Запись макроса…».
Файл | Описание | Размер файла: | Скачивания |
---|---|---|---|
Пример | 11 Кб | 1531 |
Давайте возьмем файл с предварительно записанным макросом или запишем новый макрос, как это сделать описано в статье «Как записать макрос не зная языка VBA?«.
Напомню, мы записывали макрос, который копирует данные из диапазона ячеек E2:E6, и вставляет их как значения в ячейки G2:G6. Допустим, у нас увеличился диапазон копирования и теперь нам нужно копировать данные из диапазона E2:E10, не переписывать же из-за этого макрос. Нам будет достаточно его отредактировать.
Итак, давайте откроем наш файл с записанным макросом, нажмем сочетания клавиш Alt+F8, должно будет открыться диалоговое окно макрос:
В данном окне мы выбираем наш макрос «Макрос1» и нажимаем кнопку «Изменить», откроется окно редактора Visual Basic for Application, в котором мы увидим VBA-код нашего макроса:
Нам необходимо перейти курсором в окно кода и поменять в строке кода Range(«E2:E6»).Select на Range(«E2:E10»).Select и закрыть редактор, после чего сохранить файл.
Sub Макрос1() ' ' Макрос1 Макрос ' ' Range("E2:E6").Select 'Надо поменять данные в этой строке Selection.Copy Range("G2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub
Sub Макрос1() ' ' Макрос1 Макрос ' ' Range("E2:E10").Select 'Вместо ("E2:E6") написать ("E2:E10") Selection.Copy Range("G2").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub
После чего наш макрос будет копировать данные уже из нового диапазона.
Добавить комментарий
Хитрости »
3 Август 2013 25350 просмотров
Рано или поздно у разработчика по различным причинам возникает желание внести какие-либо изменения в созданный им код или добавить в только что созданный кодом файл код VBA. Распространенная ситуация: создали файл обработки, разослали пользователям. Потом доработали код VBA, что-то там добавили, улучшили, а заменять файлы пользователей уже нельзя(они там данные вносят и хранят). Изменять отдельно код VBA каждого файла занятие не из самых привлекательных. Вот здесь-то как раз очень бы пригодилось изменять коды программно.
О том как именно изменять описано в других статьях, например: Как добавить код процедуры программно, скопировать модуль. Эта же статья посвящена тому, что необходимо знать прежде чем начать вносить изменения.
Итак, работать с объектной моделью проекта VBA нам позволяет библиотека Microsoft Visual Basic For Applications Extensibility. Её можно подключить через меню VBE:
Tools—References-Microsoft Visual Basic For Applications Extensibility 5.X (номер может быть другим)
Так же эту библиотеку к проекту можно подключить программно(по идентификатору GUID):
ThisWorkbook.VBProject.References.AddFromGuid _
GUID:="{0002E157-0000-0000-C000-000000000046}", Major:=5, Minor:=3
Что мне нравится в VBA так это то, что он допускает обращение к методам и свойствам объектов любой имеющейся библиотеки без её подключения в настройках, чем я постоянно и пользуюсь — в своих кодах я не использую текстовые константы из библиотеки Extensibility, заменив их числовыми. Это избавляет от проверки подключенной библиотеки на ПК конечного пользователя. Подключение же библиотеки позволяет использовать Intellisence для интуитивного просмотра свойст и методов объектов. Бывает очень полезно, если не знаете какое-либо свойство или метод или константу. Подключили библиотеку, подсмотрели, применили.
Но куда важнее то, без чего работа с проектом VBA программно невозможна. Я знаю два основных условия:
- Необходимо проставить доверие к проекту VBA:
- Excel 2010-2019: Файл —Параметры —Центр управления безопасностью —Параметры макросов -поставить галочку «Доверять доступ к объектной модели проектов VBA»;
- Excel 2007: Меню —Параметры Excel —Центр управления безопасностью —Параметры макросов -поставить галочку «Доверять доступ к объектной модели проектов VBA»;
- Excel 2003: Сервис –Параметры -вкладка Безопасность —Параметры макросов—Доверять доступ к Visual Basic Project
Причем сделать это необходимо на том ПК, на котором будет выполняться код.
- Изменяемый VBA-проект не должен быть защищен.
Исключить первое условие программно нельзя. Точнее через VBA не получится изменить данный параметр, т.к. это будет происходить в любом случае при запущенном Excel, а при изменении данного параметра программно необходим перезапуск приложения. Да и изменить параметр возможно лишь через реестр, а не у всех пользователей может быть доступ не только к записи, но и даже к чтению реестра Windows. Зато можно проверить разрешен ли доступ к проектной модели VBA и если запрещен, то уведомить пользователя в необходимости это сделать и приложить инструкции по необходимым действиям.
Можно использовать такой код для проверки:
Sub Check_VBOM() Dim oVBProj As Object On Error Resume Next Set oVBProj = ActiveWorkbook.VBProject If Not oVBProj Is Nothing Then MsgBox "Доступ к проектной модели VBA разрешен", vbInformation Else MsgBox "Доступ к проектной модели VBA запрещен", vbInformation End If End Sub
Главное его достоинство в том, что он не требует наличия каких-либо прав доступа к реестру.
А кодом ниже можно проверить доступ к объектной модели VBA проекта через реестр Windows, что означает необходимость наличия у пользователя прав доступа как минимум для чтения реестра:
Sub Change_VBOM() Dim objShell As Object, sExVersion As String, lLevel As Long 'Определяем версию Excel и в зависимости от этого определяем ветку реестра sExVersion = Application.Version Set objShell = CreateObject("WScript.Shell") lLevel = objShell.RegRead("HKEY_CURRENT_USERSoftwareMicrosoftOffice" & sExVersion & "ExcelSecurityAccessVBOM") 'Проверяем доступ к объектной модели VBA If lLevel = 0 Then MsgBox "Доступ к проектной модели VBA запрещен", vbInformation Else MsgBox "Доступ к проектной модели VBA разрешен", vbInformation End If Set objShell = Nothing End Sub
Если вдруг кому-то захочется поэкспериментировать, то вот код для VB, который меняет доступ программно:
Sub Change_VBOM() Dim objExcelApp As Object, objShell As Object, sExVersion As String, lLevel As Long 'Определяем версию Excel и в зависимости от этого определяем ветку реестра Set objExcelApp = CreateObject("Excel.Application") sExVersion = objExcelApp.Version: objExcelApp.Quit Set objShell = CreateObject("WScript.Shell") lLevel = objShell.RegRead("HKEY_CURRENT_USERSoftwareMicrosoftOffice" & sExVersion & "ExcelSecurityAccessVBOM") 'Разрешаем доступ к объектной модели VBA 'AccessVBOM - 0 - запрещен доступ; 1 - разрешен If lLevel = 0 Then objShell.RegWrite _ "HKEY_CURRENT_USERSoftwareMicrosoftOffice" & _ sExVersion & "ExcelSecurityAccessVBOM", 1, "REG_DWORD" End If Set objExcelApp = Nothing: Set objShell = Nothing End Sub
Зато снять пароль с проекта VBA можно средствами самого VBA. Об этом я рассказывал в статье Как программно снять пароль с VBA проекта?
Других ограничений на программное внесение изменений в проект VBA я пока не нашел.
Также см.:
Ошибка — Cant find project or library
Как добавить код процедуры программно, скопировать модуль
Управление безопасностью макросов
Как запустить файл с включенными макросами?
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Макросы Excel – Обзор
Макрос Excel – это действие или набор действий, которые вы можете записать, дать имя, сохранить и выполнить столько раз, сколько захотите и когда захотите. Когда вы создаете макрос, вы записываете щелчки мышью и нажатия клавиш. При запуске сохраненного макроса записанные щелчки мыши и нажатия клавиш будут выполняться в той же последовательности, в которой они записаны.
Макросы помогают сэкономить время на повторяющихся задачах, связанных с манипулированием данными и отчетами о данных, которые необходимо выполнять часто.
Макро и VBA
Вы можете записывать и запускать макросы с помощью команд Excel или из Excel VBA.
VBA расшифровывается как Visual Basic для приложений и представляет собой простой язык программирования, доступный через Excel Visual Basic Editor (VBE), который доступен на вкладке DEVELOPER на ленте. Когда вы записываете макрос, Excel генерирует код VBA. Если вы просто хотите записать макрос и запустить его, вам не нужно изучать Excel VBA. Однако, если вы хотите изменить макрос, вы можете сделать это только путем изменения кода VBA в редакторе VBA Excel.
Вы узнаете, как записывать простой макрос и запускать его с помощью команд Excel, в главе «Создание простого макроса». Вы узнаете больше о макросах и о создании и / или изменении макросов из редактора Excel VBA в последующих главах.
Личная Макро Книга
Макрос можно сохранить в той же книге, откуда вы его записали. В этом случае вы можете запустить макрос только из этой книги и, следовательно, вы должны держать его открытым. Excel дает вам альтернативный способ хранения всех ваших макросов. Это личная книга макросов, в которой вы можете сохранить свои макросы, что позволяет запускать эти макросы из любой книги.
О персональной книге макросов вы узнаете в главе «Сохранение всех ваших макросов в одной книге».
Макрос безопасности
Макросы будут храниться в виде кода VBA в Excel. Как и в случае с любым другим кодом, макрос-код также подвержен вредоносному коду, который может запускаться при открытии книги. Это угроза вашему компьютеру. Microsoft предоставила средство Macro Security, которое поможет вам защитить ваш компьютер от таких макровирусов.
Подробнее об этом вы узнаете в главе «Безопасность макросов».
Абсолютные ссылки и относительные ссылки
Во время записи макроса вы можете использовать абсолютные или относительные ссылки для ячеек, по которым вы щелкаете. Абсолютные ссылки заставляют ваш макрос работать в тех же ячейках, где вы записали макрос. С другой стороны, относительные ссылки заставляют ваш макрос работать в активной ячейке.
Вы узнаете об этом в главах – Использование абсолютных ссылок для макроса и Использование относительных ссылок для макроса.
Макрокод в VBA
Вы можете записывать и запускать макросы из Excel, даже если вы не знаете Excel VBA. Однако, если вам нужно изменить записанный макрос или создать макрос, написав код VBA, вы должны изучить Excel VBA. Вы можете обратиться к учебнику по Excel VBA в этой библиотеке учебников для этого
Тем не менее, вы должны знать, как просмотреть код макроса. Вы можете узнать, как получить доступ к редактору VBA в Excel и о различных частях редактора VBA в главе – Excel VBA.
Вы можете узнать, как просмотреть код макроса в редакторе Excel VBA, и понять код макроса в главе – Понимание кода макроса.
Назначение макросов объектам
Вы можете назначить макрос объекту, такому как фигура, графика или элемент управления. Затем вы можете запустить макрос, нажав на этот объект. Об этом вы узнаете в главе «Назначение макросов объектам».
Запуск макросов
В Excel предусмотрено несколько способов запуска макроса. Вы можете выбрать способ запуска макроса. Об этих различных возможных способах запуска макроса вы узнаете в главе «Запуск макроса».
Создание макроса с помощью редактора VBA
Если вы решили написать код макроса, вы можете изучить его в главе «Создание макроса с помощью VBA Editor». Однако обязательным условием является знание Excel VBA.
Редактирование макроса
Вы можете изменить код макроса в редакторе Excel VBA. Если вы хотите сделать обширные изменения, вы должны обладать знаниями Excel VBA. Но если вы хотите внести незначительные изменения в код или скопировать код VBA из записанного макроса в другой макрос, вы можете обратиться к главе «Редактирование макроса».
Вы можете переименовать макрос и даже удалить его. Вы узнаете об этом также в той же главе.
Формы пользователя
Форма обычно используется для сбора необходимой информации. Это само за себя сделает задачу проще. Пользовательские формы Excel, созданные из редактора Excel VBA, служат той же цели, предоставляя знакомые параметры, такие как текстовые поля, флажки, переключатели, списки, поля со списком, полосы прокрутки и т. Д. В качестве элементов управления.
Вы узнаете, как создать пользовательскую форму и как использовать различные элементы управления в главе «Пользовательские формы».
Отладка макроса кода
Иногда макрос может работать не так, как ожидалось. Возможно, вы создали макрос или используете макрос, предоставленный вам кем-то. Вы можете отлаживать код макроса так же, как вы отлаживаете любой другой код, чтобы выявить дефекты и исправить их. Вы узнаете об этом в главе «Отладка макрокода».
Настройка макроса для запуска при открытии книги
Вы можете автоматически запускать макрос при открытии книги. Вы можете сделать это либо путем создания макроса Auto_Run, либо написав код VBA для события открытия книги. Вы узнаете об этом в главе «Настройка макроса для запуска при открытии рабочей книги».
Макросы Excel – Создание
Вы можете создать макрос с помощью команд Excel, записав нажатия клавиш и щелчки мыши, задав макросу имя и указав, как сохранить макрос. Записанный таким образом макрос можно запустить с помощью команды Excel.
Предположим, вам необходимо повторно собирать определенные результаты в следующем формате:
Вместо того, чтобы создавать таблицу каждый раз, у вас может быть макрос, который сделает это за вас.
Запись макроса
Для записи макроса выполните следующие действия:
- Нажмите вкладку VIEW на ленте.
- Нажмите Макросы в группе Макросы.
- Выберите Record Macro из выпадающего списка.
Откроется диалоговое окно « Запись макроса ».
-
Введите MyFirstMacro в поле Имя макроса.
-
Введите «Простой макрос» в поле «Описание» и нажмите «ОК».
Введите MyFirstMacro в поле Имя макроса.
Введите «Простой макрос» в поле «Описание» и нажмите «ОК».
Помните, что любые нажатия клавиш и щелчки мышью, которые вы делаете, будут записаны сейчас.
-
Нажмите в ячейке B2.
-
Создать таблицу.
-
Нажмите в другой ячейке на листе.
-
Нажмите вкладку VIEW на ленте.
-
Нажмите Макросы.
-
Выберите Остановить запись из выпадающего списка.
Нажмите в ячейке B2.
Создать таблицу.
Нажмите в другой ячейке на листе.
Нажмите вкладку VIEW на ленте.
Нажмите Макросы.
Выберите Остановить запись из выпадающего списка.
Ваша запись макроса завершена.
Первый шаг, который нужно щелкнуть по определенной ячейке, важен, поскольку он сообщает, где именно макрос должен начать размещать записанные шаги. Когда вы закончите запись, вы должны нажать «Остановить запись», чтобы избежать записи ненужных шагов.
Запуск макроса
Вы можете запускать записанный вами макрос сколько угодно раз. Чтобы запустить макрос, выполните следующие действия:
- Нажмите на новый лист.
Обратите внимание на активную ячейку. В нашем случае это А1.
-
Нажмите вкладку VIEW на ленте.
-
Нажмите Макросы .
-
Выберите View Macros из выпадающего списка.
Нажмите вкладку VIEW на ленте.
Нажмите Макросы .
Выберите View Macros из выпадающего списка.
Откроется диалоговое окно «Макрос».
В списке макросов появляется только записанный вами макрос.
-
Щелкните имя макроса – MyFirstMacro в диалоговом окне «Макрос». Будет отображено описание, введенное вами во время записи макроса. Описание макроса позволяет определить, для какой цели вы записали макрос.
-
Нажмите кнопку «Выполнить». Та же самая таблица, которую вы создали во время записи макроса, появится за доли секунды.
Щелкните имя макроса – MyFirstMacro в диалоговом окне «Макрос». Будет отображено описание, введенное вами во время записи макроса. Описание макроса позволяет определить, для какой цели вы записали макрос.
Нажмите кнопку «Выполнить». Та же самая таблица, которую вы создали во время записи макроса, появится за доли секунды.
Вы обнаружили волшебную палочку, которую Excel предоставляет вам, чтобы сэкономить время на повседневных задачах. Вы увидите следующее –
-
Хотя активной ячейкой перед запуском макроса была A1, таблица помещается в ячейку B2, как вы записали.
-
Кроме того, активной ячейкой стала E2, так как вы щелкнули по этой ячейке, прежде чем прекратили запись.
Хотя активной ячейкой перед запуском макроса была A1, таблица помещается в ячейку B2, как вы записали.
Кроме того, активной ячейкой стала E2, так как вы щелкнули по этой ячейке, прежде чем прекратили запись.
Вы можете запустить макрос в нескольких листах с разными активными ячейками перед запуском макроса и соблюдать те же условия, что и приведенные выше. Просто запомните это, и позже в этом уроке вы поймете, почему это произошло.
Вы также можете иметь макро запись, которая помещает ваши записанные шаги в активную ячейку. Вы узнаете, как это сделать, по мере продвижения в учебнике.
Хранение макроса
Вы можете задаться вопросом, как сохранить созданные макросы. В этом контексте вам нужно знать –
- Хранение макроса
- Сохранение файла с макросами
Как и при создании макроса, вы можете выбрать, где хранить этот конкретный макрос. Вы можете сделать это в диалоговом окне « Запись макроса ».
Установите флажок – Хранить макрос в . Доступны следующие три варианта:
- Это рабочая тетрадь.
- Новая рабочая тетрадь.
- Личная Макро Книга
Эта рабочая тетрадь
Это опция по умолчанию. Макрос будет сохранен в вашей текущей книге, из которой вы его создали.
Новая рабочая книга
Эта опция, хотя и доступна, не рекомендуется. Вы будете просить Excel сохранить макрос в другой новой книге, и в большинстве случаев это не нужно.
Личная Макро Книга
Если вы создаете несколько макросов, которые вы используете в своих книгах, Personal Macro Workbook предоставляет вам возможность хранить все макросы в одном месте. Вы узнаете больше об этой опции в следующей главе.
Сохранение файла с макросами
Если вы выбрали эту книгу в качестве опции для хранения макроса, вам нужно будет сохранить вашу книгу вместе с макросом.
Попробуйте сохранить рабочую книгу. По умолчанию вы просите Excel сохранить книгу в виде файла .xls. В Excel отображается сообщение о том, что проект VB с функцией Excel нельзя сохранить в книге без макросов, как показано ниже.
Примечание. Если вы нажмете кнопку «Да», Excel сохранит вашу книгу как файл без макросов .xls, а макрос, сохраненный с помощью параметра «Эта книга», не будет сохранен. Чтобы избежать этого, Excel предоставляет вам возможность сохранить рабочую книгу как макроподключенную книгу с расширением .xlsm.
- Нажмите Нет в окне с предупреждением.
- Выберите Excel Macro-Enabled Workbook (* .xlsm) в типе Сохранить как.
- Нажмите Сохранить.
Вы узнаете больше об этом в последующих главах этого урока.
Макросы Excel – Макросы в одной книге
Excel предоставляет вам возможность хранить все ваши макросы в одной книге. Рабочая книга называется «Персональная макрокоманда» – Personal.xlsb. Это скрытая рабочая книга, хранящаяся на вашем компьютере, которая открывается каждый раз, когда вы открываете Excel. Это позволяет вам запускать макросы из любой книги. На каждом компьютере будет отдельная книга личных макросов, и вы не сможете поделиться ею между компьютерами. Вы можете просматривать и запускать макросы в своей личной книге макросов из любой книги на вашем компьютере.
Сохранение макросов в личной книге макросов
Вы можете сохранить макросы в своей Персональной рабочей тетради, выбрав ее в качестве опции сохранения при записи макросов.
Выберите «Персональная книга макросов» в раскрывающемся списке под категорией « Хранить макрос» .
- Запишите свой второй макрос.
- Укажите детали макроса в диалоговом окне «Запись макроса», как показано ниже.
- Нажмите ОК.
Ваша запись начинается. Создайте таблицу, как показано ниже.
-
Прекратить запись.
-
Нажмите вкладку VIEW на ленте.
-
Нажмите Макросы.
-
Выберите View Macros из выпадающего списка. Откроется диалоговое окно «Макрос».
Прекратить запись.
Нажмите вкладку VIEW на ленте.
Нажмите Макросы.
Выберите View Macros из выпадающего списка. Откроется диалоговое окно «Макрос».
Имя макроса отображается с префиксом PERSONAL.XLSB! указывает на то, что макрос находится в личной книге макросов.
Сохраните свою рабочую книгу. Он будет сохранен как файл .xls, так как макрос отсутствует в вашей книге и закроет Excel.
Вы получите следующее сообщение о сохранении изменений в Персональной книге макросов:
Нажмите кнопку Сохранить. Ваш макрос сохраняется в файле Personal.xlsb на вашем компьютере.
Скрытие / отображение персональной макрокоманды
Персональная макрокоманда по умолчанию будет скрыта. Когда вы запускаете Excel, загружается личная книга макросов, но вы ее не видите, потому что она скрыта. Вы можете показать это следующим образом –
-
Нажмите вкладку VIEW на ленте.
-
Нажмите Показать в группе окон.
Нажмите вкладку VIEW на ленте.
Нажмите Показать в группе окон.
Откроется диалоговое окно «Показать».
PERSONAL.XLSB появится в поле «Показать книгу» и нажмите «ОК».
Теперь вы можете просматривать макросы, сохраненные в личной книге макросов.
Чтобы скрыть личную книгу макросов, выполните следующие действия:
- Нажмите на личную книгу макросов.
- Нажмите вкладку VIEW на ленте.
- Нажмите Скрыть на ленте.
Запуск макросов, сохраненных в личной книге макросов
Вы можете запускать макросы, сохраненные в личной книге макросов, из любой книги. Для запуска макросов не имеет значения, является ли личная книга макросов скрытой или скрытой.
- Нажмите «Просмотреть макросы».
- Выберите имя макроса из списка макросов.
- Нажмите кнопку «Выполнить». Макрос будет работать.
Добавление / удаление макросов в личной книге макросов
Вы можете добавить больше макросов в личную книгу макросов, выбрав ее для опции «Хранить макрос» во время записи макросов, как вы видели ранее.
Вы можете удалить макрос в личной книге макросов следующим образом:
- Убедитесь, что личная рабочая тетрадь с макросами не скрыта.
- Щелкните имя макроса в диалоговом окне «Просмотр макросов».
- Нажмите кнопку Удалить.
Если личная книга макросов скрыта, вы получите сообщение «Невозможно редактировать макрос в скрытой книге».
Отобразите личную книгу макросов и удалите выбранный макрос.
Макрос не появится в списке макросов. Однако, когда вы создаете новый макрос и сохраняете его в своей личной книге или удаляете все содержащиеся в нем макросы, вам будет предложено сохранить личную книгу так же, как в случае, когда вы сохранили ее в первый раз.
Макросы Excel – Безопасность
Макросы, которые вы создаете в Excel, будут написаны на языке программирования VBA (Visual Basic для приложений). Вы узнаете о макросе Excel в следующих главах. Как вы знаете, когда есть исполняемый код, существует угроза вирусов. Макросы также подвержены вирусам.
Что такое макро-вирусы?
Excel VBA, в котором написаны макросы, имеет доступ к большинству системных вызовов Windows и выполняется автоматически при открытии книг. Следовательно, существует потенциальная угроза существования вируса, написанного в виде макроса и скрытого в Excel, который выполняется при открытии книги. Поэтому макросы Excel могут быть очень опасны для вашего компьютера во многих отношениях. Однако Microsoft предприняла соответствующие меры для защиты книг от макровирусов.
Microsoft ввела защиту макросов, чтобы вы могли определить, каким макросам вы можете доверять, а каким – нет.
Книги Excel с поддержкой макросов
Самая важная функция безопасности макросов Excel – расширения файлов.
Книги Excel будут сохранены с расширением .xlsx по умолчанию. Вы всегда можете доверять книгам с расширением .xlsx, так как они не способны хранить макрос и не несут никакой угрозы.
Книги Excel с макросами сохраняются с расширением .xlsm. Они называются книгами Excel с поддержкой макросов. Прежде чем открывать такие книги, убедитесь, что содержащиеся в них макросы не являются вредоносными. Для этого вы должны убедиться, что можете доверять источнику книг этого типа.
Способы доверять книге с поддержкой макросов
Excel предоставляет три способа доверять книге с поддержкой макросов.
-
Помещение книг с поддержкой макросов в надежную папку
-
Проверка, если макрос имеет цифровую подпись
-
Включение предупреждений безопасности перед открытием книг с поддержкой макросов
Помещение книг с поддержкой макросов в надежную папку
Проверка, если макрос имеет цифровую подпись
Включение предупреждений безопасности перед открытием книг с поддержкой макросов
Помещение книг с поддержкой макросов в надежную папку
Это самый простой и лучший способ управления макробезопасностью. Excel позволяет назначить папку в качестве надежного расположения. Поместите все книги с поддержкой макросов в эту доверенную папку. Вы можете открыть книги с поддержкой макросов, сохраненные в этом месте без предупреждений и ограничений.
Проверка, если макрос имеет цифровую подпись
Цифровые подписи подтверждают личность автора. Вы можете настроить Excel на запуск макросов с цифровой подписью от доверенных лиц без предупреждений или ограничений. Excel также предупредит получателя, если он был изменен с тех пор, как автор подписал его.
Включение предупреждений безопасности перед открытием книг с поддержкой макросов
Когда вы открываете книгу, Excel предупреждает вас о том, что книга содержит макросы, и спрашивает, хотите ли вы включить их. Вы можете нажать кнопку « Включить содержимое» , если источник рабочей книги является надежным.
Вы можете установить любой из этих трех параметров в центре управления безопасностью в параметрах Excel.
Если вы работаете в организации, системный администратор мог изменить настройки по умолчанию, чтобы никто не мог их изменить. Microsoft рекомендует не изменять параметры безопасности в центре управления безопасностью, поскольку последствия могут быть потеря данных, кража данных или нарушения безопасности на вашем компьютере или в сети.
Тем не менее, вы можете узнать настройки безопасности макросов в следующих разделах и проверить, если они должны быть изменены. Вы должны использовать свой собственный инстинкт, чтобы выбрать любой из этих вариантов на основе контекста и ваших знаний о происхождении файла.
Настройки безопасности макросов в центре управления безопасностью
Настройки макроса находятся в центре управления безопасностью в настройках Excel. Чтобы получить доступ к центру доверия, выполните следующие действия:
-
Нажмите вкладку ФАЙЛ на ленте.
-
Нажмите Опции. Откроется диалоговое окно «Параметры Excel».
-
Нажмите Центр управления безопасностью на левой панели.
-
Нажмите кнопку Настройки центра управления безопасностью в Центре управления безопасностью Microsoft Excel.
Нажмите вкладку ФАЙЛ на ленте.
Нажмите Опции. Откроется диалоговое окно «Параметры Excel».
Нажмите Центр управления безопасностью на левой панели.
Нажмите кнопку Настройки центра управления безопасностью в Центре управления безопасностью Microsoft Excel.
Откроется диалоговое окно « Центр управления безопасностью ».
Вы увидите различные параметры, доступные в Центре управления безопасностью Excel на левой панели. Вы узнаете об опциях, связанных с макросами Excel, в следующих разделах.
Настройки макроса
Настройки макроса находятся в центре управления безопасностью.
В настройках макроса доступны четыре параметра.
-
Отключить все макросы без уведомления. Если выбран этот параметр, макросы и предупреждения безопасности о макросах отключаются.
-
Отключить все макросы с уведомлением – макросы отключены, но при наличии макросов появляются предупреждения системы безопасности. Вы можете включить макросы в каждом конкретном случае.
-
Отключите все макросы, кроме макросов с цифровой подписью – макросы отключены, но при наличии макросов появляются предупреждения системы безопасности. Однако, если макрос подписан доверенным издателем с цифровой подписью, макрос запускается, если вы доверяете издателю. Если вы не доверяете издателю, вы получите уведомление о включении подписанного макроса и доверии издателю.
-
Включить все макросы (не рекомендуется, восприимчивы к макровирусам) – если выбрана эта опция, запускаются все макросы. Этот параметр делает ваш компьютер уязвимым для потенциально вредоносного кода.
Отключить все макросы без уведомления. Если выбран этот параметр, макросы и предупреждения безопасности о макросах отключаются.
Отключить все макросы с уведомлением – макросы отключены, но при наличии макросов появляются предупреждения системы безопасности. Вы можете включить макросы в каждом конкретном случае.
Отключите все макросы, кроме макросов с цифровой подписью – макросы отключены, но при наличии макросов появляются предупреждения системы безопасности. Однако, если макрос подписан доверенным издателем с цифровой подписью, макрос запускается, если вы доверяете издателю. Если вы не доверяете издателю, вы получите уведомление о включении подписанного макроса и доверии издателю.
Включить все макросы (не рекомендуется, восприимчивы к макровирусам) – если выбрана эта опция, запускаются все макросы. Этот параметр делает ваш компьютер уязвимым для потенциально вредоносного кода.
У вас есть дополнительная опция безопасности в Настройках макроса разработчика с флажком.
-
Доверительный доступ к объектной модели проекта VBA.
-
Этот параметр обеспечивает программный доступ к объектной модели Visual Basic для приложений (VBA) из клиента автоматизации.
-
Этот параметр безопасности предназначен для кода, написанного для автоматизации программы Office и управления средой VBA и объектной моделью.
-
Это настройка для каждого пользователя и приложения, которая по умолчанию запрещает доступ, препятствуя несанкционированным программам создавать вредоносный самовоспроизводящийся код.
-
Чтобы клиенты автоматизации могли обращаться к объектной модели VBA, пользователь, выполняющий код, должен предоставить доступ. Чтобы включить доступ, установите флажок.
-
Доверительный доступ к объектной модели проекта VBA.
Этот параметр обеспечивает программный доступ к объектной модели Visual Basic для приложений (VBA) из клиента автоматизации.
Этот параметр безопасности предназначен для кода, написанного для автоматизации программы Office и управления средой VBA и объектной моделью.
Это настройка для каждого пользователя и приложения, которая по умолчанию запрещает доступ, препятствуя несанкционированным программам создавать вредоносный самовоспроизводящийся код.
Чтобы клиенты автоматизации могли обращаться к объектной модели VBA, пользователь, выполняющий код, должен предоставить доступ. Чтобы включить доступ, установите флажок.
Определение надежного местоположения
Если вы считаете, что книга с макросами получена из надежного источника, лучше переместить файл в надежное расположение, указанное в Excel, вместо того, чтобы изменить настройки Центра управления безопасностью по умолчанию на менее безопасный параметр безопасности макросов.
Вы можете найти параметры надежной папки в центре управления безопасностью.
Нажмите Надежные расположения в диалоговом окне центра управления безопасностью. Надежные расположения, установленные Microsoft Office, отображаются с правой стороны.
Вы можете добавлять новые местоположения, удалять существующие местоположения и изменять существующие местоположения. Обнаруженные надежные расположения будут рассматриваться офисом Microsoft как надежные для открытия файлов. Однако, если вы добавите или измените местоположение, убедитесь, что оно безопасно.
Вы также можете найти варианты, которые офис не рекомендует, например, места в Интернете.
Макросы с цифровой подписью из надежных источников
Microsoft предоставляет возможность размещения макросов с цифровой подписью. Однако, даже если макрос имеет цифровую подпись, вы должны убедиться, что он принадлежит доверенному издателю.
Вы найдете доверенных издателей в центре доверия.
-
Нажмите Надежные издатели в диалоговом окне центра управления безопасностью. Справа появится список сертификатов с подробной информацией – выдано, выдано и срок действия.
-
Выберите сертификат и нажмите «Просмотр».
Нажмите Надежные издатели в диалоговом окне центра управления безопасностью. Справа появится список сертификатов с подробной информацией – выдано, выдано и срок действия.
Выберите сертификат и нажмите «Просмотр».
Информация о сертификате отображается.
Как вы узнали ранее в этой главе, вы можете установить опцию для запуска макроса с цифровой подписью, только если вы доверяете издателю. Если вы не доверяете издателю, вы получите уведомление о включении подписанного макроса и доверии издателю.
Использование предупреждающих сообщений
Панель сообщений отображает предупреждение системы безопасности, когда в открываемом файле есть макросы. Желтая панель сообщений со значком щита предупреждает вас, что макросы отключены.
Если вы знаете, что макрос или макросы получены из надежного источника, вы можете нажать кнопку «Включить содержимое» на панели сообщений, чтобы включить макросы.
Вы можете отключить опцию «Панель сообщений», если вы не хотите получать уведомления о безопасности. С другой стороны, вы можете включить опцию панели сообщений для повышения безопасности.
Включение / отключение предупреждений безопасности на панели сообщений
Вы можете включить / отключить предупреждения безопасности с помощью панели сообщений следующим образом:
- Нажмите вкладку ФАЙЛ на ленте.
- Нажмите Опции. Откроется диалоговое окно «Параметры Excel».
- Нажмите Траст-центр.
- Нажмите кнопку Настройки центра управления безопасностью.
- Нажмите Панель сообщений.
Появятся настройки панели сообщений для всех приложений Office.
В разделе « Отображение панели сообщений» есть два варианта.
Вариант 1 – Показывать панель сообщений во всех приложениях, когда активный контент, такой как макросы, заблокирован.
-
Это опция по умолчанию. Панель сообщений появляется, когда потенциально небезопасный контент отключен.
-
Если вы выбрали – Отключить все макросы без уведомления в настройках макросов центра управления безопасностью , этот параметр не выбран, и панель сообщений не отображается.
Это опция по умолчанию. Панель сообщений появляется, когда потенциально небезопасный контент отключен.
Если вы выбрали – Отключить все макросы без уведомления в настройках макросов центра управления безопасностью , этот параметр не выбран, и панель сообщений не отображается.
Вариант 2 – Никогда не показывать информацию о заблокированном контенте.
Если этот параметр выбран, он отключает панель сообщений, и никакие предупреждения о проблемах безопасности не появляются, независимо от каких-либо параметров безопасности в центре управления безопасностью.
Макросы Excel – абсолютные ссылки
Макросы Excel могут быть записаны с абсолютными или относительными ссылками. Макрос, записанный с абсолютными ссылками, помещает записанные шаги точно в ячейки, где он был записан, независимо от активной ячейки. С другой стороны, макрос, записанный с относительными ссылками, может выполнять записанные задачи в разных частях рабочего листа.
Вы узнаете об абсолютных ссылках на макрос в этой главе. Вы узнаете об относительных ссылках в следующей главе.
Предположим, что вы должны подавать отчет о работе вашей команды в конце каждого дня в следующем формате:
Теперь отчет должен быть помещен в ячейку B2 и должен быть в заданном формате.
Образец, заполненный в отчете, будет таким, как показано ниже –
За исключением данных в следующих ячейках, информация является постоянной для каждого отчета, который вы генерируете для проекта.
- C3 – Отчет за дату.
- C13 – Количество задач, выполненных сегодня.
- C14 – Общее количество выполненных задач.
- C15 -% работа выполнена.
Из них также в C3 (Отчет за дату) вы можете поместить функцию Excel = TODAY (), которая помещает дату вашего отчета без вашего вмешательства. Кроме того, в ячейке C15 вы можете использовать формулу C14 / C12 и отформатировать ячейку C15 в процентах, чтобы рассчитать% Work Complete для вас в Excel.
Это оставляет вам только две ячейки – C13 и C14, которые вы должны заполнять каждый день. Следовательно, было бы идеально иметь информацию для остальных ячеек каждый раз, когда вам нужно создать отчет. Это экономит ваше время, и вы можете выполнять обычные действия по составлению отчетов всего за несколько минут.
Теперь предположим, что вы должны отправить такие отчеты для трех проектов. Вы можете вообразить время, которое вы можете сэкономить и заняться более сложной работой в течение дня и, конечно, получить похвалы от вашего руководства.
Этого можно добиться, записав макрос для каждого проекта и выполняя их ежедневно, чтобы создать необходимые отчеты всего за несколько минут. Однако каждый раз, когда вы запускаете макрос, отчет должен появляться на рабочем листе, как указано выше, независимо от активной ячейки. Для этого вы должны использовать абсолютные ссылки.
Обеспечение Абсолютных Ссылок
Чтобы записать макрос с абсолютными ссылками, вы должны убедиться, что макрос записывается, начиная с ячейки, где должны начинаться шаги. Это означает, что в случае примера, приведенного в предыдущем разделе, вам нужно сделать следующее:
- Начните запись макроса.
- Создайте новый лист.
- Щелкните в любой ячейке, кроме B2, на новом листе.
- Нажмите в ячейке B2.
- Продолжить запись макроса.
Это создаст новый лист для каждого нового отчета и будет помещать формат отчета в ячейку B2 при каждом запуске макроса.
Примечание . Первые три шага, приведенные выше, очень важны.
-
Если вы не создаете новый рабочий лист, при запуске макроса он помещает все, что вы записали, на один и тот же рабочий лист в одно и то же место. Это не то, что вы хотите. Вы должны иметь каждый отчет на отдельном листе.
-
Если вы не нажмете другую ячейку в начале записи, даже если активная ячейка – B2, Excel поместит записанные шаги в активную ячейку. Когда вы запустите макрос, он поместит записанный формат отчета в любую часть рабочего листа на основе активной ячейки. Явно щелкая в ячейке, отличной от B2, а затем в ячейке B2, вы говорите рекордеру всегда размещать ваши макроэтапы в ячейке B2.
Если вы не создаете новый рабочий лист, при запуске макроса он помещает все, что вы записали, на один и тот же рабочий лист в одно и то же место. Это не то, что вы хотите. Вы должны иметь каждый отчет на отдельном листе.
Если вы не нажмете другую ячейку в начале записи, даже если активная ячейка – B2, Excel поместит записанные шаги в активную ячейку. Когда вы запустите макрос, он поместит записанный формат отчета в любую часть рабочего листа на основе активной ячейки. Явно щелкая в ячейке, отличной от B2, а затем в ячейке B2, вы говорите рекордеру всегда размещать ваши макроэтапы в ячейке B2.
Запись макроса
Вы можете начать запись макроса с помощью команды « Запись макроса» на ленте на вкладке «ПРОСМОТР» → «Макросы». Вы также можете нажать кнопку « Начать запись макроса» в левой части панели задач Excel.
-
Начните запись макроса. Откроется диалоговое окно « Запись макроса ».
-
Дайте осмысленное имя, чтобы идентифицировать макрос как отчет о конкретном проекте.
-
Выберите «Эта книга» в разделе « Макрос магазина» , поскольку отчеты будут создаваться только из этой конкретной книги.
-
Дайте описание вашему макросу и нажмите ОК.
Начните запись макроса. Откроется диалоговое окно « Запись макроса ».
Дайте осмысленное имя, чтобы идентифицировать макрос как отчет о конкретном проекте.
Выберите «Эта книга» в разделе « Макрос магазина» , поскольку отчеты будут создаваться только из этой конкретной книги.
Дайте описание вашему макросу и нажмите ОК.
Ваш макрос начинает запись.
-
Создайте новый лист. Это гарантирует, что ваш новый отчет будет на новом листе.
-
Щелкните в любой ячейке, кроме B2, на новом листе.
-
Нажмите в ячейке B2. Это гарантирует, что макрос всегда помещает ваши записанные шаги в B2.
-
Создайте формат для отчета.
-
Заполните статическую информацию для отчета по проекту.
-
Поместите = СЕГОДНЯ () в C3 и = C14 / C12 в ячейку C15.
-
Отформатируйте ячейки с датами.
Создайте новый лист. Это гарантирует, что ваш новый отчет будет на новом листе.
Щелкните в любой ячейке, кроме B2, на новом листе.
Нажмите в ячейке B2. Это гарантирует, что макрос всегда помещает ваши записанные шаги в B2.
Создайте формат для отчета.
Заполните статическую информацию для отчета по проекту.
Поместите = СЕГОДНЯ () в C3 и = C14 / C12 в ячейку C15.
Отформатируйте ячейки с датами.
Прекратите запись макроса.
Остановить запись макроса можно либо с помощью команды « Остановить запись» на ленте на вкладке «ПРОСМОТР» → «Макросы», либо нажав кнопку «Остановить запись макроса», расположенную в левой части панели задач Excel.
Макрос вашего отчета о проекте готов. Сохраните книгу как макрокоманду (с расширением .xlsm).
Запуск макроса
Вы можете создать любое количество отчетов за несколько секунд, просто запустив макрос.
- Нажмите кнопку VIEW на ленте.
- Нажмите Макросы.
- Выберите View Macros из выпадающего списка. Откроется диалоговое окно «Макрос».
- Щелкните макрос Report_ProjectXYZ.
- Нажмите кнопку «Выполнить».
В вашей книге будет создан новый лист, а в ячейке B2 будет создан трафарет отчета.
Макросы Excel – Относительные ссылки
Макросы относительной ссылки записывают смещение от активной ячейки. Такие макросы будут полезны, если вам придется повторять шаги в разных местах на листе.
Предположим, вам необходимо проанализировать данные избирателей, собранных в 280 избирательных округах. Для каждого избирательного округа собраны следующие данные:
- Название избирательного округа.
- Общая численность населения в избирательном округе.
- Количество избирателей в избирательном округе.
- Количество избирателей мужского пола, и
- Количество женщин-избирателей.
Данные предоставляются вам на листе, как указано ниже.
Невозможно проанализировать данные в вышеуказанном формате. Поэтому расположите данные в таблице, как показано ниже.
Если вы пытаетесь расположить данные в вышеуказанном формате –
-
Сбор данных из 280 избирательных округов занимает значительное время
-
Это может быть подвержено ошибкам
-
Это становится мирской задачей, не позволяющей вам сосредоточиться на технических вещах
Сбор данных из 280 избирательных округов занимает значительное время
Это может быть подвержено ошибкам
Это становится мирской задачей, не позволяющей вам сосредоточиться на технических вещах
Решение состоит в том, чтобы записать макрос, чтобы вы могли выполнить задачу не более, чем за несколько секунд. Макрос должен использовать относительные ссылки, так как вы будете перемещаться по строкам во время упорядочивания данных.
Использование относительных ссылок
Чтобы сообщить макрос-рекордеру, что он должен использовать относительные ссылки, сделайте следующее:
-
Нажмите вкладку VIEW на ленте.
-
Нажмите Макросы .
-
Нажмите « Использовать относительные ссылки» .
Нажмите вкладку VIEW на ленте.
Нажмите Макросы .
Нажмите « Использовать относительные ссылки» .
Подготовка формата данных
Первым шагом в организации приведенных выше данных является определение формата данных в таблице с заголовками.
Создайте строку заголовков, как показано ниже.
Запись макроса
Запишите макрос следующим образом –
-
Нажмите Запись макроса.
-
Дайте осмысленное имя, скажем, DataArrange макросу.
-
Тип = строка () – 3 в ячейке B4. Это потому, что номер S. является текущим номером строки – 3 строки над ним.
-
Разрежьте ячейки B5, B6, B7, B8 и B9 и вставьте их в ячейки C4-C8 соответственно.
-
Теперь нажмите на ячейку B5. Ваша таблица выглядит так, как показано ниже.
Нажмите Запись макроса.
Дайте осмысленное имя, скажем, DataArrange макросу.
Тип = строка () – 3 в ячейке B4. Это потому, что номер S. является текущим номером строки – 3 строки над ним.
Разрежьте ячейки B5, B6, B7, B8 и B9 и вставьте их в ячейки C4-C8 соответственно.
Теперь нажмите на ячейку B5. Ваша таблица выглядит так, как показано ниже.
Первый набор данных расположен в первой строке таблицы. Удалите строки B6 – B11 и щелкните в ячейке B5.
Вы можете видеть, что активная ячейка B5 и следующий набор данных будет размещен здесь.
Прекратите запись макроса. Ваш макрос для размещения данных готов.
Запуск макроса
Вам необходимо многократно запускать макрос, чтобы завершить размещение данных в таблице, как указано ниже.
Активная ячейка B5. Запустите макрос. Второй набор данных будет размещен во второй строке таблицы, а активной ячейкой будет B6.
Запустите макрос снова. Третий набор данных будет размещен в третьей строке таблицы, и активной ячейкой станет B7.
Каждый раз, когда вы запускаете макрос, активная ячейка продвигается к следующей строке, облегчая повторение записанных шагов в соответствующих позициях. Это возможно из-за относительных ссылок в макросе.
Запускайте макрос, пока все 280 наборов данных не будут объединены в 280 строк таблицы. Этот процесс занимает несколько секунд, и, поскольку шаги автоматизированы, все упражнение не содержит ошибок.
Макросы Excel – VBA
Excel хранит макросы в виде кода Excel VBA (Visual Basic для приложений). После записи макроса вы можете просмотреть сгенерированный код, изменить его, скопировать его часть и т. Д. Вы даже можете написать макрос самостоятельно, если вам удобно программировать на VBA.
Вы узнаете, как создать макрос, написав код VBA, в главе «Создание макроса с помощью редактора VBA». Вы узнаете, как изменить макрос, отредактировав код VBA в главе «Редактирование макроса». В этой главе вы узнаете о возможностях Excel VBA.
Вкладка «Разработчик» на ленте
Вы можете получить доступ к коду макроса в VBA на вкладке Разработчик на ленте.
Если вы не найдете вкладку «Разработчик» на ленте, вам нужно добавить ее следующим образом:
-
Щелкните правой кнопкой мыши на ленте.
-
Выберите « Настроить ленту» в раскрывающемся списке.
Щелкните правой кнопкой мыши на ленте.
Выберите « Настроить ленту» в раскрывающемся списке.
Откроется диалоговое окно « Параметры Excel ».
-
Выберите « Основные вкладки» в раскрывающемся списке « Настройка ленты» .
-
Установите флажок «Разработчик» в списке «Основные вкладки» и нажмите «ОК». Появится вкладка разработчика.
Выберите « Основные вкладки» в раскрывающемся списке « Настройка ленты» .
Установите флажок «Разработчик» в списке «Основные вкладки» и нажмите «ОК». Появится вкладка разработчика.
Команды разработчика для макросов
Вам нужно знать команды для макросов на вкладке разработчика.
Нажмите вкладку РАЗРАБОТЧИК на ленте. Следующие команды доступны в группе Код –
- Visual Basic
- макрос
- Запись макроса
- Используйте относительные ссылки
- Макрос безопасности
Команда Visual Basic используется для открытия редактора VBA в Excel, а команда Macros – для просмотра, запуска и удаления макросов.
Вы уже изучили команды, отличные от VBA Editor, в предыдущих главах.
VBA Editor
VBA Editor или VBE – это платформа для разработчиков VBA в Excel.
Откройте книгу – MyFirstMacro.xlsm, которую вы сохранили ранее в главе «Создание простого макроса» в этом учебном пособии.
Вы можете открыть VBE любым из двух способов –
Вариант 1. Нажмите Visual Basic в группе «Код» на вкладке «Разработчик» на ленте.
Вариант 2. Нажмите «Редактировать» в диалоговом окне «Макрос», которое появляется при нажатии вкладки «ПРОСМОТР» → «Макросы» → «Просмотр макросов».
VBE появляется в новом окне.
Имя вашего учебника с поддержкой макросов Excel отображается с префиксом Microsoft Visual Basic для приложений.
Вы найдете следующее в VBE –
- Проводник проектов.
- Свойства.
- Модуль окна с кодом.
Проводник проектов
В Project Explorer вы найдете имена проектов VBA. Под проектом вы найдете имена листов и модулей. При щелчке по имени модуля соответствующий код появляется в правой части окна.
Окно свойств
Свойства являются параметрами для объектов VBA. Когда у вас есть объект, такой как командная кнопка, его свойства появятся в окне свойств.
Окно модуля с кодом
Код макроса будет храниться в модуле в VBA. Когда вы выбираете макрос и нажимаете «Редактировать», код макроса появляется в соответствующем окне модуля.
Макросы Excel – Понимание кодов
Когда вы записываете макрос, Excel сохраняет его как код VBA. Вы можете просмотреть этот код в редакторе VBA. Вы можете понять код и изменить его, если у вас есть значительные знания Excel VBA. Вы можете обратиться к учебнику по Excel VBA в этой библиотеке учебников, чтобы понять язык.
Однако вы все равно можете просмотреть код макроса в редакторе Excel VBA и сопоставить его с шагами, которые вы записали в макросе. Вы узнаете, как просматривать код и понимать его для первого макроса, который вы создали в этом руководстве – MyFirstMacro.
Просмотр макрокода в VBA Editor
Чтобы просмотреть код макроса, выполните следующие действия:
- Откройте книгу, в которой вы сохранили макрос.
- Нажмите вкладку VIEW на ленте.
- Нажмите Макросы.
- Выберите View Macros из выпадающего списка.
Откроется диалоговое окно «Макрос».
- Нажмите MyFirstMacro в списке макросов.
- Нажмите кнопку Изменить.
Откроется редактор VBA и появится код макроса MyFirstMacro.
Понимание записанных действий как частей кода
Вы можете просмотреть код макроса и сопоставить их с вашими записанными шагами.
- Начните читать код.
- Сопоставьте код с записанными шагами.
Прокрутите код, чтобы увидеть больше кода. Кроме того, вы можете увеличить окно кода.
Обратите внимание, что код прост. Если вы изучите Excel VBA, вы можете создать макросы, написав код в редакторе VBA.
Вы узнаете, как написать код VBA для создания макроса, в главе «Создание макроса с помощью редактора VBA».
Макросы Excel – Назначение макросов объектам
Предположим, вы создали макрос, который нужно выполнить несколько раз. Например, макросы, которые вы создали для абсолютных ссылок и относительных ссылок. Тогда вам будет легко, если вы сможете запустить макрос с помощью щелчка мыши. Вы можете сделать это, назначив макрос объекту, такому как фигура, графика или элемент управления.
В этой главе вы узнаете, как включить объект в рабочую книгу и назначить ему макрос.
Вспомните макрос, который вы создали, используя относительные ссылки. Макрос организует данные, представленные в одном столбце, в таблицу, чтобы облегчить анализ данных.
Назначение макроса для фигуры
Вы можете вставить фигуру в свой рабочий лист в значимой форме с не требующим пояснений текстом, который при нажатии запускает назначенный ей макрос.
-
Нажмите вкладку INSERT на ленте.
-
Нажмите « Фигуры» в группе «Иллюстрации».
-
Выберите любую из готовых фигур, которые появляются в раскрывающемся списке. Например, форма Блок-схема – Подготовка, так как вы находитесь в процессе подготовки данных.
Нажмите вкладку INSERT на ленте.
Нажмите « Фигуры» в группе «Иллюстрации».
Выберите любую из готовых фигур, которые появляются в раскрывающемся списке. Например, форма Блок-схема – Подготовка, так как вы находитесь в процессе подготовки данных.
Нарисуйте форму и отформатируйте ее.
-
Щелкните правой кнопкой мыши на фигуре и выберите Edit Text из выпадающего списка.
-
Введите текст внутри фигуры – Запустить макрос.
-
Отформатируйте текст.
Щелкните правой кнопкой мыши на фигуре и выберите Edit Text из выпадающего списка.
Введите текст внутри фигуры – Запустить макрос.
Отформатируйте текст.
- Щелкните правой кнопкой мыши на форме.
- Выберите Назначить макрос из выпадающего списка.
Откроется диалоговое окно «Назначить макрос». Щелкните имя макроса, т.е. RelativeMacro, и нажмите ОК.
Макрос присваивается фигуре.
-
Нажмите на ячейку, где вы должны запустить макрос, скажем, B4.
-
Переместите курсор (указатель) на фигуру. Курсор (указатель) изменится на палец.
Нажмите на ячейку, где вы должны запустить макрос, скажем, B4.
Переместите курсор (указатель) на фигуру. Курсор (указатель) изменится на палец.
Теперь нажмите на форму. Макрос будет работать. Просто повторите щелчки мышью, чтобы запустить макрос несколько раз, и вы закончили с задачей размещения данных в таблицу за несколько секунд.
Назначение макроса графике
Вы можете вставить изображение в лист и назначить ему макрос. Графика может быть выбрана для визуализации вашего макроса. Например, у вас может быть график таблицы, представляющий, что макрос упорядочит данные в таблицу.
- Нажмите вкладку INSERT на ленте.
- Нажмите «Изображения» в группе «Иллюстрации».
- Выберите файл, который содержит вашу графику.
Остальные шаги такие же, как и в форме, приведенной в предыдущем разделе.
Назначение макроса элементу управления
Вставка элемента управления VBA и назначение ему макроса делает вашу работу профессиональной. Элементы управления VBA можно вставить на вкладке «Разработчик» на ленте.
-
Нажмите вкладку РАЗРАБОТЧИК на ленте.
-
Нажмите « Вставить» в группе «Элементы управления».
Нажмите вкладку РАЗРАБОТЧИК на ленте.
Нажмите « Вставить» в группе «Элементы управления».
Выберите значок «Кнопка» в разделе « Элементы управления формой» из раскрывающегося списка, как показано на снимке экрана ниже.
-
Щелкните ячейку на листе, в которую вы хотите вставить элемент управления Button. Откроется диалоговое окно «Назначить макрос».
-
Нажмите на имя макроса и нажмите ОК.
Щелкните ячейку на листе, в которую вы хотите вставить элемент управления Button. Откроется диалоговое окно «Назначить макрос».
Нажмите на имя макроса и нажмите ОК.
Кнопка управления с назначенным макросом будет вставлена.
- Щелкните правой кнопкой мыши на кнопке.
- Нажмите Редактировать текст.
- Тип – Запустить макрос.
- Форматировать текст и изменить размер кнопки.
Вы можете запускать макрос любое количество раз, просто нажимая кнопку несколько раз.
Использование элементов управления форм – это простой и эффективный способ взаимодействия с пользователем. Подробнее об этом вы узнаете в главе «Взаимодействие с пользователем».
Макросы Excel – Запуск макроса
Есть несколько способов выполнения макроса в вашей книге. Макрос был бы сохранен в вашей рабочей тетради с макросами или в вашей личной макрокоманде, к которой вы можете получить доступ из любой рабочей книги, как вы узнали ранее.
Вы можете запустить макрос следующими способами:
- Запуск макроса из вкладки «Вид»
- Запуск макроса нажатием клавиши Ctrl и сочетания клавиш
- Запуск макроса нажатием кнопки на панели быстрого доступа
- Запуск макроса нажатием кнопки в пользовательской группе на ленте
- Запуск макроса, нажав на графический объект
- Запуск макроса из вкладки разработчика
- Запуск макроса из редактора VBA
Запуск макроса из вкладки «Просмотр»
Вы уже научились запускать макрос на вкладке «Вид» на ленте. Краткий обзор –
- Нажмите вкладку VIEW на ленте.
- Нажмите Макросы.
- Выберите View Macros из выпадающего списка.
Откроется диалоговое окно «Макрос».
- Нажмите на имя макроса.
- Нажмите кнопку «Выполнить».
Запуск макроса с помощью сочетания клавиш
Вы можете назначить сочетание клавиш (Ctrl + клавиша) для макроса. Вы можете сделать это во время записи макроса в диалоговом окне « Создание макроса ». В противном случае вы можете добавить это позже в диалоговом окне « Параметры макроса ».
Добавление сочетания клавиш во время записи макроса
- Нажмите на вкладку VIEW.
- Нажмите Макросы.
- Выберите Record Macro из выпадающего списка.
Откроется диалоговое окно «Создание макроса».
- Введите имя макроса
- Введите букву, скажем q, в поле рядом с Ctrl + под сочетанием клавиш.
Добавление сочетания клавиш в параметры макроса
- Нажмите на вкладку VIEW.
- Нажмите Макросы.
- Выберите View Macros из выпадающего списка.
Откроется диалоговое окно «Макрос».
- Выберите имя макроса.
- Нажмите кнопку «Параметры».
Откроется диалоговое окно «Параметры макроса». Введите букву, скажем q, в поле рядом с Ctrl + под сочетанием клавиш. Нажмите ОК.
Чтобы запустить макрос с помощью сочетания клавиш, одновременно нажмите клавишу Ctrl и клавишу q. Макрос будет работать.
Примечание. Для сочетания клавиш макроса можно использовать любые строчные или прописные буквы. Если вы используете комбинацию клавиш Ctrl + буква, которая является сочетанием клавиш Excel, вы переопределите ее. Примеры включают в себя Ctrl + C, Ctrl + V, Ctrl + X и т. Д. Следовательно, используйте вашу юрисдикцию при выборе букв.
Запуск макроса через панель быстрого доступа
Вы можете добавить кнопку макроса на панель быстрого доступа и запустить макрос, щелкнув ее. Эта опция будет полезна, когда вы храните свои макросы в личной книге макросов. Добавленная кнопка появится на панели инструментов быстрого доступа в любой рабочей книге, которую вы откроете, что упростит запуск макроса.
Предположим, у вас есть макрос с именем MyMacro в вашей личной книге макросов.
Чтобы добавить кнопку макроса на панель быстрого доступа, выполните следующие действия:
-
Щелкните правой кнопкой мыши на панели быстрого доступа.
-
Выберите « Настроить панель быстрого доступа» в раскрывающемся списке.
Щелкните правой кнопкой мыши на панели быстрого доступа.
Выберите « Настроить панель быстрого доступа» в раскрывающемся списке.
Откроется диалоговое окно «Параметры Excel». Выберите Macros из выпадающего списка под категорией – Выберите команды из .
Список макросов появляется в разделе Макросы.
- Нажмите PERSONAL.XLSB! MyMacro.
- Нажмите кнопку Добавить.
Имя макроса отображается справа с изображением кнопки макроса.
Чтобы изменить изображение кнопки макроса, выполните следующие действия:
- Нажмите на имя макроса в правом поле.
- Нажмите кнопку Изменить.
Откроется диалоговое окно « Изменить кнопку ». Выберите один символ, чтобы установить его в качестве значка кнопки.
Измените отображаемое имя, которое отображается, когда вы помещаете указатель на изображение кнопки на панели быстрого доступа, на значимое имя, например, «Запуск MyMacro» для этого примера. Нажмите ОК.
Имя макроса и символ значка изменяются на правой панели. Нажмите ОК.
Кнопка макроса отображается на панели быстрого доступа, а имя макроса отображается, когда на нее наведен указатель.
Чтобы запустить макрос, просто нажмите кнопку макроса на панели быстрого доступа.
Запуск макроса в пользовательской группе
Вы можете добавить пользовательскую группу и пользовательскую кнопку на ленте и назначить свой макрос этой кнопке.
- Щелкните правой кнопкой мыши на ленте.
- Выберите «Настроить ленту» в раскрывающемся списке.
Откроется диалоговое окно « Параметры Excel ».
- Выберите «Основные вкладки» в разделе «Настройка ленты».
- Нажмите Новая вкладка.
Новая вкладка (Custom) появится в списке основных вкладок.
- Нажмите Новая вкладка (Custom).
- Нажмите кнопку «Новая группа».
Новая группа (Пользовательская) отображается в разделе Новая вкладка (Пользовательская).
- Нажмите Новая вкладка (Custom).
- Нажмите кнопку Переименовать.
Откроется диалоговое окно Rename. Введите имя для пользовательской вкладки, которая отображается на вкладке «Основные» на ленте, скажем – «Мои макросы» и нажмите «ОК».
Примечание. Все основные вкладки на ленте написаны заглавными буквами. Вы можете по своему усмотрению использовать прописные или строчные буквы. Я выбрал строчные буквы с заглавными буквами, чтобы они выделялись на стандартных вкладках.
Имя новой вкладки изменится на Мои макросы (Пользовательский).
- Нажмите Новая группа (Пользовательская).
- Нажмите кнопку Переименовать.
Откроется диалоговое окно Rename . Введите имя группы в диалоговом окне «Отображаемое имя» и нажмите «ОК».
Имя новой группы изменится на Персональные макросы (пользовательские).
Нажмите Макросы на левой панели под заголовком Выбрать команды из .
- Выберите имя вашего макроса, скажем – MyFirstMacro из списка макросов.
- Нажмите кнопку Добавить.
Макрос будет добавлен в группу «Персональные макросы» (Custom).
- Нажмите Мои макросы (Пользовательские) в списке.
- Нажмите стрелки, чтобы переместить вкладку вверх или вниз.
Положение вкладки в списке основных вкладок определяет, где она будет размещена на ленте. Нажмите ОК.
Ваша пользовательская вкладка – Мои макросы появится на ленте.
Нажмите на вкладку – Мои макросы. На ленте появится группа «Личные макросы». MyFirstMacro появляется в группе «Персональные макросы». Чтобы запустить макрос, просто нажмите MyFirstMacro в группе «Персональные макросы».
Запуск макроса нажатием на объект
Вы можете вставить объект, такой как фигура, графический элемент или элемент управления VBA, в свой рабочий лист и назначить ему макрос. Чтобы запустить макрос, просто щелкните объект.
Подробнее о запуске макроса с использованием объектов см. Главу «Назначение макросов объектам».
Запуск макроса на вкладке разработчика
Вы можете запустить макрос на вкладке Разработчик.
- Перейдите на вкладку «Разработчик» на ленте.
- Нажмите Макросы.
Откроется диалоговое окно «Макрос». Щелкните по имени макроса и затем нажмите «Выполнить».
Запуск макроса из редактора VBA
Вы можете запустить макрос из редактора VBA следующим образом:
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Создание макроса с помощью редактора VBA
Вы можете создать макрос, написав код в редакторе VBA. В этой главе вы узнаете, где и как написать код для макроса.
VBA объекты и модули
Прежде чем приступить к написанию макроса, разберитесь с объектами и модулями VBA.
- Откройте книгу с поддержкой макросов первым макросом.
- Нажмите вкладку РАЗРАБОТЧИК на ленте.
- Нажмите Visual Basic в группе кода.
Откроется окно редактора VBA.
В окне Projects Explorer вы увидите следующее:
-
Книга с поддержкой макросов – MyFirstMacro.xlsm отображается как проект VBA.
-
Все рабочие листы и рабочая тетрадь отображаются в виде объектов Microsoft Excel в рамках проекта.
-
Модуль 1 появляется в разделе Модули. Ваш код макроса находится здесь.
-
Нажмите Module1.
-
Перейдите на вкладку «Вид» на ленте.
-
Выберите Код из выпадающего списка.
Книга с поддержкой макросов – MyFirstMacro.xlsm отображается как проект VBA.
Все рабочие листы и рабочая тетрадь отображаются в виде объектов Microsoft Excel в рамках проекта.
Модуль 1 появляется в разделе Модули. Ваш код макроса находится здесь.
Нажмите Module1.
Перейдите на вкладку «Вид» на ленте.
Выберите Код из выпадающего списка.
Появляется код вашего макроса.
Создание макроса путем кодирования
Затем создайте второй макрос в той же книге – на этот раз написав код VBA.
Вы можете сделать это в два этапа –
-
Вставьте командную кнопку.
-
Напишите код с указанием действий, которые должны выполняться при нажатии кнопки команды.
Вставьте командную кнопку.
Напишите код с указанием действий, которые должны выполняться при нажатии кнопки команды.
Вставка командной кнопки
-
Создайте новый лист.
-
Нажмите на новый лист.
-
Нажмите кнопку РАЗРАБОТЧИК на ленте.
-
Нажмите «Вставить» в группе «Элементы управления».
-
Выберите значок кнопки в элементах управления формы .
Создайте новый лист.
Нажмите на новый лист.
Нажмите кнопку РАЗРАБОТЧИК на ленте.
Нажмите «Вставить» в группе «Элементы управления».
Выберите значок кнопки в элементах управления формы .
- Нажмите на листе, где вы хотите разместить командную кнопку.
- Откроется диалоговое окно «Назначить макрос».
Откроется редактор Visual Basic.
Вы увидите следующее –
- Новый модуль – Module2 вставлен в Project Explorer.
- Появится окно кода с заголовком Module2 (Код).
- Подпроцедура Button1_Click () вставлена в код Module2.
Кодирование макроса
Ваше кодирование наполовину сделано самим редактором VBA.
Например, введите MsgBox «С наилучшими пожеланиями!» В подпроцедуре Button1_Click (). Окно сообщения с заданной строкой будет отображаться при нажатии кнопки команды.
Это оно! Ваш код макроса готов к запуску. Как вам известно, код VBA не требует компиляции, так как работает с интерпретатором.
Запуск макроса из редактора VBA
Вы можете проверить свой макрос-код из самого редактора VBA.
-
Перейдите на вкладку «Выполнить» на ленте.
-
Выберите Run Sub / UserForm из выпадающего списка. Окно сообщения с введенной вами строкой появится на вашем листе.
Перейдите на вкладку «Выполнить» на ленте.
Выберите Run Sub / UserForm из выпадающего списка. Окно сообщения с введенной вами строкой появится на вашем листе.
Вы можете видеть, что кнопка выбрана. Нажмите OK в окне сообщения. Вы вернетесь к редактору VBA.
Запуск макроса из рабочего листа
Вы можете запустить макрос, который вы закодировали, сколько угодно раз с листа.
- Нажмите где-нибудь на листе.
- Нажмите кнопку. Окно сообщения появляется на листе.
Вы создали макрос, написав код VBA. Как вы можете заметить, кодировка VBA проста.
Макросы Excel – Редактирование
Вы узнали, как писать код макроса в редакторе VBA из предыдущей главы. Вы можете редактировать код макроса, переименовывать макрос и удалять макрос.
Если вы осваиваете Excel VBA, написание кода или изменение кода для макроса – тривиальная задача. Вы можете редактировать код макроса, как хотите. Если вы хотите внести всего несколько простых изменений в код макроса, вы можете даже скопировать код макроса из одного места в другое.
Копирование макроса
Вы создали два макроса – MyFirstMacro и Button1_Click в рабочей книге с поддержкой макросов MyFirstMacro.xlsm. Вы создали первый макрос, записав шаги, а второй макрос написав код. Вы можете скопировать код из первого макроса во второй макрос.
-
Откройте книгу MyFirstMacro.xlsm.
-
Перейдите на вкладку «Разработчик» на ленте.
-
Нажмите Visual Basic. Откроется редактор Visual Basic.
-
Откройте код для Module1 (код макроса MyFirstMacro) и Module2 (код макроса Button1_Click ()).
-
Перейдите на вкладку «Окно» на ленте.
-
Выберите Tile Horizontally из выпадающего списка.
Откройте книгу MyFirstMacro.xlsm.
Перейдите на вкладку «Разработчик» на ленте.
Нажмите Visual Basic. Откроется редактор Visual Basic.
Откройте код для Module1 (код макроса MyFirstMacro) и Module2 (код макроса Button1_Click ()).
Перейдите на вкладку «Окно» на ленте.
Выберите Tile Horizontally из выпадающего списка.
Вы можете просмотреть код двух макросов в плиточных окнах.
-
Скопируйте строку MsgBox в коде Module2.
-
Вставьте его выше этой линии.
-
Изменить строку как –
MsgBox «Привет, мир!»
-
Скопируйте следующий код из Module1.
Скопируйте строку MsgBox в коде Module2.
Вставьте его выше этой линии.
Изменить строку как –
MsgBox «Привет, мир!»
Скопируйте следующий код из Module1.
Вставьте его в код Module2 между двумя строками кода MsgBox.
-
Нажмите значок Сохранить, чтобы сохранить код.
-
Нажмите кнопку на листе Excel. Появится окно сообщения с сообщением – Hello World! Нажмите ОК.
Нажмите значок Сохранить, чтобы сохранить код.
Нажмите кнопку на листе Excel. Появится окно сообщения с сообщением – Hello World! Нажмите ОК.
Появятся данные таблицы (в соответствии с кодом, который вы скопировали), и появится окно с сообщением – С наилучшими пожеланиями!
Вы можете изменить код всего за несколько шагов. Это самая простая задача для начинающего.
Переименование макроса
Предположим, что вы хотите запустить отредактированный макрос с любого рабочего листа, кроме того, который имеет командную кнопку. Вы можете сделать это независимо от нажатия кнопки, переименовав макрос.
- Нажмите вкладку VIEW на ленте.
- Нажмите Макросы.
- Выберите View Macros из выпадающего списка.
Откроется диалоговое окно «Макрос».
- Нажмите имя макроса – Button1_Click.
- Нажмите кнопку Изменить.
Код макроса появляется в редакторе VBA.
Измените имя, отображаемое в строке Sub, с Button1_Click на RenamedMacro. Оставьте Sub и круглые скобки как они есть.
Откройте диалоговое окно «Макрос». Имя макроса отображается при переименовании.
- Нажмите RenamedMacro.
- Нажмите кнопку «Выполнить». Макрос работает. Теперь нажатие кнопки не требуется.
Удаление макроса
Вы можете удалить макрос, который вы записали или закодировали.
- Откройте диалоговое окно «Макросы».
- Нажмите на имя макроса.
- Нажмите кнопку Удалить.
Появится сообщение с подтверждением удаления .
Нажмите Да, если вы уверены, что хотите удалить макрос. В противном случае нажмите Нет.
Макросы Excel – пользовательские формы
Иногда вам, возможно, придется собирать информацию повторно от других. Excel VBA предоставляет вам простой способ решения этой задачи – UserForm . Как и любая другая форма, которую вы заполняете, UserForm упрощает понимание того, какую информацию следует предоставлять. Пользовательская форма удобна для пользователя, так как предоставляемые элементы управления не требуют пояснений и сопровождаются дополнительными инструкциями, если это необходимо.
Основным преимуществом UserForm является то, что вы можете сэкономить время, которое вы тратите на то, как и как информация должна быть заполнена.
Создание пользовательской формы
Чтобы создать пользовательскую форму, выполните следующие действия:
- Нажмите вкладку РАЗРАБОТЧИК на ленте.
- Нажмите Visual Basic. Откроется окно Visual Basic для книги.
- Нажмите Вставить,
- Выберите UserForm из выпадающего списка.
Пользовательская форма появляется в правой части окна.
Понимание пользовательской формы
Разверните окно UserForm.xlsx – UserForm1.
Вы находитесь в режиме дизайна сейчас. Вы можете вставить элементы управления в пользовательскую форму и написать код для соответствующих действий. Элементы управления доступны в панели инструментов. Свойства UserForm находятся в окне свойств. UserForm1 (подпись UserForm) указывается в разделе «Формы» в проводнике проектов.
- Измените заголовок UserForm на Project Report – Daily в окне свойств.
- Измените имя пользовательской формы на ProjectReport.
Изменения отражаются в пользовательской форме, свойствах и проводнике проекта.
Элементы управления в панели инструментов
Пользовательская форма будет иметь разные компоненты. Когда вы нажимаете на любой из компонентов, вам либо будут предоставлены инструкции о том, что и как должна быть предоставлена информация, либо вам будут предоставлены варианты (варианты) для выбора. Все это обеспечивается с помощью элементов управления ActiveX в панели инструментов пользовательской формы.
Excel предоставляет два типа элементов управления – элементы управления формы и элементы управления ActiveX. Вы должны понимать разницу между этими двумя типами элементов управления.
Элементы управления формой
Элементы управления формой – это оригинальные элементы управления Excel, которые совместимы с более ранними версиями Excel, начиная с Excel версии 5.0. Элементы управления формой также предназначены для использования на листах макроса XLM.
Вы можете запускать макросы с помощью элементов управления формы. Вы можете назначить существующий макрос элементу управления, или написать или записать новый макрос. При нажатии на элемент управления макрос. Вы уже научились вставлять командную кнопку из элементов управления формы на листе для запуска макроса. Однако эти элементы управления не могут быть добавлены в пользовательскую форму.
Элементы управления ActiveX
Элементы управления ActiveX могут использоваться в пользовательских формах VBA. Элементы управления ActiveX имеют широкие свойства, которые можно использовать для настройки их внешнего вида, поведения, шрифтов и других характеристик.
У вас есть следующие элементы управления ActiveX в UserForm ToolBox –
- Указатель
- этикетка
- Текстовое окно
- Поле со списком
- ListBox
- CheckBox
- OptionButton
- Рамка
- Кнопка-переключатель
- CommandButton
- TabStrip
- MultiPage
- Полоса прокрутки
- в полях ввода
- Образ
В дополнение к этим элементам управления Visual Basic предоставляет функцию MsgBox, которую можно использовать для отображения сообщений и / или запроса пользователя о действии.
В следующих нескольких разделах вы поймете эти элементы управления и MsgBox. Затем вы сможете выбрать, какой из этих элементов управления требуется для разработки пользовательской формы.
этикетка
Вы можете использовать ярлыки для идентификации, отображая описательный текст, такой как заголовки, подписи и / или краткие инструкции.
пример
Текстовое окно
Вы можете использовать TextBox в виде прямоугольника для ввода, просмотра или редактирования текста. Вы также можете использовать TextBox в качестве статического текстового поля, которое представляет информацию только для чтения.
пример
Список
Вы можете использовать список для отображения списка одного или нескольких элементов текста, из которых пользователь может выбирать. Используйте список для отображения большого количества вариантов, которые различаются по количеству или содержанию.
- Вставьте ListBox в пользовательскую форму.
- Нажмите на список.
- Введите ProjectCodes для Name в окне свойств ListBox.
Есть три типа списков –
-
Поле со списком с одним выбором – Поле со списком с одним выбором включает только один выбор. В этом случае поле списка напоминает группу кнопок выбора, за исключением того, что поле списка может более эффективно обрабатывать большое количество элементов.
-
Список выбора множественного выбора – Список списка множественного выбора включает либо один выбор, либо смежные (смежные) варианты.
-
Поле со списком расширенного выбора – Поле со списком расширенного выбора позволяет выбрать один, непрерывный и несмежный (или несвязанный) выбор.
Поле со списком с одним выбором – Поле со списком с одним выбором включает только один выбор. В этом случае поле списка напоминает группу кнопок выбора, за исключением того, что поле списка может более эффективно обрабатывать большое количество элементов.
Список выбора множественного выбора – Список списка множественного выбора включает либо один выбор, либо смежные (смежные) варианты.
Поле со списком расширенного выбора – Поле со списком расширенного выбора позволяет выбрать один, непрерывный и несмежный (или несвязанный) выбор.
Вы можете выбрать один из этих типов списков в окне свойств.
- Щелкните правой кнопкой мыши на пользовательской форме.
- Выберите View Code из выпадающего списка. Откроется окно кода UserForm.
- Нажмите Инициализировать в правом верхнем углу окна кода.
- Введите следующее в Private Sub UserForm_Initialize ().
ProjectCodes.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Далее вы можете написать код для действий по выбору элемента в списке. В противном случае вы можете просто отобразить выбранный текст, как в случае заполнения кода проекта в отчете.
Поле со списком
Вы можете использовать ComboBox, который объединяет текстовое поле со списком для создания выпадающего списка. Поле со списком является более компактным, чем поле со списком, но требует, чтобы пользователь щелкнул стрелку вниз, чтобы отобразить список элементов. Используйте поле со списком, чтобы выбрать только один элемент из списка.
- Вставьте ComboBox в пользовательскую форму.
- Нажмите ComboBox.
- Введите ProjectCodes2 для имени в окне свойств ComboBox.
- Щелкните правой кнопкой мыши на пользовательской форме.
- Выберите View Code из выпадающего списка.
- Откроется окно кода UserForm.
Введите следующее, как показано ниже.
ProjectCodes2.List = Array ("Proj2016-1", "Proj2016-2", "Proj2016-3", "Proj20164", "Proj2016-5")
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Нажмите стрелку вниз, чтобы отобразить список элементов.
Нажмите на нужный элемент, скажем, Project2016-5. Выбранная опция будет отображаться в поле со списком.
CheckBox
Вы можете использовать флажки, чтобы выбрать один или несколько параметров, которые отображаются, щелкая в полях. Параметры будут иметь метки, и вы сможете четко визуализировать, какие параметры выбраны.
Флажок может иметь два состояния:
- Выбрано (включено), помечено галочкой в поле
- Очищено (выключено), обозначено прозрачной рамкой
Вы можете использовать флажки для выбора параметров в комбинированном окне, чтобы сэкономить место. В этом случае флажок также может иметь третье состояние –
-
Смешанный, означающий комбинацию включенных и выключенных состояний, обозначенную черной точкой в поле. Это будет отображаться, чтобы указать несколько вариантов выбора в комбинированном окне с флажками.
-
Установите флажки в пользовательской форме, как показано ниже.
Смешанный, означающий комбинацию включенных и выключенных состояний, обозначенную черной точкой в поле. Это будет отображаться, чтобы указать несколько вариантов выбора в комбинированном окне с флажками.
Установите флажки в пользовательской форме, как показано ниже.
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
- Нажмите на поля для выбранных вами вариантов.
OptionButton
Вы можете использовать кнопку выбора, также называемую переключателем, чтобы сделать один выбор в пределах ограниченного набора взаимоисключающих вариантов. Кнопка выбора обычно содержится в групповом поле или рамке.
Кнопка выбора представлена маленьким кружком. Кнопка выбора может иметь одно из следующих двух состояний:
- Выбран (включен), обозначен точкой в круге
- Сброс (выключен), обозначается пробелом
Рамка
Вы можете использовать элемент управления кадром, также называемый групповым блоком, для группировки связанных элементов управления в один визуальный блок. Как правило, кнопки выбора, флажки или тесно связанное содержимое группируются в элементе управления фреймом.
Элемент управления фреймом представлен прямоугольным объектом с необязательной меткой.
-
Вставьте рамку с надписью «Выбор».
-
Вставьте две кнопки с надписями «Да» и «Нет» в элементе управления кадром. Опции Да и Нет являются взаимоисключающими.
Вставьте рамку с надписью «Выбор».
Вставьте две кнопки с надписями «Да» и «Нет» в элементе управления кадром. Опции Да и Нет являются взаимоисключающими.
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
- Нажмите на выбранный вами вариант.
Кнопка-переключатель
Вы можете использовать кнопку переключения, чтобы указать состояние, например, Да или Нет, или режим, например, включить или выключить. Кнопка чередуется между включенным и отключенным состоянием при нажатии.
Вставьте кнопку переключения на пользовательскую форму, как показано ниже –
-
Перейдите на вкладку «Выполнить» на ленте.
-
Выберите Run Sub / UserForm из выпадающего списка. По умолчанию кнопка переключения будет в активированном состоянии.
Перейдите на вкладку «Выполнить» на ленте.
Выберите Run Sub / UserForm из выпадающего списка. По умолчанию кнопка переключения будет в активированном состоянии.
Нажмите кнопку переключения. Кнопка переключения будет отключена.
Если вы снова нажмете кнопку переключения, она будет включена.
CommandButton
Вы можете использовать командную кнопку для запуска макроса, который выполняет некоторые действия, когда пользователь нажимает на него. Вы уже научились использовать командную кнопку на рабочем листе для запуска макроса.
Командная кнопка также называется кнопкой. Вставьте командную кнопку в пользовательскую форму, как показано ниже –
- Щелкните правой кнопкой мыши на кнопке.
- Введите следующий код в sub Commandbutton1_click ().
ProjectCodes2.DropDown
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Нажмите кнопку команды. Откроется выпадающий список со списком, так как это действие, которое вы написали в коде.
TabStrip
Вы можете вставить вкладку, которая напоминает вкладки Excel в пользовательской форме.
Полоса прокрутки
Вы можете использовать полосу прокрутки для прокрутки диапазона значений, щелкая стрелки прокрутки или перетаскивая поле прокрутки.
Вставьте полосу прокрутки в пользовательскую форму, нарисовав ее в нужном месте, и отрегулируйте длину полосы прокрутки.
- Щелкните правой кнопкой мыши по полосе прокрутки.
- Выберите View Code из выпадающего списка. Откроется окно кода.
- Добавьте следующую строку под sub ScrollBar1_Scroll ().
TextBox2.Text = "Scrolling Values"
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
Перетащите поле прокрутки. Текст – Значения прокрутки будут отображаться в текстовом поле, как вы указали его в качестве действия для прокрутки полосы прокрутки.
MsgBox ()
Вы можете использовать функцию MsgBox () для отображения сообщения, когда вы нажимаете на что-то. Это может быть руководство или некоторая информация или предупреждение или предупреждение об ошибке.
Например, вы можете отобразить сообщение о том, что значения прокручиваются, когда вы начинаете прокручивать поле прокрутки.
Отображается значок окна сообщения
Вы можете использовать значки сообщений в окне, которые изображают конкретное сообщение. У вас есть несколько значков сообщений в соответствии с вашими целями –
- Введите следующий код в ScrollBar1_scroll.
MsgBox "Select Ok or Cancel", vbOKCancel, "OK - Cancel Message" MsgBox "It's an Error!", vbCritical, "Run time result" MsgBox "Why this value", vbQuestion, "Run time result" MsgBox "Value Been for a Long Time", vbInformation, "Run time result" MsgBox "Oh Is it so", vbExclamation, "Run time result"
- Перейдите на вкладку «Выполнить» на ленте.
- Выберите Run Sub / UserForm из выпадающего списка.
- Перетащите поле прокрутки.
Вы получите следующие сообщения последовательно.
Разработка UserForm
Теперь у вас есть понимание различных элементов управления, которые вы можете использовать в пользовательской форме. Выберите элементы управления, сгруппируйте их, если необходимо, и расположите их в пользовательской форме в соответствии с некоторой значимой последовательностью. Запишите необходимые действия в виде кода, соответствующего соответствующим элементам управления.
Обратитесь к учебнику VBA в этой библиотеке учебников для примера UserForm.
Макросы Excel – отладка кода
Вы узнали, что макрос хранится в виде кода VBA в Excel. Вы также узнали, что можете напрямую написать код для создания макроса в редакторе VBA. Однако, как и в случае с любым кодом, даже код макроса может иметь дефекты, и макрос может работать не так, как вы ожидали.
Это требует изучения кода, чтобы найти дефекты и исправить их. Термин, который используется для этого действия в разработке программного обеспечения, является отладкой.
Отладка VBA
Редактор VBA позволяет приостановить выполнение кода и выполнить любую необходимую задачу отладки. Ниже приведены некоторые из задач отладки, которые вы можете выполнить.
- Пошаговое выполнение кода
- Использование точек останова
- Резервное копирование или движение вперед в коде
- Не переступая через каждую строку кода
- Запрашивать что-либо во время пошагового выполнения кода
- Остановка казни
Это лишь некоторые из задач, которые вы можете выполнять в среде отладки VBA.
Пошаговое выполнение кода
Первое, что вам нужно сделать для отладки, это пройти по коду при его выполнении. Если у вас есть представление о том, какая часть кода, вероятно, создает дефект, вы можете перейти к этой строке кода. В противном случае вы можете выполнить код построчно, выполнить резервное копирование или продвинуться вперед в коде.
Вы можете перейти к коду из диалогового окна «Макрос» в рабочей книге или из самого редактора VBA.
Войдя в код из рабочей книги
Чтобы войти в код из рабочей книги, выполните следующие действия:
- Нажмите вкладку VIEW на ленте.
- Нажмите Макросы.
- Выберите View Macros из выпадающего списка.
Откроется диалоговое окно «Макрос».
- Нажмите на имя макроса.
- Нажмите кнопку Шаг в.
Откроется редактор VBA и в окне кода появится код макроса. Первая строка в коде макроса будет выделена желтым цветом.
Шаг в код от редактора VBA
Чтобы войти в код из редактора VBA, выполните следующие действия:
- Нажмите вкладку РАЗРАБОТЧИК на ленте.
- Нажмите Visual Basic. Откроется редактор VBA.
- Нажмите на модуль, который содержит код макроса.
Код макроса появится в окне кода.
-
Перейдите на вкладку «Отладка» на ленте.
-
Выберите Step into из выпадающего списка.
Перейдите на вкладку «Отладка» на ленте.
Выберите Step into из выпадающего списка.
Первая строка в коде макроса будет выделена. Код находится в режиме отладки, и параметры в раскрывающемся списке «Отладка» станут активными.
Резервное копирование или движение вперед в коде
Вы можете двигаться вперед или назад в коде, выбрав Step Over или Step Out.
Не переступая через каждую строку кода
Вы можете избежать пошагового прохождения каждого строкового кода, если вы идентифицируете потенциальную часть кода, которую необходимо обсудить, выбрав Run to Cursor.
Использование точек останова
Кроме того, вы можете установить точки останова в определенных строках кода и выполнить код, наблюдая результаты в каждой точке останова. Вы можете переключать точку останова и очищать все точки останова, если и когда это необходимо.
Использование часов
Вы можете добавить часы во время отладки, чтобы оценить выражение и остановить выполнение, когда переменная достигает определенного значения. Это означает, что вы настраиваете выражение наблюдения, которое будет отслеживаться до тех пор, пока оно не станет истинным, а затем макрос остановится и оставит вас в режиме прерывания. VBA предоставляет вам несколько типов часов на выбор, чтобы выполнить то, что вы ищете.
Остановка казни
Во время отладки, в любой момент, если вы нашли подсказку о том, что идет не так, вы можете остановить выполнение, чтобы расшифровать его дальше.
Если вы опытный разработчик, терминология отладки вам знакома, а опции отладки в редакторе VBA сделают вашу жизнь проще. Даже в противном случае освоение этого навыка не займет много времени, если вы изучите VBA и поймете код.
Макросы Excel – Настройка макроса
Вы можете записать макрос и сохранить его с именем Auto_Open, чтобы запускать его всякий раз, когда открываете книгу, в которой содержится этот макрос.
Вы также можете написать код VBA для той же цели с помощью события Open рабочей книги. Событие Open запускает код в подпроцедуре Workbook_Open () каждый раз, когда вы открываете книгу.
Запись макроса Auto_Open
Вы можете записать макрос Auto_Run следующим образом –
- Нажмите вкладку VIEW на ленте.
- Нажмите Макросы.
- Нажмите Запись макроса. Откроется диалоговое окно «Запись макроса».
- Введите Auto_Run в качестве имени макроса.
- Введите описание и нажмите ОК.
- Начните запись макроса.
- Остановить запись.
- Сохранить рабочую книгу как макрокоманду.
- Закройте рабочую книгу.
- Откройте рабочую книгу. Макрос Auto_Run запустится автоматически.
Если вы хотите, чтобы Excel запускался без запуска макроса Auto_Open, удерживайте клавишу SHIFT при запуске Excel.
Ограничения Auto_Open Macro
Ниже приведены ограничения макроса Auto_Open:
-
Если рабочая книга, в которой вы сохранили макрос Auto_Open, содержит код для события Open книги, код события Open переопределит действия в макросе Auto_Open.
-
Макрос Auto_Open игнорируется, когда книга открывается при запуске кода, использующего метод Open.
-
Макрос Auto_Open запускается до открытия любых других книг. Следовательно, если вы записываете действия, которые вы хотите, чтобы Excel выполнял в книге Book1 по умолчанию или в книге, загруженной из папки XLStart, макрос Auto_Open завершится ошибкой при перезапуске Excel, поскольку макрос запускается до открытия книг по умолчанию и запуска книг. ,
Если рабочая книга, в которой вы сохранили макрос Auto_Open, содержит код для события Open книги, код события Open переопределит действия в макросе Auto_Open.
Макрос Auto_Open игнорируется, когда книга открывается при запуске кода, использующего метод Open.
Макрос Auto_Open запускается до открытия любых других книг. Следовательно, если вы записываете действия, которые вы хотите, чтобы Excel выполнял в книге Book1 по умолчанию или в книге, загруженной из папки XLStart, макрос Auto_Open завершится ошибкой при перезапуске Excel, поскольку макрос запускается до открытия книг по умолчанию и запуска книг. ,
Если вы столкнулись с каким-либо из этих ограничений, вместо записи макроса Auto_Open необходимо написать код для события Open, как описано в следующем разделе.
Код VBA для открытого события рабочей книги
Вы можете написать код, который будет выполняться при открытии книги. VBA предоставляет вам событие open, которое включает в себя процедуру VBA для действий, которые необходимо выполнить при открытии рабочей книги.
Откройте книгу, в которой вы сохранили макрос, который вы написали для абсолютных ссылок – Report_ProjectXYZ. Когда этот макрос выполняется, новый лист будет добавлен в рабочую книгу, а структура отчета проекта появится на новом листе.
Вы можете написать код макроса, который будет выполнять эти действия при открытии книги. Это означает, что когда вы откроете рабочую книгу «Отчет по проекту», вам будет готов новый рабочий лист со структурой отчета для ввода деталей.
Следуйте приведенной ниже процедуре в редакторе VBA.
-
Дважды щелкните ThisWorkbook в Projects Explorer.
-
В окне кода выберите Workbook в левом раскрывающемся списке и Open в правом раскрывающемся списке. Sub Workbook_Open () появляется.
Дважды щелкните ThisWorkbook в Projects Explorer.
В окне кода выберите Workbook в левом раскрывающемся списке и Open в правом раскрывающемся списке. Sub Workbook_Open () появляется.
-
Нажмите Модули в проводнике проектов.
-
Дважды щелкните по имени модуля, содержащего код макроса.
-
Скопируйте код макроса из модуля и вставьте его в Sub WorkBook_Open ().
Нажмите Модули в проводнике проектов.
Дважды щелкните по имени модуля, содержащего код макроса.
Скопируйте код макроса из модуля и вставьте его в Sub WorkBook_Open ().
Сохраните книгу с поддержкой макросов. Откройте его снова. Макрос запускается и вставляется новый лист со структурой отчета.
Изменить код модуля макросом |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |