Учебник VBA — voxt.ru
Учебник по Excel VBA для начинающих
Если вы новичок в VBA и ничего об этом не знаете, то это лучший учебник для начинающих, чтобы начать свое путешествие в Excel. Макросы VBAМакросы VBAМакросы VBA — это строки кода, которые предписывают Excel выполнять определенные задачи, т. е. после написания кода в редакторе Visual Basic (VBE) пользователь может быстро выполнить ту же задачу в любое время в рабочей книге. Таким образом, он устраняет повторяющиеся, монотонные задачи и автоматизирует процесс.читать далее. Хорошо, давайте начнем путешествие по вашим учебникам по VBA сегодня.
VBA это Visual Basic для приложений — это язык программирования Microsoft для продуктов Microsoft, таких как Excel, Word и PowerPoint. Все программирование, которое мы хотим сделать, будет выполнено в VBE (редактор Visual Basic). VBE — это платформа для написания нашего кода задачи для выполнения в Excel.
Вы можете использовать это изображение на своем веб-сайте, в шаблонах и т.
д. Пожалуйста, предоставьте нам ссылку на авторствоКак предоставить атрибуцию?Ссылка на статью должна быть гиперссылкой
Например:
Источник: Учебник по VBA (wallstreetmojo.com)
Что такое макросы в Excel?
Макрос — это не что иное, как строка кода, которая дает указание Excel выполнить определенную задачу. После того как код написан в VBE, вы можете выполнять ту же задачу в любое время в рабочей книге.
Код макроса может устранить повторяющиеся, скучные задачи и автоматизировать процесс. Для начала с Кодирование макросов VBAКодирование макросов VBAКод VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи.читать далее технику, давайте запишем макрос.
Кодирование VBA доступно под Вкладка РАЗРАБОТЧИК в excelВкладка РАЗРАБОТЧИК в ExcelВключение вкладки разработчика в Excel может помочь пользователю выполнять различные функции для VBA, макросов и надстроек, таких как импорт и экспорт XML, разработка форм и т.
д. Эта вкладка по умолчанию отключена в Excel; таким образом, пользователю необходимо сначала включить его в меню параметров.читать далее.
Если вы не видите эту вкладку разработчика в своем Excel, выполните следующие действия, чтобы включить вкладку разработчика в Excel.
Шаг 1: Перейдите в ФАЙЛ -> В разделе ФАЙЛ перейдите в ОПЦИИ.
Шаг 2. Выберите «Настроить ленту».
Вы увидите окно параметров Excel. Выберите Настроить Лента в ExcelЛента в ExcelЛенты в Excel 2016 предназначены для того, чтобы помочь вам легко найти команду, которую вы хотите использовать. Ленты организованы в логические группы, называемые вкладками, каждая из которых имеет собственный набор функций.читать далее.
Шаг 3: Установите флажок РАЗРАБОТЧИК, чтобы включить его.
Шаг 4: Нажмите OK, чтобы включить его.
Теперь вы должны увидеть вкладку «Разработчик».
Учебник по записи макросов в VBA Excel
В этом уроке о VBA мы узнаем, как записывать макросы в ExcelЗапись макросов в ExcelЗапись макросов — это метод, с помощью которого Excel сохраняет задачи, выполненные пользователем.
Каждый раз, когда запускается макрос, именно эти действия выполняются автоматически. Макросы создаются либо на вкладке «Вид» (в раскрывающемся списке «Макросы»), либо на вкладке «Разработчик» Excel.
читать далее с практическими примерами.
Вы можете скачать этот шаблон Excel для учебника по макросам VBA здесь — Учебник по макросам VBA Шаблон Excel
Пример №1
Хорошо, мы начнем прямо сейчас с перекодирования Marco.
Шаг 1: Нажмите «Записать макрос».
Под разработчиком вкладка нажимается на Запись макроса.
Шаг 2: Дайте имя макросу
Как только вы нажмете «Запись макроса», вы увидите, что Excel попросит вас дать имя вашему макросу.
Дайте правильное имя макросу. Макрос не должен содержать пробелов и специальных символов. Вы можете поставить подчеркивание (_) в качестве разделителя слов.
Шаг 3: Нажмите OK, чтобы начать запись.
С этого момента программа записи макросов продолжает записывать все ваши действия на листе Excel.
Сначала я выберу ячейку A1.
Сейчас я наберу «Добро пожаловать в ВБА» в ячейке А1.
Шаг 4: Остановите запись
Теперь я нажму на опцию остановки записи на вкладке разработчика, чтобы остановить запись.
Итак, Excel перестает записывать действия, которые мы делаем в Excel. Теперь давайте посмотрим, как Excel записывает действия.
Шаг 5: Откройте редактор VBA
В разделе «Разработчик» нажмите «Visual Basic».
Как только вы нажмете на Visual Basic, мы увидим внизу окно.
Дважды щелкните «Модули».
Теперь мы увидим код справа. Код макроса начинается со слова SUB.
Весь макрос состоит из двух частей: голова и хвост. У каждого макроса есть имя.
В промежутке между головой и хвостом макроса Excel записал все действия.
Первое, что мы сделали после начала записи макроса, это мы выбрали ячейку A1 и Excel записал ее как Диапазон («А1»). Выбирать
Второе действие заключалось в том, что мы ввели значение «Добро пожаловать в VBA».
Как только мы выбрали, она становится активной ячейкой, поэтому excel записал активность как ActiveCell.FormulaR1C1 = «Добро пожаловать в VBA».
Примечание: R1C1 — строка 1, столбец 1.
Третье действие — после ввода слова «Добро пожаловать в VBA», мы нажимаем Enter и выделяем выбранную ячейку A2. Таким образом, excel записывается как активность как Диапазон («А2»). Выбирать
Таким образом, Macro Recorder записал все действия, которые мы сделали, на листе Excel. Теперь удалите слово в ячейке A1.
Удалив слово, еще раз заходим в VBE, где находится наш код.
Шаг 6: Запустите код
Там нажмите кнопку RUN, чтобы еще раз ввести то же текстовое значение в ячейку A1.
Note: Shortcut key to run the code is F5.
Итак, макрос выполнен, и мы снова получили то же значение. Таким образом, мы можем автоматизировать нашу повседневную рутинную работу, чтобы сэкономить много времени и избавиться от скучных ежедневных задач.
Пример #2
Теперь давайте запишем еще один макрос для лучшего понимания. В этой записи мы будем вставлять серийные номера от A1 до A10.
Перейдите на вкладку РАЗРАБОТЧИК и нажмите на опцию записи макроса.
Нажмите «ОК», чтобы начать запись. Я введу 1, 2, 3. Затем я перетащу ручку заполнения, чтобы сделать серийные номера инертными.
Теперь нажмите «Остановить запись».
Перейдите в редактор Visual Basic и посмотрите, что это за код.
Давайте теперь посмотрим на код.
Сначала мы выбрали ячейку A1.
Код:
Range (“A1”).Select
Во-вторых, мы вставили 1 в активную ячейку.
Код:
ActiveCell.FormulaR1C1 = "1"
Третье действие заключалось в том, что мы выбрали ячейку A2.
Код:
Range (“A2”).Select
Четвертое действие заключалось в том, что мы вставили 2 в активную ячейку.
Код:
ActiveCell.FormulaR1C1 = "2"
Пятое действие заключалось в том, что мы выбрали ячейку A3.
Код:
Range (“A3”).Select
Шестое действие, поскольку мы вставили 3 в активную ячейку.
Код:
ActiveCell.FormulaR1C1 = "3"
Затем мы выделили диапазон ячеек от A1 до A3.
Код:
Range ("A1:A3").SelectПосле выбора ячеек мы заполнили порядковые номера с помощью маркера заполненияИспользование маркера заполненияДескриптор заполнения в Excel позволяет избежать копирования и вставки каждого значения в ячейки и вместо этого использовать шаблоны для заполнения информации. Этот крошечный крест — универсальный инструмент в пакете Excel, который можно использовать для ввода данных, преобразования данных и многих других приложений.читать далее.
Код:
Selection.AutoFill Destination:=Range("A1:A10"), Type:=xlFillDefaultИтак, наконец, мы выбрали диапазон от A1 до A10.
Код:
Range ("A1:A10").SelectИтак, теперь всякий раз, когда мы хотим вставить серийные номера от 1 до 10 в ячейку от A1 до A10, вы можете запустить этот код.
Как сохранить книгу макросов?
Рабочая книга Excel, содержащая код макросов, должна быть сохранена как рабочая книга с поддержкой макросов. Нажмите на Сохранить как в excelСохранить как в ExcelСохранить как находится на вкладке файла рабочего листа. Доступ к нему можно получить с панели быстрого доступа или нажав F12 и выбрав «сохранить как» или CTRL + S, чтобы открыть диалоговое окно «Сохранить как» для сохранения файла.читать далее и выберите расширение файла как «Рабочая книга с поддержкой макросов».
То, что нужно запомнить
- Это только вводная часть VBA. Продолжайте следить за нашим блогом, чтобы увидеть больше сообщений в будущем.
- Запись макроса — лучшая инициализация для начала путешествия макросов.
- Записывайте все больше и больше действий и смотрите, что это за код.
УЗНАТЬ БОЛЬШЕ >>
Post Views: 609
Похожие записи
Прокрутить вверхКниги по VBA | ProgBook
Офисное программирование как дисциплину Государственной программы для слушателей техникумов по профилю «Автоматизированные системы обработки информации и управления» можно освоить благодаря данному справочнику.
В нем изложены теоретические основы дисциплины и практические задания с рисунками и подробным объяснением их решения. Преподавателям предмета книга также будет очень полезна.
В данном справочнике представлен разбор более 60 практических заданий, сопровождающихся 130 иллюстрациями с доступными разъяснениями. Изложены суть и особенности офисного программирования, создания исходных программ с широким набором функциональных возможностей. Преподаватели и студенты ССУзов найдут для себя много полезной информации в справочнике «Офисное программирование», И. Г. Фризен. Также в данном справочнике рассматриваются вопросы применения офисного программирования – от настройки различных документов до организации важных решений в масштабе предприятий.
Идея книги пришла к автору в период, когда он преподавал основы Visual Basic для приложений в одной гимназии Санкт-Петербурга. Дисциплина была новой, и сколько-нибудь пригодного учебника для изучения свойств, объектов и методов языка тогда еще не было.
Доступными были лишь справочники по какому-либо приложению MS Office, которые были либо слишком большие для использования их в качестве учебника, либо содержали недостаточно информации по целевому предмету. С другой стороны, требовалась книга, объединяющая в себе описания офисных программ и языка VBA, интегрированного в них. В таком учебнике материал должен был излагаться в виде компактных, исчерпывающих описаний, иллюстрированных небольшими примерами.
В результате С. А. Малышев написал «Самоучитель VBA. Как это делается в Word, Excel, Access», который прекрасно подходит для изучения основ программирования офисных
Пособие будет полным и подробным справочником по известному языку программирования Visual Basic for Applications. Кратко будем называть этот язык VBA. Учебник поможет каждому научиться создавать новые приложения с помощью языка VBA и позволит узнать его основные приемы. Пособие поможет быстро овладеть всеми терминами языка программирования и потом с большой эффективностью решать различные задачи.
Книга будет содержать много уроков, каждый из которых будет показывать разработку нового пользовательского приложения. Также такой урок будет включать в себя основные способы разработки этого приложения и важнейшие приемы, на которые нужно обратить должное внимание. Каждый урок будет показывать анализ всех программ, которые также будут оснащены важнейшими комментариями автора.
Стоит отметить, что книга дает каждому читателю возможность не только ознакомиться со всем материалом, но еще и закрепить его. Это помогут сделать задачи в конце каждого урока. Как только вы разберете разработку любой программы и будете готовы использовать знания на практике, потратьте еще пару минут и решите практическую задачу. Она поможет показать, как хорошо вы освоили материал и не нужно ли вам что-либо закрепить в этой теме.
Пособие отлично подойдет в качестве самоучителя любому начинающему программисту.
Книга «Самоучитель VBA» может быть использована каждым преподавателем высшего учебного заведения, как сборник задач и примеров. Ведь на основе всех примеров каждый студент с легкостью разберется в языке программирования VBA и сможет повысить свой профессиональный уровень. Автор пособия — А. Гарнаев — максимально понятно объясняет все темы и показывает все на логических примерах. Благодаря комментариям автора к каждой теме любой человек без проблем выучит этот материал и будет настоящим специалистом по языку программирования VBA.
Основной причиной того, что Microsoft Office стал популярен не только среди простых пользователей, является изобретение специального языка Visual Basic for Applications, позволяющего внедрять пользовательские программы прямо в тело документа MS Office. Программирование на VBA «внутри Excel» — основная тема этого учебника.
Среди множества современных офисных пакетов MS Office остаётся единственным, предоставляющий пользователю по-настоящему удобный интерфейс для «карманного программирования». Язык VBA, который безуспешно пытаются повторить разработчики OpenOffice и StarOffice, с лёгкостью позволяет внедрять в документ пользовательский код по обработке данных, автоматизации расчётов и даже позволяет визуальное редактирование создаваемых в документе программных форм. Использование Visual Basic for Applications превращает MS Excel из рядовой «электронной таблицы» в мощнейший инструмент.
Управление «рабочим листом» книги Excel, создание диалоговых окон, управление «событиями» внутри документа — всё это и много другое вы освоите, прочитав книгу Джона Уокенбаха «Excel 2010.
Профессиональное программирование на VBA». Это учебное пособие пригодится как тем, кто только знакомится с возможностями MS Excel и VBA, так и пользователям, уже работавшим с прежними версиями Excel.
Этот учебник поможет каждому человеку с легкостью освоить программу MS Excel, и научиться на ней выполнять непростые функции. Здесь каждый подробно разберет модель этой программы и поймет, как применять ее функции на практике. Тут будет интереснейшая тема объектно-ориентированного подхода для создания различных приложений с помощью MS Excel 2002. Каждый новичок узнает из этой книги, как создавать новый, пользовательский интерфейс и как использовать на практике справочную систему. Очень интересно будет узнать из этого учебника, как анализировать данные для работы и создавать различные диаграммы для новых проектов. Данная книга поможет любому человеку разобраться в работе с Visual Basic .NET и понять, как использоваться MS Excel в работе данными средствами ADO. Это пособие будет содержать более 400 интересных и полезных примеров.
Книга сможет каждому разъяснить, как создавать любые пользовательские функции и для чего они пригодятся в работе. Материал данного учебника поможет каждому самостоятельно освоить построение любой системы и узнать, как использовать на практике обработку данных с помощью программы MS Excel.
Изначально книга расскажет нам об основных базовых сведениях VBA. В этом разделе каждый узнает множество новых терминов и принципов работы VBA. Следующий раздел ознакомит нас с интегрированной средой разработки, и здесь мы уже сможем использовать знания из первого раздела. Третий раздел данного учебника расскажет нам о базовых объектах и моделях. Следующая глава подробно расскажет нам про основы программирования на VBA и будет содержать множество примеров и задач. В последующих главах книги «Microsoft Excel 2002. Разработка приложений» вы узнаете про основные классы и семейства и про все элементы управления на рабочем листе.
Здесь нужно будет хорошо помнить информацию предыдущих разделов, чтобы ее можно было использовать для понимания новой темы. Далее книга познакомит нас с формами и элементами управления, а также мы сможем узнать о диаграммах и всех их шаблонах. Автор этой книги — Андрей Гарнаев — знакомит нас с самыми основными знаниями о создании меню, контекстного меню и главной панели инструментов. Автор этого пособия считается хорошим специалистом в Microsoft Excel, поэтому его знания нам очень пригодятся. Он покажет нам, как обрабатывать все нужные данные с помощью сортировки, консолидации и фильтрации. Данный справочник поможет каждому получить знания о создании сценариев, сводных таблиц и поиска решений с помощью программы Microsoft Excel.
Эта удивительная книга откроет перед вами очень большие возможности работы с программой Excel. Не нужно думать, что эта программа может создавать только таблицы, к использованию которых мы так привыкли. Нет, Excel имеет гораздо больше возможностей и функций, которые можно изучить за короткий период благодаря этой книге, а потом без проблем использовать все знания в своей работе.
Самое главное, что освоить материал этой книги сможет любой пользователь, даже не имея образования программиста. Зато как это облегчит ему работу с данным приложением. Стоит отметить, что этот курс является ускоренным, то есть его рекомендуется пройти за короткий период времени. Это не будет проблемно, ведь автор данной книги Питер Эйткен писал все информацию понятно, не нагружая книгу трудными терминами, что позволит за короткий период времени ее изучить, не запутавшись в новой информации. Книга «Интенсивный курс программирования в Excel за выходные» будет содержать в себе 30 уроков, каждый из которых нужно проходить последовательно и тренировать знания на практике. Даже обычному новичку для прохождения этой книги понадобиться примерно 15 часов.
Эта книга будет второй из подобной серии, где нужно за короткий период разбираться с компьютерными программами. Первая книга будет называться «Интенсивный курс программирования в Access 2003», которая также само за выходные научит любого пользователя работаться с программированием VBA. Чтобы лучше разобраться в теме, рекомендуется прочитать обе книги, ведь первая часть будет логически дополнять вторую. После их прочтения и практического закрепления, в будущем у вас не возникнет никаких проблем и вопросов с работой данных программ и с языком VBA.
Многие из пользователей широко известного и применяемого офисного приложения Microsoft Excel и не догадываются обо всех его возможностях. Поможет им восполнить пробелы в знании этого пакета книга «Программирование в Microsoft Excel на примерах».
Excel способен не только выполнять рутинные вычислительные операции, но и предоставляет возможность их автоматизировать.
С помощью этого табличного редактора можно даже программировать различные логические игры. Его мощный аппарат позволяет проводить текущие, долгосрочные и прогнозные расчеты деловой информации. В частности, с его помощью можно легко обрабатывать отчетные данные программы 1С:Предприятие. В прилагаемом CD покупатель найдет видеокурс, который поможет ему освоить составление программ в теле пакета. Можно самостоятельно апробировать показанные макросы и внести свои коррективы в зависимости от специфики практического применения.
Изучение материалов пособия не требует особых знаний программирования. Но оно будет интересно и начинающим программистам
Книга «Программирование на VBA в Microsoft Office 2010» отлично подходит для самостоятельного освоения, так как написана простым и доступным языком и рассчитана на пользователя с любым уровнем знаний в области компьютерных технологий. Приводится множество практически примеров, предлагается пошаговая инструкция по применению описанных приемов, в результате чего при изучении материала можно быстро научиться разрабатывать собственные программы на языке VBA.
Издание может использоваться в качестве справочника при возникновении сложных и непонятных ситуаций. Материал преподносится лаконично, при этом дается исчерпывающее описание различных средств и методов, существующих в языке VBA, что позволяет очень быстро найти ответы на любые возникающие вопросы.
Книга ориентирована на тех, кто стремиться научиться программировать в среде Office 2010 на языке VBA, при этом для того, чтобы начать, необязательно иметь какие-то определенные знания.
В книге «Решение научных и инженерных задач средствами Excel, VBA и C/C++» рассматриваются практические вопросы программирования применительно как к официальным, так и к альтернативным средствам разработки. Последние затронуты в литературе впервые, и им уделено особое внимание в книге. Описывается технология разработки ПО для анализа данных и математического моделирования, которое было бы недорогим и максимально адаптированным для пользователей всех квалификаций. К книге приложен компакт-диск с полными исходными текстами тщательно протестированных программ, проектов для разных средств разработки, а также дистрибутивами программ и дополнительных модулей для электронных таблиц.
Книга может служить практическим пособием для студентов и преподавателей, научных работников, инженеров-исследователей и программистов.
Начало работы с VBA в Office
- Статья
- Чтение занимает 20 мин
Постоянно возникает проблема, вызванная повторяющейся очисткой данных в 50 таблицах в Word? Хотите, чтобы при открытии определенного документа пользователи получали запрос на добавление данных? Не знаете, как быстро и легко перенести список контактов из Microsoft Outlook в таблицу Microsoft Excel?
Можно выполнить эти задачи и достичь гораздо большего с помощью Visual Basic для приложений (VBA) для Office.
Это простой и в то же время мощный язык программирования, применение которого позволит расширить возможности приложений Office.
Данная статья предназначена для опытных пользователей Office, которые желают познакомиться с VBA и получить некоторое представление о том, как программирование может помочь им настроить Office.
Набор приложений Office обладает множеством возможностей. Существует множество разных способов создания, форматирования и управления документами, электронной почтой, базами данных, формами, электронными таблицами и презентациями. Значительное преимущество программирования на VBA в Office заключается в том, что почти каждое действие, осуществляемое с мышью, клавиатурой или диалоговым окном, можно выполнить с помощью VBA. Если действие можно выполнить с помощью VBA, значит в дальнейшем его можно легко осуществлять сотни раз. (На самом деле автоматизация повторяющихся задач — одно из наиболее частых применений VBA в Office).
Помимо возможности написания скрипта VBA для ускорения повседневных задач, VBA можно использовать для добавления новых функций в приложения Office или создания запросов и взаимодействия с пользователем ваших документов в соответствии с потребностями вашей организации.
Например, можно написать код VBA, выводящий всплывающее сообщение, которое напоминает пользователям о необходимости сохранения документа на определенном сетевом диске при первой попытке его сохранения.
В этой статье описываются некоторые основные причины для использования возможностей программирования на VBA. Здесь описывается язык VBA и встроенные средства, которые можно использовать для работы со своими решениями. И, наконец, в данной статье можно найти советы и приемы, чтобы избежать некоторых распространенных ошибок программирования.
Примечание
Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.
Причины использования VBA
Есть несколько основных причин использовать программирование на VBA в Office.
Автоматизация и повторяемость
Программирование на VBA эффектно и эффективно при создании решений для устранения повторяющихся проблем форматирования и исправлений. Например, вам когда-нибудь приходилось изменять стиль абзаца в верхней части каждой страницы в Word? Или менять формат нескольких таблиц, скопированных из Excel в документ Word или электронную почту Outlook? А вносить одинаковые изменения в несколько контактов Outlook?
Если имеется изменение, которое нужно внести более десяти или двадцати раз, возможно, стоит реализовать его с помощью VBA. Если изменение нужно внести несколько сотен раз, определенно следует рассмотреть VBA. Почти все изменения форматирования или редакторские правки, которые можно внести вручную, можно реализовать на VBA.
Расширения возможностей взаимодействия с пользователем
Иногда некоторые действия пользователей с документом или приложением Office обязательны или желательны, но не доступны в стандартном приложении. Например, нужно уведомлять пользователей о необходимости что-то сделать при открытии, сохранении или печати документа.
Взаимодействие приложений Office
Нужно скопировать все контакты из Outlook в Word и отформатировать их определенным способом? Или же нужно переместить данные из Excel в набор слайдов PowerPoint? Иногда простое копирование и вставка не работают так, как надо, или же это происходит слишком медленно. Воспользуйтесь программированием на VBA для работы с данными в двух или более приложениях Office одновременно, а затем измените содержимое в одном приложении с учетом содержимого в другом.
Другой способ
Программирование на VBA — это мощное решение, но данный подход не всегда является оптимальным. Иногда, чтобы достичь поставленных целей, имеет смысл воспользоваться другими методами.
Важнейший вопрос состоит в поиске более легкого способа. Перед запуском проекта VBA обратите внимание на встроенные инструменты и стандартные функциональные возможности. Например, если необходимо выполнить времяемкую задачу редактирования или размещения элементов, для решения проблемы следует рассмотреть возможность использования стилей или сочетания клавиш.
Можете ли вы выполнить задачу единожды, а затем повторить ее с помощью сочетания клавиш CTRL+Y («Повторить»)? Можно ли создать документ правильного формата или с нужным шаблоном и затем скопировать содержимое в новый документ?
Приложения Office обладают множеством возможностей. Возможно, нужное решение уже в них предусмотрено. Узнайте больше об Office, прежде чем начинать программирование.
Перед созданием проекта VBA убедитесь, что у вас есть время на работу с VBA. Программирование требует внимания и может оказаться непредсказуемым. Если вы начинающий программист, тем более не стоит увлекаться программированием, если не хватает времени на внимательную работу. Попытки написать «скрипт на скорую руку» для решения проблемы в сжатые сроки может привести к напряженной ситуации. Если вы торопитесь, воспользуйтесь более привычными методами, даже если они сопряжены с монотонностью и повторениями.
Введение в программирование на VBA
Использование кода для выполнения операций приложениями
Написание кода может казаться очень сложным и непонятным процессом.
На самом деле, его базовые принципы основаны на применении повседневной логики и вполне доступны. Объекты в приложениях Microsoft Office, созданные для получения инструкций, можно сравнить с кнопками телефона. Когда вы нажимаете кнопку, телефон распознает команду и включает соответствующую цифру в набираемую последовательность. При программировании вы взаимодействуете с приложением, отправляя инструкции различным объектам. Эти объекты эффективны, но у них есть свои ограничения. Они смогут делать только то, для чего были разработаны, и выполнять только ваши инструкции.
Например, представьте себе пользователя, который открывает документ Word, вносит несколько изменений, а затем сохраняет и закрывает его. Для программирования на VBA приложение Word предоставляет объект Document. Используя код VBA, можно заставить объект Document выполнять такие действия, как открытие, сохранение и закрытие.
В следующем разделе описывается организация объектов.
Объектная модель
Разработчики организуют объекты программирования в виде иерархии, и такая иерархия называется объектной моделью приложения.
В Word, например, есть объект верхнего уровня Application, который содержит объект Document. Объект Document содержит объекты Paragraph и т. д. В объектных моделях приблизительно отражено то, что вы видите в пользовательском интерфейсе. Они являются концептуальной картой приложения и его возможностей.
Определение объекта называется классом, и вы, возможно, увидите, как два этих термина используются попеременно. С технической точки зрения класс — это описание или шаблон, используемый для формирования или создания экземпляра объекта.
Уже существующим объектом можно управлять, задавая его свойства и вызывая его методы. Если представить объект в виде имени существительного, свойства станут прилагательными, описывающими существительное, а методы — глаголами, которые приводят его в действие. Изменение свойства приводит к модификации определенной характеристики внешнего вида или поведения объекта. Вызов одного из методов объекта заставляет последний выполнить какое-либо действие.
Код VBA в этой статье взаимодействует с приложением Office, в котором многие объекты, которыми управляет код, уже настроены и работают (например, объект Application приложения, Worksheet в Excel, Document в Word, Presentation в PowerPoint, объекты Explorer и Folder в Outlook).
Узнав основную структуру объектной модели и некоторые ключевые свойства объекта Application, которые предоставляют доступ к его текущему состоянию, можно расширить возможности приложения Office с помощью VBA в Office.
Методы
В Word, например, можно изменить свойства и вызвать методы текущего документа Word с помощью свойства ActiveDocument объекта Application. Это свойство ActiveDocument возвращает ссылку на объект Document, активный в приложении Word. «Возвращает ссылку на» означает «предоставляет доступ к».
В приведенном ниже коде выполняется именно то, что сказано; т. е. активный документ приложения сохраняется.
Application.ActiveDocument.Save
Прочитайте код слева направо: «В этом приложении (Application) с документом (Document), на который ссылается активный документ (ActiveDocument), вызовите метод сохранения (Save). Помните, что Save — самая простая форма метода; ему не нужны подробные инструкции от разработчика.
Объекту Document дается команда сохранения (Save), а дополнительные данные вводить не нужно.
Если методу требуются дополнительные данные, они называются параметрами. В приведенном ниже коде выполняется метод SaveAs, для которого требуется указать новое имя файла.
Application.ActiveDocument.SaveAs ("New Document Name.docx")
Значения, которые указываются в скобках после имени метода — это параметры. Здесь новое имя файла — параметр метода SaveAs.
Свойства
Для задания свойства используйте такой же синтаксис, что и для чтения свойства. В приведенном ниже коде выполняется метод для выбора ячейки A1 в Excel и затем задается свойство для записи данных в ячейку.
Application.ActiveSheet.Range("A1").Select
Application.Selection.Value = "Hello World"
Первая задача при программировании на VBA — осознать объектную модель каждого приложения Office и научиться читать синтаксис объекта, метода и свойства.
Во всех приложениях Office объектные модели похожи, но каждая из них обладает особенными характеристиками в соответствии с типом документов и объектов, которыми управляет.
В первой строке фрагмента кода указан объект Application, на этот раз это приложение Excel, а затем объект ActiveSheet, который предоставляет доступ к активному листу. После этого указан термин Range, который означает «определить диапазон ячеек следующим способом». Код указывает объекту Range создать себя с одной ячейкой A1. Другими словами, в первой строке кода объявляется объект Range и запускается метод для его выбора. Результат автоматически сохраняется в другом свойстве объекта Application с именем Selection.
Во второй строке кода задается значение свойства Value объекта Selection, равное «Hello World» и отображающееся в ячейке A1.
Самый простой код VBA может предоставлять доступ к объектам в приложении Office, с которым вы работаете, и задавать их свойства.
Например, можно получить доступ к строкам в таблице Word и изменить их форматирование в скрипте VBA.
Это звучит просто, но может быть невероятно полезно. Написав такой код, можно освоить всю мощь программирования для внесения одинаковых изменений в несколько таблиц или документов в соответствии с определенной логикой или каким-то условием. Сделать 1000 изменений для компьютера почти то же самое, что 10, поэтому при работе с большими документами и при решении множества проблем VBA может оказаться очень полезен и сэкономить много времени.
Макросы и редактор Visual Basic
Теперь вы кое-что знаете об объектных моделях в приложениях Office. Возможно, вам не терпится попробовать вызвать методы объекта, задать его свойства и отреагировать на события объекта. Для этого необходимо написать свой код так, чтобы он распознавался в Office. Обычно это делается с помощью редактора Visual Basic. Несмотря на то, что он установлен по умолчанию, многие пользователи даже не догадываются о его наличии до тех пор, пока не включат его на ленте.
Все приложения Office используют ленту. Одной из вкладок на ленте является вкладка Разработчик, где можно вызвать редактор Visual Basic и другие инструменты разработчика. Так как в Office вкладка Разработчик не показана по умолчанию, необходимо вывести ее на экран, выполнив указанные ниже действия.
Включение вкладки «Разработчик»
На вкладке Файл выберите Параметры, чтобы открыть диалоговое окно Параметры.
Выберите пункт Настроить ленту в левой части диалогового окна.
В разделе Выбрать команды, расположенном слева в окне, выберите Часто используемые команды.
В разделе Настроить ленту, который находится справа в диалоговом окне, выберите Основные вкладки в раскрывающемся списке, а затем установите флажок Разработчик.
Нажмите кнопку OK.

