код vba в excel что это

Справочник по VBA для Office

Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Программирование на VBA в Office

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

Набор приложений Office содержит полный комплект компонентов. Существует множество разных способов создания, форматирования и управления документами, электронной почтой, базами данных, формами, электронными таблицами и презентациями.

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

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

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

VBA Excel. Начинаем программировать с нуля

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

Начинаем программировать с нуля
Часть 1. Первая программа
[Часть 1] [Часть 2] [Часть 3] [Часть 4]

Знакомство с редактором VBA

код vba в excel что это. picture56. код vba в excel что это фото. код vba в excel что это-picture56. картинка код vba в excel что это. картинка picture56. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

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

код vba в excel что это. picture57. код vba в excel что это фото. код vba в excel что это-picture57. картинка код vba в excel что это. картинка picture57. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

После нажатия кнопки «Module» вы увидите ссылку на него, появившуюся в проводнике слева.

Первая программа на VBA Excel

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

код vba в excel что это. picture58. код vba в excel что это фото. код vba в excel что это-picture58. картинка код vba в excel что это. картинка picture58. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

В результате откроется окно добавления шаблона процедуры (Sub).

код vba в excel что это. picture59. код vba в excel что это фото. код vba в excel что это-picture59. картинка код vba в excel что это. картинка picture59. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

код vba в excel что это. picture60. код vba в excel что это фото. код vba в excel что это-picture60. картинка код vba в excel что это. картинка picture60. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Имя процедуры может быть написано как на латинице, так и на кириллице, может содержать цифры и знак подчеркивания. Оно обязательно должно начинаться с буквы и не содержать пробелы, вместо которых следует использовать знак подчеркивания.

код vba в excel что это. picture61. код vba в excel что это фото. код vba в excel что это-picture61. картинка код vba в excel что это. картинка picture61. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Функция MsgBox выводит информационное сообщение с указанным текстом. В нашем примере – это «Привет».

код vba в excel что это. picture62. код vba в excel что это фото. код vba в excel что это-picture62. картинка код vba в excel что это. картинка picture62. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.
Если вы увидели такое сообщение, как на изображении, то, поздравляю – вы написали свою первую программу!

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

Чтобы использовать в процедуре переменные, их необходимо объявить с помощью ключевого слова «Dim». Если при объявлении переменных не указать типы данных, они смогут принимать любые доступные в VBA Excel значения. Комментарии в тексте процедур начинаются со знака «’» (апостроф).

Пример 2
Присвоение переменным числовых значений:

Источник

Код VBA

код vba в excel что это. vba code. код vba в excel что это фото. код vba в excel что это-vba code. картинка код vba в excel что это. картинка vba code. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Код Excel VBA

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

Как открыть окно Visual Basic?

Если вы хотите написать код Visual Basic, мы должны написать его в окне Visual Basic. Вопрос здесь в том, где находится окно Visual Basic в Excel и как его открыть. Ответ заключается в выборе меню « Разработчик» и в меню разработчика выберите « Visual Basic», как показано на рисунке ниже.

код vba в excel что это. vba code. код vba в excel что это фото. код vba в excel что это-vba code. картинка код vba в excel что это. картинка vba code. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Который откроет пустое окно, как показано ниже.

код vba в excel что это. vba code 2. код vba в excel что это фото. код vba в excel что это-vba code 2. картинка код vba в excel что это. картинка vba code 2. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

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

код vba в excel что это. vba code 2. код vba в excel что это фото. код vba в excel что это-vba code 2. картинка код vba в excel что это. картинка vba code 2. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Шаг 2: Появится раскрывающийся список, нажмите на вкладку « Параметры ».

код vba в excel что это. vba code 3. код vba в excel что это фото. код vba в excel что это-vba code 3. картинка код vba в excel что это. картинка vba code 3. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

код vba в excel что это. vba code 3. код vba в excel что это фото. код vba в excel что это-vba code 3. картинка код vba в excel что это. картинка vba code 3. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Шаг 4: Когда мы перетаскиваем параметры настройки ленты, мы находим параметр для разработчика (Custom), нам нужно установить этот флажок, который позволит нам использовать VBA в Excel.

код vba в excel что это. vba code 4. код vba в excel что это фото. код vba в excel что это-vba code 4. картинка код vba в excel что это. картинка vba code 4. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Где написать код в Excel VBA?