Примечание
В Office 2007 показ вкладки Разработчик выполняется путем нажатия кнопки Office, выбора пункта Параметры, а затем установки флажка Показать вкладку «Разработчик» на ленте в категории Популярные диалогового окна Параметры.
После включения вкладки Разработчик можно легко найти кнопки Visual Basic и Макрос.
Рисунок 1. Кнопки на вкладке «Разработчик»
Проблемы безопасности
Для защиты документов Office от вирусов и вредоносных макросов не сохраняйте код макросов в стандартных документах Office со стандартным расширением файла. Следует сохранить код в файле с особым расширением. Например, сохраняйте макросы не в стандартном документе Word с расширением DOCX, а в специальном документе Word с поддержкой макросов и расширением DOCM.
При открытии DOCM-файла система безопасности Office все равно может запретить запуск макросов в документе, сообщая или не сообщая об этом.
Изучите параметры и настройки центра управления безопасностью во всех приложениях Office. По умолчанию макросы отключены, но пользователь оповещается об этом и может включить их.
Можно указать специальные папки, в которых можно выполнять макросы, создав надежные расположения, надежные документы или надежных издателей. Самый универсальный способ — использовать надежных издателей. Этот способ подходит для работы с документами, у которых есть распространяемые вами цифровые подписи. Чтобы получить дополнительные сведения о параметрах безопасности в определенном приложении Office, откройте диалоговое окно Параметры, а затем выберите Центр управления безопасностью и Параметры центра управления безопасностью.
Примечание
Некоторые приложения Office, такие как Outlook, сохраняют макросы по умолчанию в основном шаблоне на локальном компьютере. Хотя это позволяет уменьшить количество проблем с безопасностью на локальном компьютере при выполнении собственных макросов, для распространения своих макросов в этом случае потребуется стратегия развертывания.
Запись макроса
Если нажать кнопку Макрос на вкладке Разработчик, открывается диалоговое окно Макрос, которое предоставляет доступ к подпрограммам или макросам VBA, которые можно использовать из определенного документа или приложения. Кнопка Visual Basic открывает редактор Visual Basic, где можно создавать и редактировать код VBA.
На вкладке Разработчик в Word и Excel также есть кнопка Запись макроса, которая автоматически создает код VBA, позволяющий воспроизводить ваши действия в приложении. Запись макроса — это великолепное средство, которое можно использовать для изучения VBA. Читая такой код, можно понять язык VBA и объединить знания пользователя и программиста Office. Только помните о том, что этот код может быть запутанным, так как редактор макросов делает допущения насчет ваших намерений, которые не всегда точны.
Запись макроса
Создайте книгу в Excel и откройте вкладку Разработчик на ленте.
Нажмите кнопку Запись макроса и оставьте все параметры по умолчанию в диалоговом окне Запись макроса, в том числе имя Макрос1 и расположение Эта книга.Нажмите кнопку ОК, чтобы начать запись макроса. Обратите внимание, что текст кнопки изменяется на Остановить запись. Нажмите эту кнопку, когда выполните все записываемые действия.
Выберите ячейку B1 и введите классическую первую строку программиста — Hello World. Прекратите ввод текста и посмотрите на кнопку Остановить запись. Она серая, так как Excel ждет, пока вы завершите ввод значения ячейки.
Выберите ячейку B2, чтобы завершить действие в ячейке B1, а затем нажмите кнопку Остановить запись.
Выберите пункт Макросы на вкладке Разработчик, выберите макрос Макрос1, если он еще не выбран, и нажмите кнопку Изменить, чтобы просмотреть код Макрос1 в редакторе Visual Basic.