код vba в excel что это. vba code 5. код vba в excel что это фото. код vba в excel что это-vba code 5. картинка код vba в excel что это. картинка vba code 5. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Если мы добавим несколько листов в нашу книгу, это позволит использовать разные модули листов.

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

код vba в excel что это. vba code 6. код vba в excel что это фото. код vba в excel что это-vba code 6. картинка код vba в excel что это. картинка vba code 6. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

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

Модуль ThisWorkbook

Какой бы код не был написан в этом модуле, он будет применяться ко всем листам в рабочей книге. Предположим, что если мы напишем код события для рабочей книги, то всякий раз, когда это событие происходит на каком-либо из листов рабочей книги, будет выполняться макрос. Предположим, что если мы напишем событие для «Новый лист», то всякий раз, когда мы создаем новый лист, для этой книги будет запускаться макрос.

код vba в excel что это. vba code 7. код vba в excel что это фото. код vba в excel что это-vba code 7. картинка код vba в excel что это. картинка vba code 7. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Модуль: Обычно мы будем писать код в модулях на VBA. Нам нужно вставить модуль, щелкнув по меню «Вставка» и выбрав опцию модуля, чтобы вставить модуль.

код vba в excel что это. vba code 4. код vba в excel что это фото. код vba в excel что это-vba code 4. картинка код vba в excel что это. картинка vba code 4. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Точно так же мы можем вставить модуль класса и форму пользователя также. Это модули, в которые мы можем написать наш код. В зависимости от типа требования мы должны выбрать модуль и написать в нем код.

Примеры написания и запуска кода в Excel VBA

Ниже приведены различные примеры написания и запуска кода с использованием кода VBA в Excel.

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

код vba в excel что это. vba code 8. код vba в excel что это фото. код vba в excel что это-vba code 8. картинка код vba в excel что это. картинка vba code 8. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Выполните следующие шаги, чтобы написать код в Excel VBA.

Шаг 1: Любая программа в VBA начинается с дополнительного ключевого слова и имени программы с открытыми и закрытыми скобками, как показано ниже. Когда мы введем после скобок автоматически появится «End Sub».

код vba в excel что это. vba code 9. код vba в excel что это фото. код vba в excel что это-vba code 9. картинка код vba в excel что это. картинка vba code 9. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Шаг 2: между ними мы должны написать наш код.

код vba в excel что это. vba code 10. код vba в excel что это фото. код vba в excel что это-vba code 10. картинка код vba в excel что это. картинка vba code 10. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Шаг 3: Мы можем запустить код, нажав F5 или щелкнув по кнопке запуска вверху, которая отмечена черным цветом.

код vba в excel что это. vba code 11. код vba в excel что это фото. код vba в excel что это-vba code 11. картинка код vba в excel что это. картинка vba code 11. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Шаг 4: Как только мы нажмем на запуск, всплывающее окно попросит выполнить запуск, как показано ниже. Если доступно несколько макросов, необходимо выбрать правильный макрос и нажать кнопку запуска.

код vba в excel что это. vba code 12. код vba в excel что это фото. код vba в excel что это-vba code 12. картинка код vba в excel что это. картинка vba code 12. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Шаг 5: перейдите в Excel и проверьте, появляются ли результаты, как показано ниже.

код vba в excel что это. vba code 13. код vba в excel что это фото. код vba в excel что это-vba code 13. картинка код vba в excel что это. картинка vba code 13. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Если мы хотим запустить макрос из самого листа с помощью фигуры, мы можем это сделать. Выполните следующие шаги, чтобы назначить макрос фигурам.

Шаг 1: Перейдите на «Вставка» и выберите фигуру по вашему желанию.

код vba в excel что это. vba code 14. код vba в excel что это фото. код vba в excel что это-vba code 14. картинка код vba в excel что это. картинка vba code 14. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Шаг 2: После выбора формы нарисуйте это на своем рабочем листе.

код vba в excel что это. vba code 15. код vba в excel что это фото. код vba в excel что это-vba code 15. картинка код vba в excel что это. картинка vba code 15. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Шаг 3: Теперь мы можем написать текст, например, «нажмите здесь» или «запустить макрос» в этой форме. Для добавления текста просто щелкните правой кнопкой мыши на фигуре и выберите Редактировать текст

код vba в excel что это. vba code 16. код vba в excel что это фото. код vba в excel что это-vba code 16. картинка код vba в excel что это. картинка vba code 16. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Шаг 4: Добавьте слово согласно вашему желанию. Я добавил слово « Run Macro ».

код vba в excel что это. vba code 17. код vba в excel что это фото. код vba в excel что это-vba code 17. картинка код vba в excel что это. картинка vba code 17. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Шаг 5: Теперь нам нужно назначить макрос для этой фигуры, для этого выберите фигуру, щелкните правой кнопкой мыши и выберите « Назначить макрос ».

код vba в excel что это. vba code 18. код vba в excel что это фото. код vba в excel что это-vba code 18. картинка код vba в excel что это. картинка vba code 18. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Шаг 6: появится всплывающее окно с запросом выбора макроса. Выберите имя макроса и нажмите кнопку ОК.

код vba в excel что это. vba code 19. код vba в excel что это фото. код vba в excel что это-vba code 19. картинка код vba в excel что это. картинка vba code 19. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Шаг 7: Теперь, если мы нажмем на форму, макрос запустится и выдаст результат, как показано ниже.

код vba в excel что это. vba code 20. код vba в excel что это фото. код vba в excel что это-vba code 20. картинка код vba в excel что это. картинка vba code 20. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Как сохранить макрокоманду?

Мы все знаем, как сохранить рабочую книгу. Сохранение макроса также не изменилось, но есть одно небольшое изменение. У нас есть два разных способа сохранить наши макро-файлы.

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

код vba в excel что это. vba code 21. код vba в excel что это фото. код vba в excel что это-vba code 21. картинка код vba в excel что это. картинка vba code 21. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

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

То, что нужно запомнить

Рекомендуемые статьи

Это руководство по VBA Code в Excel. Здесь мы узнаем, как копировать, вставлять и запускать код VBA в Excel вместе с простыми и практичными примерами. Ниже приведены несколько полезных статей о Excel, связанных с VBA.

Источник

Автоматизация задач с помощью средства записи макросов — Excel

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

При записи макроса все действия в записи макроса записываются Visual Basic для приложений (VBA) коде. Эти действия могут включать ввод текста или чисел, выбор ячеек или команд на ленте или в меню, форматирование ячеек, строк или столбцов или даже импорт данных из внешнего источника, скажем, Microsoft Access. Visual Basic Приложение (VBA) — это подмножество мощного Visual Basic программирования, которое входит в большинство Office приложений. Хотя VBA позволяет автоматизировать процессы как в приложениях, так и между Office, необязательно знать код VBA или программирование на компьютере, если оно делает то, что вам нужно.

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

Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».

код vba в excel что это. be1200dc fdf2 48d0 a8e6 b23a1a885339. код vba в excel что это фото. код vba в excel что это-be1200dc fdf2 48d0 a8e6 b23a1a885339. картинка код vba в excel что это. картинка be1200dc fdf2 48d0 a8e6 b23a1a885339. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Запись макроса

Перед записью макросов полезно знать следующее:

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

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

В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.

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

На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.

код vba в excel что это. b0ddaa7d 64a2 450c 84e5 589fe04f57a8. код vba в excel что это фото. код vba в excel что это-b0ddaa7d 64a2 450c 84e5 589fe04f57a8. картинка код vba в excel что это. картинка b0ddaa7d 64a2 450c 84e5 589fe04f57a8. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.

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

Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш с CTRL+ SHIFT, так как они будут заменять собой совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос. Например, если назначить сочетание клавиш CTRL+Z (Отменить), вы не сможете использовать его для функции «Отменить» в данном экземпляре Excel.

В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

В поле Описание при необходимости введите краткое описание действий макроса.

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

Чтобы начать запись макроса, нажмите кнопку ОК.

Выполните действия, которые нужно записать.

На вкладке Разработчик в группе Код нажмите кнопку Остановить запись код vba в excel что это. 13b42063 46ab 4e42 a408 1298dc67e71d. код vba в excel что это фото. код vba в excel что это-13b42063 46ab 4e42 a408 1298dc67e71d. картинка код vba в excel что это. картинка 13b42063 46ab 4e42 a408 1298dc67e71d. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office..

Работа с макросами, записанными в Excel

На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. Кроме того, можно нажать клавиши ALT+F8. При этом откроется диалоговое окно Макрос.