Рисунок 2. Код макроса в редакторе Visual Basic
Код
Созданный макрос должен выглядеть указанным ниже образом.
Sub Macro1()
'
' Macro1 Macro
'
'
Range("B1").Select
ActiveCell.FormulaR1C1 = "Hello World"
Range("B2").Select
End Sub
Учтите схожие моменты с предыдущим примером кода, в котором выбирается ячейка A1, и отличия от него. В этом примере кода выбирается ячейка B1, а затем строка «Hello World» записываются в активную ячейку. Кавычки вокруг текста обозначают строковое значение (в противоположность числовому значению).
Вспомните, что для отображения кнопки Остановить запись нужно было выбрать ячейку B2. Это действие также задается в строке кода. Средство записи макроса записывает каждое нажатие клавиши.
Строки кода, начинающиеся с апострофа и выделенные зеленым цветом — это комментарии, которые поясняют код или напоминают другим программистам его предназначение. VBA игнорирует любую строку или ее часть, которые начинаются с одинарной кавычки.
Написание понятных и подходящих комментариев в коде очень важно, но в этой статье данная тема не затрагивается. В следующих ссылках на этот код в данной статье эти четыре строки комментариев отсутствуют.
Когда средство записи макроса генерирует код, оно использует сложный алгоритм для определения нужных методов и свойств. Если не удается распознать данное свойство, пользователь может воспользоваться множеством ресурсов. Например, в записанном макросе средство записи макроса сгенерировало код, который ссылается на свойство FormulaR1C1. Не знаете, что это значит?
Примечание
Помните, что объект Application используется во всех макросах VBA. В записанном коде объект Application. используется в начале каждой строки.
Использование справки разработчика
Выберите FormulaR1C1 в записанном макросе и нажмите F1. Система справки запустит быстрый поиск, определит, что нужные темы есть в разделе «Разработчик» справки Excel, и укажет свойство FormulaR1C1.
Можно щелкнуть ссылку, чтобы прочитать описание свойства, но прежде обратите внимание на ссылку Справочник по объектной модели Excel в нижней части окна. Щелкните ее, чтобы просмотреть список объектов, которые Excel использует в объектной модели для описания листов и их компонентов.
Выберите любой из них, чтобы просмотреть свойства и методы, которые применяются к этому объекту, а также ссылки на другие связанные с ними параметры. Многие записи справки содержат короткие примеры кода, которые могут быть полезны. Например, можно перейти по ссылкам в описании объекта Borders, чтобы узнать, как задать границу в VBA.
Worksheets(1).Range("A1").Borders.LineStyle = xlDouble
Редактирование кода
Код с границами отличается от записанного макроса. В объектной модели есть несколько способов адресации любого объекта (ячейки A1 в этом примере), что может вызывать затруднения.
Иногда самый лучший способ изучить программирование — вносить небольшие изменения в определенный рабочий код и смотреть, что получается.
Попробуйте сделать это сейчас. Откройте Макрос1 в редакторе Visual Basic и измените код указанным ниже образом.
Sub Macro1()
Worksheets(1).Range("A1").Value = "Wow!"
Worksheets(1).Range("A1").Borders.LineStyle = xlDouble
End Sub
Совет
Используйте копирование и вставку, где это возможно, чтобы избежать опечаток.
Для запуска сохранять код не требуется, поэтому вернитесь в документ Excel, выберите Макросы на вкладке Разработчик, выберите Макрос1 и нажмите кнопку Запустить. Теперь в ячейке A1 есть текст Wow!, а вокруг него размещена граница из двойных линий.
Рисунок 3. Результаты первого макроса
Только что вы записали макрос, прочитали документацию по объектной модели и написали простую программу на VBA, которая что-то делает. Поздравляем!
Программа не работает? Читайте дальше и узнайте о методах отладки в VBA.
Советы и приемы программирования
Начните с примеров
Сообщество программистов на VBA очень большое; поиск в Интернете почти всегда может дать пример кода на VBA, который выполняет почти те же действия, которые необходимы вам.
Если не удается найти хороший пример, попробуйте разбить задачу на более мелкие модули и выполнить поиск каждого из них. Или попробуйте найти более общую, но аналогичную задачу. Если начать с примеров, это может сэкономить много времени.
Это не означает, что в Интернете всегда доступен бесплатный и качественный код. В действительности, в найденных программах могут быть ошибки. Идея в том, что примеры из Интернета или документации по VBA помогают начать работу. Помните, что для изучения программирования требуется время и умственные усилия. Перед тем как использовать очередное решение для решения проблемы, спросите себя, подходит ли VBA для этого.
Упрощение задачи
Программирование может быстро стать сложной задачей. Важно, особенно для новичка, разбивать задачу на мельчайшие логические модули, а затем отдельно писать и проверять каждую часть. Если перед вами слишком много кода и вы запутались, остановитесь и отложите задачу. Когда вы к ней вернетесь, скопируйте небольшую часть задачи в новый модуль, разберитесь с ней, напишите работающий код и проверьте его.
Затем займитесь следующей частью.
Ошибки и отладка
Существует два основных вида ошибок программирования: синтаксические ошибки, которые нарушают грамматические правила языка программирования и ошибки времени выполнения, которые синтаксически правильны, но вызывают сбой, когда VBA пытается выполнить код.
Хотя исправлять синтаксические ошибки неприятно, их легко обнаружить; редактор Visual Basic выдает сопровождающееся звуковым сигналом сообщение об ошибке и меняет цвет текста, если при вводе кода найдена синтаксическая ошибка.
Например, в VBA строковые значения должны быть заключены в двойные кавычки. Чтобы узнать, что происходит при использовании одинарных кавычек, вернитесь в редактор Visual Basic и замените строку «Wow!» на ‘Wow!’ (т. е. слово Wow в одинарных кавычках). Если выбрать следующую строку, среагирует редактор Visual Basic. Сообщение об ошибке «Ошибка компиляции. Ожидается: выражение» не особо помогает, но строка, содержащая ошибку, становится красной, что говорит о синтаксической ошибке в этой строке.
В результате программа не будет запускаться.
Нажмите кнопку ОК и измените текст на «Wow!».
Ошибки времени выполнения обнаружить сложнее, так как синтаксически все выглядит правильно, но при попытке выполнить код возникает сбой.
Например, откройте редактор Visual Basic и измените имя свойства Value на ValueX в макросе, намеренно вызывая ошибку среды выполнения, так как у объекта Range нет свойства ValueX. Вернитесь к документу Excel, откройте диалоговое окно Макрос и запустите Макрос1 еще раз. Появится сообщение Visual Basic, в котором описывается ошибка во время выполнения: «Объект не поддерживает это свойство или метод». Хотя текст и так понятен, нажмите кнопку Отладка для получения дополнительных сведений.
После возвращения в редактор Visual Basic будет включен специальный режим отладки, в котором желтым цветом выделяется строка кода с ошибкой. Как и ожидалось, желтым выделена строка со свойством ValueX.
Можно внести изменения в исполняемый код VBA, поэтому измените ValueX на Value и нажмите маленькую зеленую кнопку воспроизведения в меню Отладка. Программа должна запуститься без ошибок.
Будет полезно узнать, как эффективнее использовать отладчик для более длинных и сложных программ. Хотя бы изучите, как устанавливать точки останова, чтобы прекращать выполнение программы там, где нужно взглянуть на код, как добавлять контрольные значения, чтобы просматривать значения разных переменных и свойств во время выполнения кода, и как пошагово, строка за строкой, выполнять код. Все эти возможности доступны в меню Отладка, а серьезный пользователь отладчика обычно запоминает соответствующие сочетания клавиш.
Правильное использование справочных материалов
Чтобы открыть справочник разработчика, встроенный в справку Office, откройте справку в любом приложении Office, выбрав вопросительный знак на ленте или нажав клавишу F1.
Затем справа от кнопки Поиск выберите стрелку раскрывающегося меню для фильтрации содержимого. Выберите Справочник разработчика. Если на левой панели не отображается содержание, щелкните маленький значок книги, чтобы открыть его, и разверните справочник по объектной модели.
Рисунок 5. Фильтрация справки разработчика работает во всех приложениях Office
Время, потраченное на исследование справочника по объектной модели, быстро окупится. Когда вы изучите базовый синтаксис VBA и объектную модель приложения Office, с которым вы работаете, можно перейти от догадок к методичному программированию.
Конечно, центр разработки Microsoft Office — это прекрасный портал со статьями, советами и форумами сообщества.
Поиск в форумах и группах
Рано или поздно все программисты попадают в ситуацию, когда невозможно решить какую-либо проблему, даже прочитав все найденные статьи и проведя много бессонных ночей в поисках ее решения.
К счастью, в Интернете появилось сообщество разработчиков, которые помогают друг другу при решении задач программирования.
Если поискать в Интернете «форум разработчиков Office», можно найти несколько таких групп обсуждений. Можно поискать «разработка Office» или описание проблемы и найти нужные форумы, блоги и статьи.
Если сделано все возможное, чтобы решить проблему, не бойтесь задать вопрос на форуме разработчиков. В таких форумах приветствуются вопросы от новичков-программистов, и многие опытные разработчики с радостью помогут им.
Далее описаны некоторые вопросы этикета, которых следует придерживаться при публикации на форуме разработчиков.
Перед публикацией поищите на сайте часто задаваемые вопросы или инструкции, которые следует соблюдать. Убедитесь, что публикация соответствует этим инструкциям и расположена в нужном разделе форума.
Представьте ясный и полный пример кода, и если он является частью более сложного кода, укажите это.