код vba в excel что это. 15e4508a 6535 4ef2 9b0a a9a6b2ef9179. код vba в excel что это фото. код vba в excel что это-15e4508a 6535 4ef2 9b0a a9a6b2ef9179. картинка код vba в excel что это. картинка 15e4508a 6535 4ef2 9b0a a9a6b2ef9179. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

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

Ниже приведены дополнительные сведения о работе с макросами в Excel.

Сведения о параметрах безопасности макросов и их значении.

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

С помощью редактора Visual Basic можно изменять макросы, присоединенные к книге.

Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.

Назначение макроса объекту, фигуре или графическому элементу

Щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому вы хотите назначить существующий макрос, и выберите пункт Назначить макрос.

В поле Назначить макроса выберите макрос, который вы хотите назначить.

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

Вы можете назначать макросы формам и элементам ActiveX на листе.

Узнайте, как включать и отключать макросы в файлах Office.

Открытие редактора Visual Basic

Нажмите клавиши ALT+F11.

Узнайте, как найти справку по элементам Visual Basic.

Работа с записанным кодом в редакторе Visual Basic (VBE)

С помощью редактора Visual Basic (VBE) вы можете добавлять в записанный код собственные переменные, управляющие структуры и другие элементы, которые не поддерживает средство записи макросов. Так как средство записи макросов фиксирует почти каждый шаг, выполняемый во время записи, может также потребоваться удалить ненужный код. Просмотр записанного кода — отличный способ научиться программировать на VBA или отточить свои навыки.

Пример изменения записанного кода можно найти в статье Начало работы с VBA в Excel.

Запись макроса

Перед записью макросов полезно знать следующее:

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

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

В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.

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

Перейдите в Excel > параметры. > ленты & панель инструментов.

В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.

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

На вкладке Разработчик нажмите кнопку Запись макроса.

В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.

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

В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

Как правило, макрос сохраняется в расположении Эта книга, но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите Личная книга макроса. При выборе личнойкниги макроса Excel создает скрытую личную книгу макроса (PERSONAL.XLSB), если она еще не существует, и сохраняет макрос в этой книге. Книги в этой папке открываются автоматически при Excel, и любой код, сохраненный в личной книге макроса, будет указан в диалоговом окну Макрос, которое объясняется в следующем разделе.

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

В поле Описание при необходимости введите краткое описание действий макроса.

Хотя поле «Описание» является необязательным, рекомендуется его заполнить. Полезно ввести содержательное описание со всеми сведениями, которые могут быть полезны вам или другим пользователям, которые будут запускать макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.

Чтобы начать запись макроса, нажмите кнопку ОК.

Выполните действия, которые нужно записать.

На вкладке Разработчик щелкните Остановить запись.

Работа с макросами, записанными в Excel

На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. При этом откроется диалоговое окно Макрос.

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

Ниже приведены дополнительные сведения о работе с макросами в Excel.

Узнайте, как включать и отключать макросы в Excel для Mac.

Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.

Назначение макроса объекту, фигуре или графическому элементу

Щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому вы хотите назначить существующий макрос, и выберите пункт Назначить макрос.

В поле Назначить макроса выберите макрос, который вы хотите назначить.

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

Вы можете назначать макросы формам и элементам ActiveX на листе.

Открытие редактора Visual Basic

На вкладке Разработчик щелкните Visual Basic или выберите Сервис > Макрос > Редактор Visual Basic.

Узнайте, как найти справку по элементам Visual Basic.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

Источник

Автоматизация рутины в Microsoft Excel при помощи VBA

В этом посте я расскажу, что такое VBA и как с ним работать в Microsoft Excel 2007/2010 (для более старых версий изменяется лишь интерфейс — код, скорее всего, будет таким же) для автоматизации различной рутины.

код vba в excel что это. a762f9d01ef454c166b85e0794cbd8e4. код vba в excel что это фото. код vba в excel что это-a762f9d01ef454c166b85e0794cbd8e4. картинка код vba в excel что это. картинка a762f9d01ef454c166b85e0794cbd8e4. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

VBA (Visual Basic for Applications) — это упрощенная версия Visual Basic, встроенная в множество продуктов линейки Microsoft Office. Она позволяет писать программы прямо в файле конкретного документа. Вам не требуется устанавливать различные IDE — всё, включая отладчик, уже есть в Excel.

Еще при помощи Visual Studio Tools for Office можно писать макросы на C# и также встраивать их. Спасибо, FireStorm.