Опишите проблему четко и кратко и укажите действия, выполненные для решения проблемы. Не спешите и напишите вопрос, как можно лучше, даже если вы взволнованны или вам не хватает времени. Опишите ситуацию так, чтобы читатели поняли ее после первого прочтения.
Будьте вежливы и выражайте благодарность за все ответы.
Более подробное изучение программирования
Хотя это короткая статья, и в ней представлена лишь малая часть сведений о VBA и программировании, надеюсь, ее будет достаточно для начала.
В этом разделе кратко описываются некоторые другие важные темы.
Переменные
В примерах в этой статье использовались объекты, которые уже создало приложение. Иногда требуется создать собственные объекты для хранения значений или ссылок на другие объекты. Они называются переменными.
Чтобы использовать переменную в VBA, необходимо сообщить VBA, какой тип представляет переменная, с помощью оператора Dim.
Затем задается значение переменной, и она используется для установки других переменных и свойств.
Dim MyStringVariable As String
MyStringVariable = "Wow!"
Worksheets(1).Range("A1").Value = MyStringVariable
Ветвление и циклы
В примерах простых программ в этой статье код выполняется строка за строкой, сверху вниз. Реальные возможности программирования состоят в том, что можно определять, какие строки кода выполнять, в зависимости от одного или нескольких указанных условий. Эти возможности можно расширить, если повторять операцию нужное количество раз. Например, приведенный ниже пример кода расширяет Макрос1.
Sub Macro1()
If Worksheets(1).Range("A1").Value = "Yes!" Then
Dim i As Integer
For i = 2 To 10
Worksheets(1).Range("A" & i).Value = "OK! " & i
Next i
Else
MsgBox "Put Yes! in cell A1"
End If
End Sub
Введите или вставьте код в редакторе Visual Basic и запустите его. Следуйте инструкциям в появившемся окне сообщений и измените текст в ячейке A1 с «Wow!» на «Yes!», а затем выполните программу еще раз, чтобы ознакомиться с возможностями циклов.
В этом примере кода показаны переменные, ветвление и циклы. Просмотрите его внимательно после выполнения и попробуйте определить, что происходит после выполнения каждой строки.
Все приложения на вкладке «Мой Office»: примеры кода
Вот несколько скриптов, которые можно попробовать. Каждый из них решает реальную задачу Office.
Создание электронной почты в Outlook
Sub MakeMessage()
Dim OutlookMessage As Outlook.MailItem
Set OutlookMessage = Application.CreateItem(olMailItem)
OutlookMessage.Subject = "Hello World!"
OutlookMessage.Display
Set OutlookMessage = Nothing
End Sub
Помните, что бывают случаи, когда нужно автоматизировать электронную почту в Outlook или использовать шаблоны.
Удаление пустых строк на листе Excel
Sub DeleteEmptyRows()
SelectedRange = Selection.Rows.Count
ActiveCell.Offset(0, 0).Select
For i = 1 To SelectedRange
If ActiveCell.Value = "" Then
Selection.EntireRow.Delete
Else
ActiveCell.
Offset(1, 0).Select
End If
Next i
End Sub
Помните, что можно выбрать столбец ячеек и запустить этот макрос, чтобы удалить все строки в выбранном столбце с пустыми ячейками.
Удаление пустых текстовых полей в PowerPoint
Sub RemoveEmptyTextBoxes()
Dim SlideObj As Slide
Dim ShapeObj As Shape
Dim ShapeIndex As Integer
For Each SlideObj In ActivePresentation.Slides
For ShapeIndex = SlideObj.Shapes.Count To 1 Step -1
Set ShapeObj = SlideObj.Shapes(ShapeIndex)
If ShapeObj.Type = msoTextBox Then
If Trim(ShapeObj.TextFrame.TextRange.Text) = "" Then
ShapeObj.Delete
End If
End If
Next ShapeIndex
Next SlideObj
End Sub
Имейте в виду, что в коде выполняется цикл по всем слайдам и удаляются все текстовые поля, в которых нет текста. Переменная-счетчик уменьшается, а не увеличивается, так как при каждом удалении объекта он удаляется из коллекции, что уменьшает счетчик.
Копирование контакта из Outlook в Word
Sub CopyCurrentContact()
Dim OutlookObj As Object
Dim InspectorObj As Object
Dim ItemObj As Object
Set OutlookObj = CreateObject("Outlook.Application")
Set InspectorObj = OutlookObj.ActiveInspector
Set ItemObj = InspectorObj.CurrentItem
Application.ActiveDocument.Range.InsertAfter (ItemObj.FullName & " from " & ItemObj.CompanyName)
End Sub
Обратите внимание, что этот код копирует открытый контакт из Outlook в открытый документ Word. Этот код работает, только если в Outlook открыт контакт.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
16 терминов, которые необходимо знать для изучения VBA
Итак, вы создали свой первый (или первые несколько) макрос (макросы) Excel, возможно, выполнив следующие 7 простых шагов для создания макроса.
К настоящему времени ваши коллеги уже смотрят на вас, как на волшебника.
Это отличный признак того, что вы находитесь на правильном пути к изучению макросов и Visual Basic для приложений (VBA).
Однако…
Возможность создать базовый макрос в Excel — это только начало пути к тому, чтобы стать действительно эффективным и продуктивным пользователем макросов и VBA. Если вы действительно хотите раскрыть всю мощь этих инструментов, надо учить VBA из-за того, что в том числе запись макроса иногда просто не «режет».
Плохая новость (по крайней мере, для некоторых из вас) заключается в том, что использование VBA требует изучения программирования.
Хорошая новость заключается в том, что программирование в Excel не так сложно, как может показаться на первый взгляд. 16 ( на самом деле вы, вероятно, узнаете даже больше) основные термины, которые вам нужно знать, чтобы изучить программирование VBA . В частности, я сосредоточусь на основных терминах, которые вы будете постоянно находить в процессе становления экспертом VBA.
К тому времени, когда вы закончите читать это руководство для начинающих, вы будете понимать основы как минимум 16 основных терминов, которые вам необходимо знать для изучения Visual Basic для приложений. Ниже приведена схема этого учебника по Excel:
Содержание
Этот учебник по Excel VBA для начинающих сопровождается рабочими книгами Excel, содержащими данные и макросы, которые я использую в приведенных ниже примерах. Вы можете получите немедленный бесплатный доступ к этим примерам рабочих книг, нажав кнопку ниже .
Если некоторые (или все) приведенные выше термины кажутся вам совершенно странными, не волнуйтесь. До изучения VBA я учился и работал в двух профессиях, печально известных использованием специализированного жаргона, совершенно непонятного для посторонних: юриспруденция и финансы. Короче говоря… Visual Basic для приложений по-прежнему казался мне совершенно другим языком. Но потом я кое-что понял:
VBA действительно другой язык, и через некоторое время я понял, что его не так уж сложно выучить.
Это подводит меня к первому вопросу, который я затронул в этом руководстве по Excel VBA для начинающих…
Что такое VBA?
Как вы, возможно, уже знаете, VBA означает Visual Basic для приложений.
VBA — это язык программирования , разработанный Microsoft и включенный в большинство продуктов, входящих в состав Microsoft Office.
Что это означает?
Вы можете думать о языке программирования так же, как о любом другом языке: английском, испанском, немецком, французском, итальянском, португальском, хинди, китайском, корейском и т. д. Язык имеет несколько функций, но, для целей этого руководства по Excel VBA для начинающих я сосредоточусь на одном аспекте: общение.
Языки программирования немного отличаются тем, что вы обычно не используете их для общения с человеком. Вы используете язык программирования, такой как VBA, для связи с компьютером. В частности, вы передаете инструкции компьютеру.
Другими словами, Visual Basic для приложений — это язык, который позволяет вам и мне передавать инструкции в Excel .
Так что никак не обойти это:
Чтобы иметь возможность автоматизировать задачи в Excel и раскрыть его возможности, вы должны изучить VBA. Однако, как и следовало ожидать, VBA отличается от обычных человеческих языков.
В целом, коды, которые вы можете использовать для связи с вашим компьютером, немного отличаются от тех, которые вы используете для общения с другими людьми. Одна из основных причин этого заключается в том, что, несмотря на недавние достижения, компьютеры не могут в полной мере справляться с определенными функциями человеческого общения. К ним относятся, например, человеческое выражение лица и тела.
Представьте, что вы изучаете новый человеческий язык (например, французский, итальянский или испанский). Одним из предметов, который вам нужно изучить, является его структура, и, вполне вероятно, вы столкнетесь с такими терминами, как существительные, местоимения, глаголы, прилагательные и тому подобное. Если вы не слышали этих терминов раньше или вы, как и я, забыли их точное значение, изучение нового языка может быть довольно сложным.
Ну…
Языки программирования существенно не отличаются, поэтому для изучения такого языка, как Visual Basic for Applications, необходимо понимать его структуру. Поскольку эта структура не совсем такая же, как у человеческих языков, вы сталкиваетесь с некоторыми специальными (и разными) терминами, которые вам необходимо выучить.
И это то, где это руководство по Excel VBA для начинающих приходит на помощь. В следующих разделах я объясню вам некоторые из наиболее важных терминов, которые вам необходимо знать для изучения программирования на VBA . К концу этого руководства вы поймете основные строительные блоки Visual Basic для приложений, что позволит вам изучить этот язык программирования и овладеть им гораздо быстрее.
Вы можете в определенной степени провести аналогию между некоторыми классами слов (существительными, глаголами, наречиями и т. д.) в английском языке и некоторыми компонентами VBA, чтобы лучше понять эти элементы. В этом руководстве по Excel VBA для начинающих я в определенной степени использую аналогию между компонентами VBA и частями речи, но при необходимости использую другие иллюстрации.
Что такое макрос? Разница между макросами и VBA?
Макросы Excel и Visual Basic для приложений — это не совсем одно и то же , хотя они тесно связаны и иногда люди используют их взаимозаменяемо.
Как объяснялось выше, VBA — это язык программирования, который можно использовать в нескольких программах, входящих в состав Microsoft Office, таких как Excel, Power Point, Word и Access.
Макрос:
- Не является языком программирования.
- (обычно) Определяется как набор инструкций, которые вы используете для автоматизации приложения Microsoft Office (например, Excel).
Другими словами:
- Макрос — это последовательность инструкций, которым должен следовать Excel для достижения определенной цели .
- Visual Basic для приложений — это язык программирования, который можно использовать для создания макросов.
Возьмите, например, следующие инструкции:
Весь набор инструкций эквивалентен макросу Excel.
Это последовательность инструкций, которым следует следовать, чтобы достичь цели, в данном случае — насладиться трапезой цукэмэн.
Инструкции на изображении выше написаны на английском языке. Это эквивалент Visual Basic для приложений.
Итак… как видите: макросы VBA и Excel очень близки, но, строго говоря, это не одно и то же.
Однако, как вы увидите ниже, некоторые термины нередко используются взаимозаменяемо со словом макрос.
Что такое код VBA?
Здесь все может немного запутаться, но, пожалуйста, потерпите…
При работе с VBA вы выполняете код VBA. Этот код VBA выполняет (определенные) действия/задачи. Вы можете сгенерировать код VBA одним из следующих двух способов:
- Путем записи определенных действий, которые вы выполняете в книге Excel с помощью средства записи макросов.
- Написав код VBA в редакторе Visual Basic (VBE).
Ниже приведен очень простой пример кода VBA. Комментарии в верхней части (зеленым шрифтом) объясняют, что делает фрагмент кода.
Теперь вы можете задаться вопросом… В чем разница между макросом и кодом VBA?
Я не буду вдаваться в подробности (это не соответствует цели данного руководства по Excel VBA для начинающих). Для целей данного руководства нет существенной разницы. На самом деле в контексте нескольких приложений Microsoft Office термин «макрос» используется несколькими пользователями для обозначения кода VBA.
Некоторые пользователи Excel VBA различают код и макросы. С этой точки зрения:
- Термин «код VBA» (обычно) относится к набору команд VBA, которые вы создаете одним из следующих способов:
- Запись макроса; или
- Запись кода VBA в VBE.
- Термин «макрос» (обычно) относится к набору инструкций, которые Excel выполняет автоматически.
Теперь, когда определения макросов, кода VBA и VBA ясны (или, по крайней мере, яснее, чем в начале), давайте рассмотрим различные компоненты Visual Basic for Applications.
Что такое модуль?
В общих чертах модуль является эквивалентом контейнера VBA. Другими словами, это , где Excel фактически хранит код VBA .
Если вы видели грузовое судно или порт или когда-либо занимались морскими перевозками, вы могли видеть интермодальные контейнеры (такие, как на изображении ниже). Эти контейнеры используются, помимо прочего, для хранения товаров.
В Excel эквивалентом интермодальных контейнеров являются модули, а хранящиеся товары представляют собой фрагменты кода VBA.
Вы можете проверить, какие модули хранятся в рабочей книге Excel, над которой вы сейчас работаете, в Project Explorer (один из разделов редактора Visual Basic). На следующем снимке экрана показан пример Project Explorer, в котором имеется только 1 стандартный модуль (называемый «Module1»).
Стандартные модули также называются просто модулями. В дополнение к стандартным модулям существуют и другие типы модулей.
Модули состоят из процедур, поэтому, как вы понимаете, следующий логический вопрос…
Что такое процедуры и процедуры?
Процедура — это, в основном, часть компьютерной программы, которая выполняет определенную задачу или действие .
В более технических терминах процедура представляет собой блок операторов, заключенный в конкретный оператор объявления и объявление End. VBA поддерживает два типа процедур:
- Подпроцедуры, которые выполняют действие в Excel. Оператор объявления, с которого начинается процедура Sub, называется «Sub».
Например, следующий фрагмент кода VBA (комментарии в верхней части изображения описывают его основное назначение) является подпроцедурой. Обратите внимание на открывающее объявление, соответствующее объявление End и на то, как блок операторов заключен в этих двух объявлениях.
- Функциональные процедуры, которые выполняют вычисления и возвращают значение.
Подпроцедуры не возвращают значение, но функциональные процедуры могут выполнять определенные действия перед возвратом значения.
Практическое использование таких терминов, как подпроцедура, процедура, программа, процедура и макрос, может немного сбивать с толку.
В некоторых случаях эти термины взаимозаменяемы .
Возможно, наиболее важным различием, которое вы должны уметь различать, является различие между процедурами Sub и Function, как объяснялось выше. Вы можете обратиться к этим учебным пособиям по подпроцедурам и функциям для получения дополнительной информации.
Я полагаю, что у вас может возникнуть несколько вопросов, связанных с приведенным выше (более техническим) определением процедуры, поэтому давайте посмотрим на значение одного из его ключевых слов…
Что такое выписка?
Оператор — это инструкция . В некоторых контекстах можно выделить 2 основных типа операторов:
- Операторы объявления, как следует из их названия, используются для объявления чего-либо, например, переменной или константы.
При определении того, что такое подпроцедура, я показал вам пример оператора объявления. В данном конкретном случае этот оператор объявления является открывающим оператором Sub, который объявляет процедуру Sub с именем Best_Excel_Tutorial.