Сразу скажу — писать на других языках (C++/Delphi/PHP) также возможно, но требуется научится читать, изменять и писать файлы офиса — встраивать в документы не получится. А интерфейсы Microsoft работают через COM. Чтобы вы поняли весь ужас, вот Hello World с использованием COM.

Поэтому, увы, будем учить Visual Basic.

Чуть-чуть подготовки и постановка задачи

Итак, поехали. Открываем Excel.

Для начала давайте добавим в Ribbon панель «Разработчик». В ней находятся кнопки, текстовые поля и пр. элементы для конструирования форм.

код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Теперь давайте подумаем, на каком примере мы будем изучать VBA. Недавно мне потребовалось красиво оформить прайс-лист, выглядевший, как таблица. Идём в гугл, набираем «прайс-лист» и качаем любой, который оформлен примерно так (не сочтите за рекламу, пожалуйста):

код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

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

Результат, которого хотим добиться, выглядит примерно так:

код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

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

Кодим

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

код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

И вот мы в среде разработки VB. Также её можно вызвать из контекстного меню командой «Исходный текст»/«View code».

код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Перед вами окно с заглушкой процедуры. Можете его развернуть. Код должен выглядеть примерно так:

Напишем Hello World:

Sub FormatPrice()
MsgBox «Hello World!»
End Sub

И запустим либо щелкнув по кнопке (предварительно сняв с неё выделение), либо клавишей F5 прямо из редактора.

Тут, пожалуй, следует отвлечься на небольшой ликбез по поводу синтаксиса VB. Кто его знает — может смело пропустить этот раздел до конца. Основное отличие Visual Basic от Pascal/C/Java в том, что команды разделяются не ;, а переносом строки или двоеточием (:), если очень хочется написать несколько команд в одну строку. Чтобы понять основные правила синтаксиса, приведу абстрактный код.

Примеры синтаксиса

Dim res As sTRING ‘ Регистр в VB не важен. Впрочем, редактор Вас поправит
Dim i As Integer
‘ Цикл всегда состоит из нескольких строк
For i = 1 To 10
res = res + CStr(i) ‘ Конвертация чего угодно в String
If i = 5 Then Exit For
Next i

Dim x As Double
x = Val( «1.234» ) ‘ Парсинг чисел
x = x + 10
MsgBox x

On Error GoTo Err ‘ При ошибке перейти к метке Err
x = 5 / 0
MsgBox «OK!»
GoTo ne

ne:
On Error GoTo 0 ‘ Отключаем обработку ошибок

‘ Циклы бывает, какие захотите
Do While True
Exit Do

Loop ‘While True
Do ‘Until False
Exit Do
Loop Until False
‘ А вот при вызове функций, от которых хотим получить значение, скобки нужны.
‘ Val также умеет возвращать Integer
Select Case LengthSqr(Len( «abc» ), Val( «4» ))
Case 24
MsgBox «0»
Case 25
MsgBox «1»
Case 26
MsgBox «2»
End Select

Грабли-1. При копировании кода из IDE (в английском Excel) есь текст конвертируется в 1252 Latin-1. Поэтому, если хотите сохранить русские комментарии — надо сохранить крокозябры как Latin-1, а потом открыть в 1251.

Грабли-2. Т.к. VB позволяет использовать необъявленные переменные, я всегда в начале кода (перед всеми процедурами) ставлю строчку Option Explicit. Эта директива запрещает интерпретатору заводить переменные самостоятельно.

Грабли-3. Глобальные переменные можно объявлять только до первой функции/процедуры. Локальные — в любом месте процедуры/функции.

Еще немного дополнительных функций, которые могут пригодится: InPos, Mid, Trim, LBound, UBound. Также ответы на все вопросы по поводу работы функций/их параметров можно получить в MSDN.

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

Кодим много и под Excel

В этой части мы уже начнём кодить нечто, что умеет работать с нашими листами в Excel. Для начала создадим отдельный лист с именем result (лист с данными назовём data). Теперь, наверное, нужно этот лист очистить от того, что на нём есть. Также мы «выделим» лист с данными, чтобы каждый раз не писать длинное обращение к массиву с листами.

Sub FormatPrice()
Sheets( «result» ).Cells.Clear
Sheets( «data» ).Activate
End Sub

Работа с диапазонами ячеек

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

Примеры работы с Range

Sheets( «result» ).Activate
Dim r As Range
Set r = Range( «A1» )
r.Value = «123»
Set r = Range( «A3,A5» )
r.Font.Color = vbRed
r.Value = «456»
Set r = Range( «A6:A7» )
r.Value = «=A1+A3»

Теперь давайте поймем алгоритм работы нашего кода. Итак, у каждой строчки листа data, начиная со второй, есть некоторые данные, которые нас не интересуют (ID, название и цена) и есть две вложенные группы, к которым она принадлежит (тип и производитель). Более того, эти строки отсортированы. Пока мы забудем про пропуски перед началом новой группы — так будет проще. Я предлагаю такой алгоритм:

Для упрощения работы рекомендую определить следующие функции-сокращения:

Function GetCol(Col As Integer ) As String
GetCol = Chr(Asc( «A» ) + Col)
End Function

Далее определим глобальную переменную «текущая строчка»: Dim CurRow As Integer. В начале процедуры её следует сделать равной единице. Еще нам потребуется переменная-«текущая строка в data», массив с именами групп текущей предыдущей строк. Потом можно написать цикл «пока первая ячейка в строке непуста».

Глобальные переменные

Option Explicit ‘ про эту строчку я уже рассказывал
Dim CurRow As Integer
Const GroupsCount As Integer = 2
Const DataCount As Integer = 3

FormatPrice

Sub FormatPrice()
Dim I As Integer ‘ строка в data
CurRow = 1
Dim Groups(1 To GroupsCount) As String
Dim PrGroups(1 To GroupsCount) As String

Теперь надо заполнить массив Groups:

На месте многоточия

И создать заголовки:

На месте многоточия в предыдущем куске

For I2 = 1 To GroupsCount
If Groups(I2) <> PrGroups(I2) Then
Dim I3 As Integer
For I3 = I2 To GroupsCount
AddHeader I3, Groups(I3)
Next I3
Exit For
End If
Next I2

Не забудем про процедуру AddHeader:

Перед FormatPrice

Теперь надо перенести всякую информацию в result

Подогнать столбцы по ширине и выбрать лист result для показа результата

После цикла в конце FormatPrice

Sheets( «Result» ).Activate
Columns.AutoFit

Всё. Можно любоваться первой версией.

код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Некрасиво, но похоже. Давайте разбираться с форматированием. Сначала изменим процедуру AddHeader:

код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

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

код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

Поэтому чуть-чуть меняем код с добавлением стиля границ:

Select Case Ty
Case 1 ‘ Тип
.Font.Bold = True
.Font.Size = 16
.Borders(xlTop).Weight = xlThick
Case 2 ‘ Производитель
.Font.Size = 12
.Borders(xlTop).Weight = xlMedium
End Select
.Borders(xlBottom).Weight = xlMedium ‘ По убыванию: xlThick, xlMedium, xlThin, xlHairline
End With
CurRow = CurRow + 1
End Sub

код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

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

В начале FormatPrice

Dim I As Integer ‘ строка в data
CurRow = 0 ‘ чтобы не было пропуска в самом начале
Dim Groups(1 To GroupsCount) As String

В цикле расстановки заголовков

If Groups(I2) <> PrGroups(I2) Then
CurRow = CurRow + 1
Dim I3 As Integer

код vba в excel что это. image loader. код vba в excel что это фото. код vba в excel что это-image loader. картинка код vba в excel что это. картинка image loader. Visual Basic для приложений (VBA) в Office — это событийно-ориентированный язык программирования, позволяющий расширять приложения Office.

В точности то, что и хотели.

Надеюсь, что эта статья помогла вам немного освоится с программированием для Excel на VBA. Домашнее задание — добавить заголовки «ID, Название, Цена» в результат. Подсказка: CurRow = 0 CurRow = 1.

Файл можно скачать тут (min.us) или тут (Dropbox). Не забудьте разрешить исполнение макросов. Если кто-нибудь подскажет человеческих файлохостинг, залью туда.

Спасибо за внимание.

Буду рад конструктивной критике в комментариях.

UPD: Перезалил пример на Dropbox и min.us.

UPD2: На самом деле, при вызове процедуры с одним параметром скобки можно поставить. Либо использовать конструкцию Call Foo(«bar», 1, 2, 3) — тут скобки нужны постоянно.

Источник

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

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