- Исполняемые операторы — это операторы, указывающие, что нужно выполнить определенное действие.
Макрос Best_Excel_Tutorial, использованный в качестве примера выше, имеет несколько исполняемых операторов. Например, оператор «ActiveCell.Select» указывает, что Excel должен выбрать текущую активную ячейку.
Особым типом исполняемых операторов являются операторы присваивания. Операторы присваивания присваивают определенное значение или выражение переменной или константе.
Что такое объекты?
Как вы видели выше, процедуры выполняют задачи или действия.
Вы можете задаться вопросом, что является целью этих задач? Другими словами, на , что Excel выполняет конкретное действие?
Ответ: объекты.
Рассмотрим английскую грамматику.
- В обычном английском языке объект (обычно) что-то сделал с/с ним .
- В реальной жизни вы можете найти объекты где угодно, включая ноутбук, который вы используете для работы в Excel.

Лошади — еще один пример объектов.
На самом деле, поскольку в детстве я был большим поклонником лошадей, я использую их для объяснения в этом руководстве по Excel VBA для начинающих, и в этом руководстве есть еще несколько изображений лошадей.
В Visual Basic for Applications все не так уж и отличается. Это связано с тем, что большая часть кода VBA работает с объектами (и манипулирует ими). В контексте Excel VBA вы можете работать с более чем 100 объектами.
Ниже приведены некоторые примеры объектов в Visual Basic для приложений:
- Книги.
- Рабочие листы.
- Диапазоны ячеек.
- Клетки.
- Шрифты ячеек.
Можете ли вы найти 2 объекта в макросе Best_Excel_Tutorial, который использовался в качестве примера?
Если нет, не волнуйтесь; Я указываю на них для вас на следующем скриншоте.
Объекты ActiveCell и Selection, которые я выделил выше, являются одними из наиболее распространенных.
- ActiveCell относится к текущей активной ячейке в текущей активной книге Excel.
- Выбор относится к выбранному в данный момент объекту, которым в приведенном выше примере является ячейка.
Объекты определяются классами, поэтому следующий вопрос…
Что такое классы?
Как я упоминал выше, классы определяют объекты и, в частности, классы определяют следующие аспекты объекта:
- Переменные.
- Недвижимость.
- Процедуры.
- События.
В результате вышеизложенного вы можете:
- Думать об объектах как о экземплярах классов; или
- (Аналогично) Воспринимайте классы как чертежи.
Например, предположим, что вы когда-то руководили компанией, которая производила пленочные камеры. У этой компании был базовый чертеж или технический чертеж, например:0011 эквивалент класса VBA. Как только у компании появится план, она сможет производить настоящие камеры.
Фактически производимые камеры эквивалентны объекту VBA .
Классы — это немного продвинутая тема Excel, поэтому поначалу вы вряд ли будете много с ними работать. Но, на всякий случай, теперь вы знаете, что такое класс и чем он отличается от объекта и связан с ним.
Что такое коллекции?
В Visual Basic для приложений коллекция слов относится к коллекциям объектов.
На базовом уровне общее использование набора слов не слишком отличается от его использования в VBA. Как и следовало ожидать, в самых общих чертах коллекция — это группа объектов, точнее, группа связанных объектов.
Таким образом, вы можете использовать коллекции для группировки и управления объектами, которые связаны между собой.
На базовом уровне концепция коллекций относительно проста, но если вам нужна более наглядная иллюстрация, ознакомьтесь со следующей коллекцией доктора Сьюза.
В контексте VBA:
- Коллекции являются объектами .

- Существует (также) класс-коллекция.
Если коллекции группируют объекты, между которыми есть какая-то связь, у вас может возникнуть вопрос…
Как объекты связаны друг с другом?
Объекты могут быть связаны друг с другом несколькими способами. Тем не менее, основным типом отношений является сдерживание .
Отношения вмещения присутствуют, когда объекты помещаются в объект-контейнер. Это означает, что объекты могут содержать внутри себя другие объекты, например пластиковый контейнер (объект), в котором находятся книги доктора Сьюза (другие объекты) на изображении выше.
Очень хорошим примером отношения вмещения является набор объектов.
Другой важный тип отношений — иерархический, который в основном применим к классам. Иерархические отношения возникают, когда класс является производным от более фундаментального класса.
Что такое недвижимость?
Объекты имеют свойства. Это атрибуты, характеристики или качества, которые можно использовать для описания объекта .
Я освещаю тему свойств в этом учебнике по Excel.
VBA позволяет выполнять следующие действия:
- Читать текущее значение свойств объекта; и
- Изменить свойства объекта.
Возьмем, к примеру, эту лошадь:
Какие у нее свойства? Как насчет цвета волос или глаз? Размер его ушей?
Вы поняли.
Помимо свойств, у объектов есть методы. Как и следовало ожидать, следующий вопрос, на который я отвечу,…
Что такое методы?
Чтобы понять, что такое методы, вернемся к английской грамматике.
Как я объяснял выше при определении термина «объект», с объектом что-то делают. Метод — это «что-то», что делается с объектом . Другими словами: метод выражает действие, выполняемое с/на объекте.
С грамматической точки зрения метод (в VBA) примерно эквивалентен глаголу (в английском языке). Подробнее о методах я рассказываю здесь .
Давайте продолжим использовать лошадей, чтобы проиллюстрировать значение этих компонентов Visual Basic for Applications:
Какой пример метода (глагола) можно применить к лошади?
Как насчет верховой езды?
Как свойства и методы выглядят в Excel?
Вернемся к макросу Best_Excel_Tutorial, который я использовал в качестве примера в данном руководстве для начинающих.
Если вы запустите этот макрос, Excel сделает следующее:
- Введите «Это лучший учебник по Excel» в активную ячейку.
- Автоматически подбирает ширину столбца активной ячейки.
- Окрашивает активную ячейку в красный цвет.
- Изменяет цвет шрифта активной ячейки на синий.
Теперь, когда вы знаете, что такое свойство и что такое метод:
Сможете ли вы отличить, что из вышеперечисленного относится к свойству, а что к методу?
Чтобы ответить на этот вопрос, давайте еще раз взглянем на код VBA:
И давайте подробнее рассмотрим соответствующие строки, чтобы определить, относятся ли они к свойству или методу:
- «ActiveCell.FormulaR1C1 = «Это лучший учебник по Excel»» указывает Excel написать «Это лучший учебник по Excel» в активной ячейке.
ActiveCell возвращает объект. Точнее, возвращает текущую активную ячейку.Так что же такое FormulaR1C1? Свойство или метод?
Имущество.
Точнее, Формула R1C1 устанавливает формулу для ActiveCell. - «Selection.Columns.AutoFit» указывает Excel автоматически подгонять столбец активной ячейки.
В этом случае объект представлен Selection.Columns, который представляет столбец текущей активной ячейки.Так что же является оставшейся частью утверждения? AutoFit — это свойство или метод?
Если вы ответили методом, вы правы. AutoFit изменяет ширину соответствующего столбца для достижения наилучшего соответствия. Другими словами, что-то делает (автоподгонка) к объекту.
- Часть первого оператора With… End With, которая фактически устанавливает цвет заливки активной ячейки, называется «.Color = 255».
Все отдельные операторы в этом операторе With… End With (включая «.Color = 255») относятся к Selection.Interior. Это внутренняя часть текущего выделения (в данном случае активной ячейки).Вы знаете, какой вопрос придет:
Цвет — это свойство или метод?
Поскольку Color устанавливает основной цвет внутренней части активной ячейки, ответом является свойство.

- Наконец, часть второго оператора With… End With, которая определяет цвет шрифта, называется «.Color = –4165632».
Для целей данного руководства по Excel VBA для начинающих это практически тот же случай, что и выше. В этом случае делается ссылка на Selection.Font, который в этом примере является шрифтом текста в активной ячейке.И, поскольку вы уже знаете, что Цвет — это свойство, я больше не буду вас спрашивать 😉 .
Что такое переменные и массивы?
В информатике переменная представляет собой место хранения , которое вы связываете с именем и используете для представления определенного значения. Это значение сохраняется в памяти компьютера.
Другими словами: вы используете переменные в качестве заполнителей для определенных значений. Вы можете думать о переменных как о конвертах.
Как можно использовать конверты для хранения информации?
Вы можете, например:
- Вложить информацию в конверт.
Это содержимое конверта или, для целей программирования, значение переменной. - Напишите имя на конверте. Это имя конверта или переменной.
Теперь давайте представим, что вам нужно сказать кому-то, чтобы получить информацию, которая находится внутри конкретного конверта. Вы можете описать необходимую информацию одним из следующих способов:
- Описав саму информацию. В этом случае человек, который вам помогает, должен открыть каждый конверт, чтобы проверить его содержимое.
- Упомянув имя соответствующего конверта. В этом случае человеку, помогающему вам, не нужно открывать каждый конверт, чтобы узнать, где находится часть информации, которую ему нужно получить.
Вы представляете, почему обращение к названию конверта, а не к самой информации, может быть более эффективным вариантом?
Но вернемся к самой важной теме:
Лошади!
Бьюсь об заклад, вы этого не ожидали 😛 … но давайте представим, что у вас есть одна из лошадей на изображениях выше, и очень важной частью рациона вашей лошади являются кубики сахара.
У лошади 5 разных смотрителей, и каждый день она должна съедать от 5 до 10 кубиков сахара. Чтобы гарантировать, что это так, вы устанавливаете следующее правило: каждый смотритель должен давать лошади 1 или 2 кусочка сахара в день.
В начале каждого дня каждый смотритель должен сообщить, сколько кубиков сахара он дал лошади накануне. Этот отчет делается путем заполнения следующей таблицы Excel.
Поскольку вы очень эффективный менеджер, вы хотите запрограммировать приложение VBA (назовем его «Horse_Sugar_Cubes»), которое делает следующее:
- Спрашивает каждого смотрителя, сколько кубиков сахара они дали лошади.
- Если кто-то из смотрителей не выполнил правило, которое требует от него дать 1 или 2 кубика сахара лошади, выдает напоминание.
Прежде чем мы взглянем на фактический код VBA, проверьте, как макрос Horse_Sugar_Cubes работает на практике:
Это руководство по Excel VBA для начинающих сопровождается рабочими книгами Excel, содержащими данные и макросы, которые я использую (включая макрос Horse_Sugar_Cubes ).
Вы можете получить немедленный бесплатный доступ к этим примерам рабочих книг, нажав кнопку ниже .
Приступим к настройке приложения Horse_Sugar_Cubes. Для этих целей вы можете использовать следующие две переменные:
- Переменная, в которой хранится количество кубиков сахара, переданных лошади конкретным смотрителем. Вы можете назвать эту переменную сахараCubes.
- Переменная, в которой хранится идентификационный номер смотрителя. Вы можете назвать эту переменную caretakerNumber.
Как вы создаете эти переменные?
Чтобы создать переменную в Visual Basic для приложений, ее необходимо объявить. Когда вы объявляете переменную, вы определяете, каково ее имя и каковы характеристики конкретной переменной, а также указываете компьютеру выделить некоторое пространство для хранения.
Вы объявляете переменную в VBA с помощью оператора Dim. Я объясняю тему объявления переменных в этом учебнике по Excel.
На данный момент имейте в виду следующее:
- Вы можете объявлять переменные на разных уровнях. Уровень, на котором вы объявляете переменную, определяет, когда эта переменная применима.
Например, вы можете объявить переменную в верхней части модуля. Эта переменная известна как переменная уровня модуля и существует, пока модуль загружен. Кроме того, они доступны для использования в любой процедуре соответствующего модуля.
Вы также можете создать переменную с более ограниченным охватом, объявив переменную внутри процедуры. В этом случае эта переменная известна как переменная уровня процедуры. Переменные уровня процедуры могут использоваться только в соответствующей процедуре, в которой они были объявлены.
- Поскольку вы используете переменные для хранения разных типов данных, вы можете определить разные типы для переменных. Вы делаете это, используя ключевое слово As.
Примерами типов, которые можно указать для переменной, являются Integer, Boolean, String и Range.

Давайте посмотрим, как на практике можно объявить переменные caretakerNumber и SugarCubes.
Я вернусь к теме переменных далее в этом руководстве по Excel VBA, чтобы объяснить, как вы можете использовать переменные в макросе VBA, чтобы помочь вам отслеживать, сколько кубиков сахара дается лошади каждый день.
В заключение позвольте мне сделать кратким введением в массивы . Я предоставляю более подробное введение в массивы в этом руководстве по VBA 9.0012 .
Переменные, содержащие одно значение, называются скалярными переменными . Вы используете скалярные переменные при работе с одним элементом.
Что делать, если вы работаете с группой элементов, связанных друг с другом?
В этих случаях вы используете массивы. Массивы — это наборы индексированных элементов, которые имеют один и тот же тип данных и имеют между собой логическую связь . Функция по существу такая же, как и у переменной: хранение значений.
Основное отличие в том, что 9Массивы 0011 могут хранить несколько значений , тогда как скалярные переменные могут содержать только одно значение.
При использовании массива вы обращаетесь к различным элементам массива, используя общее имя, и различаете их числом (называемым индексом или индексом). Например, если у вас есть группа из 10 лошадей, пронумерованных от 1 до 10, вы можете называть их лошадьми(1), лошадьми(2), лошадьми(3) и так далее до лошадей(10).
Продолжим изучение основных компонентов VBA, которые появляются в приложении Horse_Sugar_Cubes, поняв…
Что такое состояние?
Условие — это оператор или выражение, которое оценивается как истинное или ложное . Затем, , в зависимости от того, было ли выражение оценено как истинное или ложное, Excel выполняет (или не выполняет) группу операторов . Другими словами: если условие выполнено (истинно), что-то происходит.
Можете ли вы придумать, как можно применить условный оператор в разрабатываемом вами приложении VBA, чтобы отслеживать, сколько кубиков сахара дают вашей лошади смотрители?
Подсказка: условные операторы часто используют структуру if-then.
Если вы внимательно посмотрите на описание двух вещей, которые должно делать приложение Horse_Sugar_Cubes, вы заметите, что второй шаг следует структуре if-then. Точнее:
- Если кто-то из смотрителей не соблюдает правило, которое требует от него давать лошади 1 или 2 кусочка сахара…
- Затем макрос Horse_Sugar_Cubes выдает напоминание.
Если вы пользователь Excel, вы могли заметить, что условия не являются исключительными для программирования VBA. Например, некоторые функции Excel, такие как функция ЕСЛИ, позволяют проверить, верно условие или нет, и в зависимости от результата выполнить то или иное действие. Кроме того, вы можете использовать другие функции, такие как ISNUMBER, для выполнения логических тестов.
Существует несколько способов структурирования условных операторов в приложениях Visual Basic. Для приложения Horse_Sugar_Cubes вы можете использовать оператор If…Then…Else.
Как это выглядит в редакторе Visual Basic?
Вы можете использовать следующий оператор If…Then для макроса Horse_Sugar_Cubes:
Давайте посмотрим на каждую из строк в этом фрагменте кода: либо истинно, либо ложно.
Эта конкретная строка просит Excel проверить, меньше ли значение сахараCubes (количество кубиков сахара, которое конкретный смотритель дал лошади) 1 или больше 2. Другими словами, именно здесь Excel подтверждает, является ли конкретный смотритель соблюдал правило, которое требует, чтобы он давал лошади 1 или 2 кусочка сахара в день.
Если одно из этих двух условий истинно, Excel выполняет оператор, который появляется во второй строке. Если ни одно из двух условий не выполняется (оба ложны), Excel не выполняет инструкцию во второй строке.
В этом случае, если сторож не дал ни одного кубика сахара (менее 1) или дал лошади более 2 кубиков сахара в определенный день, Excel отображает в диалоговом окне сообщение, напоминающее смотрителю, что он «должен давайте лошади 1 или 2 кусочка сахара в день».

Теперь вы знаете, как создавать переменные, в которых хранится количество кубиков сахара, выданных лошади каждым смотрителем, и идентификационный номер каждого смотрителя. Вы также знаете, как заставить Excel напоминать сторожу о правиле, которое гласит, что они должны давать лошади 1 или 2 кусочка сахара в день, если они этого не сделали.
Вам нужен только один дополнительный компонент VBA для завершения базовой структуры вашего макроса Horse_Sugar_Cubes:
Как заставить Excel запрашивать у каждого из 5 смотрителей, сколько кубиков сахара он дал лошади?
Я помогу вам ответить на этот вопрос в следующем разделе.
Что такое цикл?
Циклы — это операторы, которые:
- Указываются один раз, но…
- Проводятся несколько раз.
Другими словами, цикл — это конкретный оператор, который заставляет группу инструкций выполняться несколько раз . Как и в случае с условными операторами, циклы можно структурировать несколькими способами.
Однако для целей приложения Horse_Sugar_Cubes можно использовать оператор For Each…Next . Этот оператор просит Excel повторно выполнить группу операторов для каждого из компонентов определенной группы.
На практике это выглядит примерно так. Это оператор For Each…Next макроса Horse_Sugar_Cubes, который я использую в качестве примера в этом руководстве по Excel VBA для начинающих.
Обратите внимание на наличие условного оператора, который я объяснил в предыдущем разделе.
Однако для целей этого раздела более важна общая структура оператора For Each…Next, так что давайте взглянем на него.
- Вначале оператор For Each…Next должен говорить «Для каждого элемента определенного типа в определенной группе». В приведенном выше примере эта строка имеет следующий вид:
Элемент слова относится к конкретным элементам коллекции, через которые должен проходить цикл. В случае, который я использую в качестве примера, элементами являются SugarCubes.
В данном конкретном случае сахараCubes определяется как объектная переменная Range. Если вы находитесь в ситуации, когда элемент не был объявлен ранее, вы объявляете его тип данных.
Последняя часть оператора относится к группе, в которой находятся элементы. В данном случае это диапазон ячеек с C5 по C9. Это коллекция, над которой повторяются операторы внутри цикла.
Другими словами, Excel применяет набор инструкций внутри цикла к каждой из ячеек, выделенных на следующем снимке экрана.
- Тело простого оператора For Each…Next, такого как в макросе Horse_Sugar_Cubes, включает определенное количество инструкций, которые Excel применяет к каждому из элементов в группе (в соответствии с тем, что указано в первой строке).
В примере, используемом в этом руководстве по Excel VBA для начинающих, тело операторов выглядит следующим образом:
Приведенная выше группа операторов является очень простым примером. Существуют более сложные структуры, включающие операторы (например, Continue For или Exit For), которые можно использовать для передачи управления различным частям кода VBA.
- Последняя инструкция инструкции For Each…Next имеет вид «Следующий элемент». В приведенном выше примере это выглядит следующим образом:
Этот оператор просто завершает определение цикла и сообщает Excel, что после выполнения инструкций внутри цикла он должен перейти к следующему элементу (в данном случае к следующему элементу). сахарные кубики).
Подводя итог, можно сказать, что открывающая и закрывающая строки оператора For Each…Next сообщают Excel, что он должен выполнять инструкции внутри цикла для каждой из 5 ячеек, где количество кубиков сахара, переданных лошади каждым смотрителем, равно быть записаны.
Пример макроса: Horse_Sugar_Cubes
Прежде чем я закончу это руководство по Excel VBA для начинающих, давайте в последний раз построчно рассмотрим полный код VBA макроса Horse_Sugar_Cubes, чтобы просмотреть некоторые из основных терминов, которые были рассмотрены в этом руководстве. направлять и понимать каждую из инструкций, лежащих в основе приложения.
Для удобства приведем еще раз иллюстрацию того, как макрос Horse_Sugar_Cubes работает на практике:
Давайте рассмотрим основные элементы этого макроса, а также сделаем несколько общих комментариев, чтобы проиллюстрировать каждый из терминов, рассматриваемых в этом руководстве:
#1. Общие аспекты.
Приложение Horse_Sugar_Cubes написано на языке Visual Basic для приложений или VBA, который можно использовать для передачи инструкций в Excel .
Horse_Sugar_Cubes сам по себе является макросом , последовательностью инструкций для Excel, которым следует . Код, показанный на снимке экрана выше, является примером кода VBA. Термины макрос, код VBA, подпроцедура, процедура и процедура иногда используются взаимозаменяемо.
Код VBA для приложения Horse_Sugar_Cubes хранится Excel в модуле, контейнере, где Excel хранит код VBA .
Макрос Horse_Sugar_Cubes содержит несколько операторов или инструкций .
#2. Sub Horse_Sugar_Cubes() и End Sub.
Первая строка кода на снимке экрана выше объявляет подпроцедуру Horse_Sugar_Cubes. Подпроцедура — это ряд операторов, которые находятся между операторами Sub и End Sub, а точнее, представляет собой 0011 часть компьютерной программы, выполняющая действие .
Другим основным типом процедур в VBA являются процедуры Function, которые выполняют вычисления и возвращают определенное значение .
Последняя строка кода на снимке экрана выше завершает выполнение подпроцедуры Horse_Sugar_Cubes. Как только Excel выполнит эту строку, макрос перестанет работать.
#3. Dim caretakerNumber как целое число и Dim SugarCubes как диапазон.
В Visual Basic для приложений переменные обычно объявляются с помощью оператора Dim. После этого можно определить имя переменной и ее характеристики. Компьютер выделяет место для хранения переменной, а затем вы можете использовать объявленную переменную в качестве заполнителя для представления определенного значения .
В приведенном выше примере объявлены 2 переменные. caretakerNumber объявляется как целое число, а SugarCubes — как диапазон.
#4. номер смотрителя = 1.
Эта строка представляет собой оператор присваивания, который присваивает значение 1 переменной caretakerNumber. В результате этого присваивания каждый раз, когда выполняется макрос Horse_Sugar_Cubes, для значения caretakerNumber устанавливается начальное значение 1.
#5. Для каждого… следующего оператора.
Оператор For Each…Next просит Excel повторно выполнить группу операторов для каждого члена группы. Этот тип оператора является одним из самых простых способов реализации цикл, оператор, который заставляет определенную группу инструкций повторяться несколько раз .
В случае макроса Horse_Sugar_Cubes цикл запрашивает у Excel повторение соответствующего набора инструкций для каждого из 5 смотрителей лошади. Давайте взглянем на тело инструкции For Each…Next, чтобы понять повторяющийся набор инструкций:
- SugarCubes.
Value = InputBox(«Количество кубиков сахара, которые дал лошади смотритель» & caretakerNumber).
Первая часть строки (sugarCubes.Value =) присваивает значение переменной сахараCubes.Вторая часть оператора (InputBox («Количество кубиков сахара, переданных лошади смотрителем» и номер сторожа)) предписывает Excel отобразить всплывающее поле ввода, в котором спрашивается, сколько кубиков сахара дано лошади каждым смотритель. Введенное в поле число записывается в соответствующую ячейку рабочего листа Excel и является значением, присвоенным переменной сахараCubes.
Поле ввода ссылается на каждого смотрителя по его идентификационному номеру (от 1 до 5) путем вызова значения переменной caretakerNumber (например, первый смотритель называется смотритель 1 и т. д.). Как следствие оператора, расположенного непосредственно над оператором For Each…Next (caretakerNumber = 1), значение переменной caretakerNumber в начале процесса всегда равно 1. Ниже я объясню, какой оператор просит Excel обновить номер опекуна для соответствующий смотритель.

- Условный оператор.
Условные операторы оценивают определенное условие и, в зависимости от результата (истина или ложь), Excel выполняет (или воздерживается от выполнения) определенные действия.Условный оператор в макросе Horse_Sugar_Cubes оценивает, дал ли смотритель лошади менее 1 или более 2 кубиков сахара (поэтому не соответствует правилу, которое требует, чтобы они давали лошади 1 или 2 кубика сахара в день). ). Если выполняется любое из двух условий (количество кубиков сахара, данных лошади, меньше 1 или больше 2), Excel отображает окно сообщения с напоминанием, в котором говорится: «Вы должны давать 1 или 2 кубика сахара в день лошади». лошадь».
- номер_смотрителя = номер_смотрителя + 1. Этот оператор увеличивает значение переменной номер_смотрителя на 1 при каждом последующем повторении оператора For Each…Next.
Следовательно, во второй раз набор инструкций повторяется макросом, caretakerNumber равен 2.
В третий раз переменная имеет значение 3. Как и следовало ожидать, значения для четвертого и пятого раз равны 4 и 5 соответственно.
Заключение
Вы дошли до конца этого руководства по Excel VBA для начинающих.
К настоящему моменту, основываясь на том, что вы узнали из этого руководства для начинающих, вы знаете значения не менее 16 основных терминов, которые необходимо знать для изучения программирования на VBA . Вы также сможете понять, как некоторые из этих терминов иногда используются взаимозаменяемо, и некоторые обсуждения, касающиеся их использования.
Кроме того, вы видели, как эти концепции объединяются в макрос, и знаете, как некоторые компоненты VBA, описанные в этом руководстве по Excel VBA для начинающих, могут быть реализованы на практике.
Я надеюсь, что этот учебник по Excel для начинающих доказал, что самые важные термины, которые вам нужно знать для изучения программирования VBA, не так уж сложны для понимания.
Вы, вероятно, найдете термины, которые были рассмотрены в этом конкретном руководстве для начинающих много раз во время вашего пути к тому, чтобы стать экспертом VBA, поэтому вы можете добавить этот пост в закладки и возвращаться по мере необходимости в будущем Visual Basic для приложений. исследования.
Фотографии: «Инструкции Tsukemen» Альпера Чугуна, «Мой новый ноутбук действительно потрясающий». Майкл Люнг, «Погулять по пляжу Росарито», Джон Лю, «19патент на 52 рулонную пленочную камеру» от www.patentswallart.com, «Dr. Seuss collection» от EvelynGiggles, «Schleich» от Lulu_Sunset, «Envelopes» от Kevin Steinhardt, «Sugar» от –Uwe Hermann и «Horse Racing» от Paul, лицензированы в соответствии с CC BY 2.0.
Учебное пособие по Excel VBA с примерами VBA в реальном времени
VBA расшифровывается как Visual Basic Analysis. Excel VBA — это язык программирования Microsoft для приложений Office, таких как MS-Excel, MS-Word и MS-Access. Макросы — это то, что использует большинство людей, пишущих код VBA.
Что такое VBA?
Visual Basic для приложений — это удобочитаемый и редактируемый программный код, который генерируется при записи макроса. Сегодня он широко используется с другими приложениями Microsoft Office, такими как MS-Word, MS-Excel и MS-Access.
Включить параметр разработчика в Excel
По умолчанию скрывает вкладку «Разработчик» на ленте. Чтобы настроить ленту, выполните шаги, указанные ниже:
- Щелкните правой кнопкой мыши на ленте (в любом месте), выберите параметр «Настроить ленту».
- Перейдите в раздел «Настройка ленты» и установите флажок «Разработчик».
Интерфейс редактора VBA
Вы можете открыть интерфейс VBA с помощью сочетания клавиш ALT + F11 или перейти на вкладку «Разработчик» и щелкнуть Visual Basic.
Создание макроса Excel с помощью командной кнопки
Создать кнопку управления
Теперь, когда вы включили вкладку разработчика и немного познакомились с редактором VBA, давайте начнем создавать макрос с помощью командной кнопки.
Чтобы разместить командную кнопку на листе, выполните следующие действия:
- Перейдите на вкладку «Разработчик» > «Вставка» > «Элементы управления ActiveX» > «Командная кнопка».
- Перетащите командную кнопку на рабочий лист.
Назначение макроса командной кнопке
Чтобы назначить макрос командной кнопке, выполните следующие действия:
- Щелкните правой кнопкой мыши командные кнопки и выберите «Просмотреть код».
- Добавьте следующие строки кода, показанные ниже.
- Закройте редактор VBA и нажмите кнопку команды на рабочем листе. Не забудьте отменить выбор режима проектирования.
Создать окно сообщений
MsgBox — это диалоговое окно в Excel, которое будет отображать сообщение на вашем листе. Чтобы создать MsgBox, добавьте следующие строки кода в командную кнопку.
Теперь при нажатии на кнопку вы получите следующее сообщение.
Создать поле ввода
Функция InputBox предлагает пользователю ввести значения и возвращает информацию, введенную в диалоговом окне.
Синтаксис:
InputBox(приглашение[название][по умолчанию][xpos][ypos][файл справки,контекст])
Чтобы добавить поле ввода к вашей командной кнопке, выполните следующие действия:
- Объявите имя переменной и сохраните вариант типа. Вариантная переменная может содержать значение любого типа.
- Добавьте следующий код, чтобы отобразить поле ввода.
- Теперь, когда вы нажмете на командную кнопку, вы получите запрос на ввод значения.
- Введите данные и нажмите OK. Он введет ваш ввод в ячейку A1.
Переменные, константы и операторы в VBA
Переменные
Переменные — это типы данных, которые используются для хранения значения. Мы можем изменить переменные во время выполнения программы.
Синтаксис: Dim <<имя_переменной>> As <<тип_переменной>>
Мы можем разделить типы данных VBA на две категории:
- Числовые типы данных.
Числовые типы данных состоят из байтов, целых чисел, длинных, одинарных, двойных, валютных и десятичных чисел. - Нечисловые типы данных: Нечисловые типы данных состоят из строки, даты, логического значения, объекта и варианта.
Константы
Константы — это фиксированное значение, которое нельзя изменить во время выполнения программы.
Синтаксис:
Константа <<имя_константы>> As <<тип_константы>> = <<значение_константы>>
Пример:
При нажатии на командную кнопку вы получите следующий вывод:
Манипуляции со строками
Обработка строк — это процесс анализа, манипулирования и эффективной обработки строковых значений.
Соединение строк
Вы можете соединить две строки с помощью оператора &. Это также известно как конкатенация.
Нажмите на командную кнопку, чтобы получить следующий результат.
Левый
Ключевое слово left будет извлекать символы с крайней левой стороны строки.
Цикл If, If-Else, For и While
Оператор If
Оператор If — это условный оператор, состоящий из выражения, за которым следует другое выражение. Если условие истинно, выполняются строки кода под оператором If.
Синтаксис:
Если(логическое_выражение) Тогда
Выписка 1
…..
…..
Выписка №
Конец, если
Пример:
Введите отметки в ячейку A1 и нажмите на командную кнопку, чтобы получить результат.
Если-иначе
Оператор If — это условный оператор, состоящий из выражения, за которым следует другое выражение. Если условие истинно, выполняются строки под телом оператора If. Если он говорит, что условие является ложным, он выполняет операторы в Else Part.
Для цикла
Цикл for — это оператор потока управления, который позволяет пользователю написать цикл, который может выполняться многократно.
Пример:
Следующий код вызовет окно сообщения, показывающее значение от 0 до 6 с промежутком 2.
Пока Цикл
В цикле while, если операторы верны, они выполняются до тех пор, пока не встретят ключевое слово Wend. Если утверждение ложно, цикл завершается и выполняется переход к следующему утверждению.
Синтаксис:
Пока состояние(я)
[операторы 1]
[операторы 2]
…
[утверждения №]
Венд
Пример:
Функции и подпроцедуры
Функции
Функции — это многоразовый код, который можно вызывать в любом месте программы. Вы можете использовать код снова и снова в своей программе. Чтобы создать функцию в окне VBA, перейдите в меню «Вставка» > «Модуль», и он создаст новый модуль.
В следующем коде показан пример простой функциональной процедуры VBA, которая получает два аргумента.
Приведенный ниже код вызывает функцию, определенную выше:
Результат:
Подпроцедура
Подпроцедуры аналогичны функциям с небольшими отличиями.
Подпроцедура не возвращает значение и может быть вызвана без ключевого слова call.
В следующем коде показан пример простой подпрограммы VBA, которая вычисляет площадь.
В приведенном выше примере показано, как подпроцедуры выполняют действия, но не возвращают значения.
Результат:
Получите опыт работы с новейшими инструментами и методами бизнес-аналитики с помощью магистерской программы для бизнес-аналитиков. Зарегистрируйтесь сейчас!
Заключение
На этом вы дошли до конца этого руководства по Excel VBA для начинающих. В этом руководстве мы рассмотрели несколько тем, начиная от редактора VBA и заканчивая функциями и подпроцедурами.
Повысьте свою карьеру в области аналитики с помощью новых мощных навыков работы с Microsoft Excel, пройдя курс Business Analytics with Excel, который включает обучение работе с Power BI
Этот сертификационный курс по бизнес-аналитике знакомит вас с основными понятиями анализа данных и статистики, помогая принимать решения на основе данных.
Это обучение знакомит вас с Power BI и углубляется в статистические концепции, которые помогут вам извлекать ценные сведения из доступных данных для представления результатов с помощью панелей мониторинга на уровне руководителей.
У вас есть к нам вопросы? Не стесняйтесь задавать их в разделе комментариев к этой статье, и наши специалисты оперативно ответят на них!
Учебное пособие по программированию на VBA в Excel для начинающих
Visual Basic для приложений (VBA) — это язык программирования Microsoft Office, который позволяет создавать макросы, добавлять окна сообщений, выполнять код внутри документа в ответ на триггер и многое другое. С помощью VBA вы можете расширить свои электронные таблицы Excel и выйти за рамки простых функций Excel.
Эта статья поможет вам попробовать свои силы в VBA с помощью простого проекта: кнопки, которая преобразует значение выбранной ячейки из фунтов стерлингов в доллары США. В этой статье вы узнаете, как VBA и Excel могут пересекаться, и начнете работу с VBA.
Что такое Visual Basic для приложений в Excel?
Visual Basic для приложений, или сокращенно VBA, представляет собой интегрированную форму Visual Basic 6 в программах Microsoft Office. VBA доступен в приложениях из пакета Office, таких как Word, PowerPoint и, конечно же, Excel.
VBA позволяет вам делать то, что обычно недоступно с помощью обычных функций Excel. С помощью VBA вы можете манипулировать интерфейсом Excel, добавлять функциональные кнопки и даже определять свои собственные функции.
Естественно, VBA использует язык программирования Visual Basic. Благодаря этому языку и небольшим знаниям в области кодирования вы можете превратить свой опыт в нечто, выходящее за рамки Excel. Это может быть что угодно, от создания пользовательских форм VBA до воссоздания культовых игр в Excel.
Учебное пособие по VBA в Excel: создание кнопки обмена
Нет лучшего способа изучить VBA в Excel, чем попробовать самому. Чтобы помочь вам в этом, в этой статье мы собираемся реализовать простой проект VBA.
Цель этого проекта — создать кнопку, которая будет преобразовывать значение в выбранной ячейке из долларов США в фунты стерлингов.
Код этого проекта состоит из двух шагов. Первым и основным шагом является преобразование числового значения из долларов США в фунты стерлингов путем умножения числа долларов США на 1,22, что является предполагаемым обменным курсом. Второй шаг — изменить формат ячейки с долларов США на фунты стерлингов.
В конце концов, когда вы нажмете кнопку, значение выбранной ячейки будет умножено на обменный курс, а символ доллара изменится на символ фунта. Теперь, когда вы хорошо понимаете, чего мы хотим достичь, давайте начнем!
1. Доступ к элементам управления разработчика в Excel
Прежде чем мы сможем погрузиться в VBA, может потребоваться открыть Excel и настроить параметры для отображения вкладки «Разработчик» как части ленты. Функции, к которым вам нужен доступ для использования VBA, размещены на вкладке «Разработчик».
- Откройте Excel.

- Перейдите в меню Файл .
- Нажмите Опции внизу экрана. Откроется окно параметров Excel.
- В параметрах Excel перейдите на вкладку «Настроить ленту» .
- В разделе Основные вкладки отметьте Разработчик .
Кроме того, вы также можете щелкнуть правой кнопкой мыши ленту Excel и выбрать Настроить ленту . Вы перейдете на вкладку «Настроить ленту» в параметрах Excel.
2. Создайте кнопку
Чтобы создать наш конвертер валют, нам сначала нужно вставить элемент кнопки. На следующем шаге мы прикрепим наш код VBA к этой кнопке.
- В электронной таблице Excel перейдите на вкладку Разработчик .
- В разделе Controls нажмите Insert .
- Выберите Командную кнопку ActiveX . Это первый вариант под ActiveX Controls .

- Нарисуйте кнопку в электронной таблице.
Кнопка будет иметь заголовок CommandButton1 по умолчанию. Это выглядит немного скучно, так что давайте добавим немного характера нашей кнопке.
- Нажмите кнопку.
- Щелкните правой кнопкой мыши и выберите Свойства . Появится окно свойств.
- Измените (Имя) на что-то более запоминающееся. Обратите внимание, что это не заголовок кнопки. Вот как кнопка будет адресована в вашем коде VBA. В этом примере мы собираемся изменить имя на convertButton .
- Измените заголовок на то, что вы хотите отображать на кнопке. Мы собираемся использовать от долларов США до фунтов стерлингов.
Вы также можете изменить шрифт и добавить стиль к вашей кнопке в том же окне. Как только ваша кнопка будет готова, пришло время добавить к ней некоторые функции.
3. Добавьте код
Кодирование с помощью VBA происходит в среде, отличной от стандартного интерфейса Excel.
Чтобы получить к нему доступ, убедитесь, что Режим разработки активен на вкладке Разработчик , затем дважды щелкните кнопку. Вы увидите окно, подобное приведенному ниже:
Начало и конец нашего кода уже на месте — два синих фрагмента текста обозначают вашу функцию, а текст черного цвета говорит о том, что вы определяете действие, которое должно выполняться, когда пользователь нажимает кнопку. Если вы выбрали другое имя для convertButton, вы должны увидеть соответствующий термин в своей версии этого окна.
Чтобы выполнить процедуру конвертации валюты, мы будем использовать следующие строки кода между двумя, которые уже были созданы Excel:
Разм. R как диапазон
Разм.Теперь разберем код. Этот фрагмент кода сначала объявляет две переменные R и W как диапазоны. Вы можете изменить эти две буквы на все, что захотите, при условии, что вы остаетесь последовательными во всем коде.
Затем код устанавливает переменную W как Selection . Это означает, что W теперь являются выбранными ячейками в электронной таблице. Оператор For Each объявляет, что код под оператором должен выполняться для каждого R в W , что означает для каждой ячейки в выбранном диапазоне.
Далее вступает в действие основная функция. Значение в ячейке умножается на 1,22 (обменный курс фунта стерлингов к доллару США), а затем формат ячейки изменяется для представления фунта стерлингов. Наконец, Оператор Next указывает, что код (умножение и изменение формата) также должен выполняться для следующей ячейки в диапазоне, которая является следующей R в W .
Вот как это выглядит в окне VBA:
Если вы дали кнопке другое имя или использовали в коде имена, отличные от R и W, не забудьте изменить эти имена на те, что указаны в коде.
В противном случае код не будет работать.
Когда ваш код настроен, закройте редактор VBA. Вам не нужно ничего сохранять, так как ваши изменения уже сохранены.
4. Проверьте свою работу
Пришло время проверить, работает ли ваш код, но прежде чем вы сможете это сделать, необходимо сделать важный шаг. Вам необходимо отключить Design Mode , чтобы остановить любые дальнейшие модификации кнопки и сделать ее функциональной.
Затем выберите ячейку или диапазон ячеек, а затем нажмите кнопку, чтобы увидеть, как она работает. Надеюсь, вы увидите, что значение увеличилось примерно на четверть, что означает, что преобразование было выполнено правильно.
Следующие шаги с VBA в Excel
Теперь, когда вы создали кнопку и использовали ее для выполнения кода VBA в Excel, вы можете использовать тот же базовый метод для выполнения самых разных проектов. Вы можете создать кнопку, которая сравнивает содержимое указанной ячейки с другой в другом месте того же документа.

Нажмите кнопку Запись макроса и оставьте все параметры по умолчанию в диалоговом окне Запись макроса, в том числе имя Макрос1 и расположение Эта книга.

Offset(1, 0).Select
End If
Next i
End Sub



Точнее, Формула R1C1 устанавливает формулу для ActiveCell.
Это содержимое конверта или, для целей программирования, значение переменной.


Value = InputBox(«Количество кубиков сахара, которые дал лошади смотритель» & caretakerNumber). 
В третий раз переменная имеет значение 3. Как и следовало ожидать, значения для четвертого и пятого раз равны 4 и 5 соответственно.
Числовые типы данных состоят из байтов, целых чисел, длинных, одинарных, двойных, валютных и десятичных чисел.


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