Как создать программу в Excel

Обновлено: 21.11.2024

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

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

Перед записью макроса

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

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

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

При необходимости введите имя макроса в поле «Имя макроса», введите сочетание клавиш в поле «Сочетание клавиш» и описание в поле «Описание», а затем нажмите «ОК», чтобы начать запись.

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

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

Внимательно посмотрите на макрос

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

Чтобы изменить макрос, в группе "Код" на вкладке "Разработчик" нажмите "Макросы", выберите имя макроса и нажмите "Изменить". Это запустит редактор Visual Basic.

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

Поэкспериментируйте с кодом, закройте редактор Visual Basic и снова запустите макрос. На этот раз посмотрим, произойдет ли что-нибудь другое!

Дальнейшие шаги

Подробнее о создании макросов см. в разделе Создание или удаление макроса.

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

Перед записью макроса

Убедитесь, что на ленте отображается вкладка "Разработчик". По умолчанию вкладка "Разработчик" не видна, поэтому выполните следующие действия:

Выберите Excel > Настройки… > Лента и панель инструментов.

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

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

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

При необходимости введите имя макроса в поле «Имя макроса», введите сочетание клавиш в поле «Сочетание клавиш» и описание в поле «Описание», а затем нажмите «ОК», чтобы начать запись.

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

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

Внимательно посмотрите на макрос

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

Чтобы изменить макрос, на вкладке "Разработчик" нажмите "Макросы", выберите имя макроса и нажмите "Изменить". Это запустит редактор Visual Basic.

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

Поэкспериментируйте с кодом, закройте редактор Visual Basic и снова запустите макрос. На этот раз посмотрим, произойдет ли что-нибудь другое!

Нужна дополнительная помощь?

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

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

В этом руководстве по VBA мы рассмотрим следующие темы.

Что такое Visual Basic для приложений (VBA)?

Visual Basic для приложений (VBA) – это язык программирования, управляемый событиями, реализованный корпорацией Майкрософт для разработки приложений Office. VBA помогает разрабатывать процессы автоматизации, Windows API и пользовательские функции. Он также позволяет управлять функциями пользовательского интерфейса хост-приложений.


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

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

VBA на самом деле является подмножеством Visual Basic 6.0 BASIC, расшифровывается как универсальный код символических инструкций для начинающих.

Почему VBA?

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

Личные и деловые приложения VBA в Excel

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

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

Введение в Visual Basic для приложений

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

    Переменная – в старших классах мы изучали алгебру. Найдите (x + 2y), где x = 1 и y = 3. В этом выражении x и y — переменные. Им можно присвоить любые номера, т.е. 1 и 3 соответственно, как в этом примере. Их также можно изменить, скажем, на 4 и 2 соответственно. Короче говоря, переменные — это ячейки памяти. При работе с VBA Excel вам также потребуется объявлять переменные, как на уроках алгебры
  • Не используйте зарезервированные слова. Если вы работаете студентом, вы не можете использовать титул «лектор» или «директор». Эти титулы зарезервированы за преподавателями и администрацией школы. Зарезервированные слова — это слова, которые имеют особое значение в Excel VBA, поэтому их нельзя использовать в качестве имен переменных.
  • Имена переменных не могут содержать пробелы — вы не можете определить переменную с именем первого числа. Вы можете использовать firstNumber или first_number.
  • Используйте описательные имена. Очень заманчиво назвать переменную своим именем, но избегайте этого. Используйте описательные названия, например количество, цена, промежуточный итог и т. д. – это облегчит чтение кода Excel VBA.

Арифметические операторы. Применяются правила сложения и вычитания умножения в квадратных скобках (BODMAS), поэтому не забывайте применять их при работе с выражениями, в которых используется несколько различных арифметических операторов. Как и в Excel, вы можете использовать

  • + для добавления
  • – для вычитания
  • * для умножения
  • / для деления.

Логические операторы. Концепция логических операторов, описанная в предыдущих руководствах, также применима при работе с VBA. К ним относятся

Как включить вкладку "Разработчик"

Ниже приведен пошаговый процесс включения вкладки разработчика в Excel:

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

VBA Привет, мир!

Теперь мы покажем, как программировать на языке программирования VBA. Вся программа в VBA должна начинаться с «Sub» и заканчиваться «End sub». Здесь имя — это имя, которое вы хотите присвоить своей программе. В то время как sub означает подпрограмму, которую мы изучим в более поздней части руководства.

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

В этом руководстве предполагается, что вы прошли обучение по макросам в Excel и включили вкладку РАЗРАБОТЧИК в Excel.

  • Создать новую рабочую книгу
  • Сохраните его в формате рабочего листа Excel с поддержкой макросов *.xlsm.
  • Перейдите на вкладку "РАЗРАБОТЧИК".
  • Нажмите раскрывающийся список ВСТАВИТЬ под панелью элементов управления.
  • Выберите командную кнопку, как показано на изображении ниже.

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

Появится следующее диалоговое окно

  • Переименуйте имя макроса в btnHelloWorld_Click
  • Нажмите новую кнопку
  • Появится следующее окно кода VBA

Введите следующие коды инструкций

  • «Затемнить имя как строку» создает переменную с именем name. Переменная будет принимать текст, числовые и другие символы, поскольку мы определили ее как строку
  • "name = InputBox("Введите ваше имя")" вызывает встроенную функцию InputBox, которая отображает окно с заголовком Введите ваше имя. Затем введенное имя сохраняется в переменной name.
  • «MsgBox «Hello » + name» вызывает встроенную функцию MsgBox, которая отображает Hello и введенное имя.

  • Закройте окно кода
  • Нажмите правой кнопкой мыши на кнопку 1 и выберите "Редактировать текст".
  • Введите поздороваться

  • Нажмите "Поздороваться".
  • Появится следующее поле ввода

  • Введите свое имя, например Джордан.
  • Появится следующее окно сообщения

Поздравляем, вы только что создали свою первую программу VBA в Excel

Пошаговый пример создания простого калькулятора EMI в Excel

В этом учебном упражнении мы создадим простую программу, вычисляющую EMI. EMI является аббревиатурой от Equated Monthly Instalment. Это ежемесячная сумма, которую вы выплачиваете при получении кредита. На следующем изображении показана формула для расчета EMI.

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

Функция PMT работает следующим образом

ЗДЕСЬ

  • «ставка» — это месячная ставка. Это процентная ставка, деленная на количество платежей в год.
  • «nper» — это общее количество платежей. Это срок кредита, умноженный на количество платежей в год.
  • текущая стоимость «pv». Это фактическая сумма кредита.

Создайте графический интерфейс, используя ячейки Excel, как показано ниже

Добавить командную кнопку между строками 7 и 8

Дайте макросу кнопки имя btnCalculateEMI_Click

Нажмите кнопку редактирования

Введите следующий код

ЗДЕСЬ

  • "Dim month_rate As Single,..." Dim – это ключевое слово, используемое для определения переменных в VBA, month_rate – это имя переменной, Single – тип данных, означающий, что переменная может принимать числа.
  • “monthly_rate = Range(“B6”).Value / Range(“B5″).Value” Range – это функция, используемая для доступа к ячейкам Excel из VBA, Range(“B6”). Значение ссылается на значение в B6
  • «WorksheetFunction.Pmt(…)» WorksheetFunction — это функция, используемая для доступа ко всем функциям в Excel

На следующем изображении показан полный исходный код

  • Нажмите "Сохранить" и закройте окно кода.
  • Протестируйте свою программу, как показано на анимированном изображении ниже

Как использовать VBA в примере Excel

Следующие шаги объяснят, как использовать VBA в Excel.

Шаг 1. Откройте редактор VBA

На вкладке "Разработчик" в главном меню щелкните значок "Visual Basic", чтобы открыть редактор VBA.

Шаг 2) Выберите лист Excel и дважды щелкните лист

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

В правой части папки откроется редактор VBA. Он будет выглядеть как пустое пространство.

Шаг 3) Напишите все, что вы хотите отобразить в MsgBox

На этом этапе мы увидим нашу первую программу VBA. Для чтения и отображения нашей программы нам нужен объект. В VBA этот объект или носитель в MsgBox.

  • Сначала напишите «Sub», а затем «имя вашей программы» (Guru99)
  • Напишите все, что хотите отобразить в MsgBox (обучение guru99 — это весело)
  • Завершить программу, нажав End Sub

Шаг 4) Нажмите зеленую кнопку запуска в верхней части редактора

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

Шаг 5) Выберите лист и нажмите кнопку «Выполнить»

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

Шаг 6) Отобразите сообщение в MsgBox

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

Обзор

Полная форма VBA: Visual Basic для приложений. Это подкомпонент визуального базового языка программирования, который можно использовать для создания приложений в Excel. С VBA вы по-прежнему можете пользоваться мощными функциями Excel и использовать их в VBA.

Хлоя Такер

Это руководство по написанию кода в электронных таблицах Excel с использованием Visual Basic для приложений (VBA).

Excel — один из самых популярных продуктов Microsoft. В 2016 году генеральный директор Microsoft сказал: «Подумайте о мире без Excel. Для меня это просто невозможно». Что ж, возможно, мир не может мыслить без Excel.

  • В 1996 году число пользователей Microsoft Excel превысило 30 миллионов (источник).
  • Сегодня около 750 миллионов пользователей Microsoft Excel. Это немного больше, чем население Европы, и в 25 раз больше пользователей, чем в 1996 году.

Мы одна большая счастливая семья!

В этом руководстве вы узнаете о VBA и о том, как писать код в электронной таблице Excel с помощью Visual Basic.

Предпосылки

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

  • Знакомство с Microsoft Excel от начального до среднего
  • Если вы хотите следовать примерам VBA в этой статье, вам потребуется доступ к Microsoft Excel, желательно последней версии (2019), но Excel 2016 и Excel 2013 будут работать нормально.
  • Готовность пробовать новое

Цели обучения

Из этой статьи вы узнаете:

  1. Что такое VBA
  2. Почему вы должны использовать VBA
  3. Как настроить Excel для написания VBA
  4. Как решить некоторые реальные проблемы с помощью VBA

Важные понятия

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

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

Если у вас нет опыта объектно-ориентированного программирования и это совершенно новая концепция, найдите время, чтобы вникнуть в нее!

Процедуры: процедура – это фрагмент кода VBA, написанный в редакторе Visual Basic, который выполняет задачу.Иногда это также называют макросом (подробнее о макросах ниже). Существует два типа процедур:

  • Подпрограммы: группа операторов VBA, которые выполняют одно или несколько действий.
  • Функции: группа операторов VBA, которые выполняют одно или несколько действий и возвращают одно или несколько значений

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

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

Имейте в виду, что иногда бывает проще и быстрее записать макрос, чем вручную кодировать процедуру VBA.

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

Visual Basic для приложений – это язык программирования, разработанный Microsoft. Каждая программа в пакете Microsoft Office поставляется вместе с языком VBA без дополнительной платы. VBA позволяет пользователям Microsoft Office создавать небольшие программы, которые работают в программах Microsoft Office.

Воспринимайте VBA как печь для пиццы в ресторане. Эксель — это ресторан. На кухне есть стандартная бытовая техника, такая как большие холодильники, плиты и обычные старые духовки — все это стандартные функции Excel.

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

Потому что пицца, приготовленная на дровах, самая лучшая!

Многие люди тратят много времени на работу с Excel в рамках своей работы. Время в Excel тоже движется по-другому. В зависимости от обстоятельств 10 минут в Excel могут показаться вечностью, если вы не можете сделать то, что вам нужно, или 10 часов могут пролететь очень быстро, если все идет отлично. Именно тогда вы должны спросить себя, с какой стати я провожу 10 часов в Excel?

Вам следует рассмотреть возможность использования VBA, если вам нужно:

  • Автоматизировать повторяющиеся задачи
  • Создайте простые способы взаимодействия пользователей с вашими электронными таблицами.
  • Работа с большими объемами данных

Вкладка "Разработчик"

Чтобы написать VBA, вам нужно добавить на ленту вкладку "Разработчик", чтобы лента выглядела так.

Чтобы добавить вкладку "Разработчик" на ленту:

  1. На вкладке "Файл" выберите "Параметры" > "Настроить ленту".
  2. В разделе "Настройка ленты" и в разделе "Основные вкладки" установите флажок "Разработчик".

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

Редактор VBA

Перейдите на вкладку "Разработчик" и нажмите кнопку Visual Basic. Появится новое окно — это редактор Visual Basic. Для целей этого руководства вам просто нужно быть знакомым с панелью Project Explorer и панелью свойств.

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

  1. Открыть новый файл Excel
  2. Сохраните его как книгу с поддержкой макросов (.xlsm)
  3. Выберите вкладку "Разработчик".
  4. Откройте редактор VBA

Давайте рассмотрим несколько простых примеров, которые помогут вам написать код в электронной таблице с помощью Visual Basic.

В редакторе VBA выберите «Вставить» -> «Новый модуль».

Напишите этот код в окне модуля (не вставляйте!):

Sub Auto_Open()
MsgBox ("Добро пожаловать в книгу XYZ")
End Sub

Сохраните, закройте книгу и снова откройте ее. Это диалоговое окно должно появиться.

Как он это делает?

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

  • Подпрограмма (сокращение от «Подпрограмма»): запомните с самого начала «группу операторов VBA, которая выполняет одно или несколько действий».
  • Auto_Open: это конкретная подпрограмма. Он автоматически запускает ваш код при открытии файла Excel — это событие запускает процедуру. Auto_Open запускается только при открытии книги вручную; он не будет запущен, если книга открыта с помощью кода из другой книги (Workbook_Open сделает это, узнайте больше о разнице между ними).
  • По умолчанию доступ к подпрограмме открыт. Это означает, что любой другой модуль может использовать эту подпрограмму. Все примеры в этом руководстве будут общедоступными подпрограммами. При необходимости вы можете объявить подпрограммы как частные. Это может понадобиться в некоторых ситуациях. Узнайте больше о модификаторах доступа к подпрограммам.
  • msgBox: это функция — группа операторов VBA, которая выполняет одно или несколько действий и возвращает значение. Возвращаемое значение — это сообщение «Добро пожаловать в книгу XYZ».

Короче говоря, это простая подпрограмма, содержащая функцию.

Когда я могу это использовать?

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

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

Примеры из реальной жизни

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

В редакторе VBA выберите «Вставить» -> «Новый модуль».

Напишите этот код в окне модуля (не вставляйте!):

Sub UserReportQuery()
Тусклый пользовательский ввод как длинный
Тусклый ответ как целое число
UserInput = vbYesNo
Answer = MsgBox("Обработать отчет XYZ?", UserInput)
Если Ответ = vbYes, то ProcessReport
End Sub

Sub ProcessReport()
MsgBox ("Спасибо за обработку XYZ-отчета")
End Sub

Сохраните и вернитесь на вкладку «Разработчик» в Excel и выберите параметр «Кнопка». Щелкните ячейку и назначьте макрос UserReportQuery для кнопки.

Теперь нажмите кнопку. Это сообщение должно отображаться:

Нажмите «Да» или нажмите Enter.

Еще раз, тада!

Как он это делает?

Этот пример основан на предыдущем примере и содержит несколько новых элементов. Давайте рассмотрим новинки:

  • Dim UserInput As Long: Dim — это сокращение от «размер» и позволяет объявлять имена переменных. В этом случае UserInput — это имя переменной, а Long — тип данных. На простом английском языке эта строка означает «Вот переменная с именем «UserInput», и это переменная типа Long».
  • Dim Answer As Integer: объявляет другую переменную с именем «Ответ» с типом данных Integer. Подробнее о типах данных читайте здесь.
  • UserInput = vbYesNo: присваивает значение переменной. В данном случае vbYesNo, который отображает кнопки Да и Нет. Существует много типов кнопок, подробнее здесь.
  • Answer = MsgBox("Обработать отчет XYZ?", UserInput): присваивает значению переменной Answer функцию MsgBox и переменную UserInput. Да, переменная внутри переменной.
  • If Answer = vbYes Then ProcessReport: это «оператор If», условный оператор, который позволяет нам сказать, если x верно, то сделать y. В этом случае, если пользователь выбрал «Да», выполните подпрограмму ProcessReport.

Когда я могу это использовать?

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

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

  • Проблема: каждый раз, когда необходимо создать один из этих отчетов, пользователь открывает файл и меняет форматирование и диаграммы; так далее и так далее. Этот файл активно редактируется не менее 3 раз в неделю, и каждое его изменение занимает не менее 30 минут.
  • Решение: создайте по 1 кнопке для каждого типа отчета, которая автоматически переформатирует необходимые компоненты отчетов и создаст нужные диаграммы.

Примеры из реальной жизни

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

Циклы For очень полезны, если вам нужно выполнять повторяющиеся задачи с определенным диапазоном значений — массивами или диапазонами ячеек. На простом английском языке цикл означает «для каждого x выполнить y».

В редакторе VBA выберите «Вставить» -> «Новый модуль».

Напишите этот код в окне модуля (не вставляйте!):

Sub LoopExample()
Размер X как целое
Для X = от 1 до 100
Range("A" & X).Value = X
Следующий X
Конец подписки

Сохраните и вернитесь на вкладку "Разработчик" в Excel и нажмите кнопку "Макросы". Запустите макрос LoopExample.

Это должно произойти:

И так до 100-й строки.

Как он это делает?

  • Dim X As Integer: объявляет переменную X как целочисленный тип данных.
  • Для X = от 1 до 100: это начало цикла For. Проще говоря, цикл повторяется до тех пор, пока X не станет равным 100. X — это счетчик. Цикл будет выполняться до тех пор, пока X = 100, выполнится в последний раз и затем остановится.
  • Range("A" & X).Value = X: это объявляет диапазон цикла и то, что нужно поместить в этот диапазон. Поскольку изначально X = 1, первой ячейкой будет A1, после чего цикл поместит X в эту ячейку.
  • Следующий X: повторный запуск цикла.

Когда я могу это использовать?

Цикл For-Next — одна из самых мощных функциональных возможностей VBA; существует множество потенциальных вариантов использования. Это более сложный пример, который потребует нескольких уровней логики, но он передает мир возможностей в циклах For-Next.

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

Вам необходимо выяснить, какой должна быть розничная цена каждого продукта. Вы думаете, что это должна быть стоимость ингредиентов плюс 20%, но также и 1,2% ниже среднего по рынку, если это возможно. Цикл For-Next позволит вам выполнять такие вычисления.

Примеры из реальной жизни

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

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

  • Что такое VBA?
  • Как мне настроиться, чтобы начать использовать VBA в Excel?
  • Почему и когда вам следует использовать VBA?
  • Какие проблемы я могу решить с помощью VBA?

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

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

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

Visual Basic для приложений (VBA) — замечательный язык. Этот язык, встроенный в Microsoft Excel, можно использовать для программирования приложений прямо на листе Excel.

Он легко доступен; вам не нужно ничего, кроме рабочей версии Microsoft Office. Это упрощает начало работы.

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

Что я могу делать с VBA?

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

Как создать собственное приложение VBA

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

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

Если вы хотите ознакомиться с языком перед написанием приложения, рассмотрите руководство для начинающих по написанию макросов VBA в Excel. Начнем!

Создание среды приложения

Сначала выберите продукт Office, установленный на вашем ПК. Это может быть Word, Excel, Powerpoint, Access или любой другой.

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

Если вы используете Excel 2007 или более позднюю версию, вы найдете эти элементы управления в меню "Разработчик" > "Вставить". Найдите элемент управления «Кнопка управления» (в разделе «Элементы управления ActiveX»), и вы будете готовы к работе.

Если пункт меню не отображается, вот как добавить вкладку "Разработчик" в Excel. Это довольно просто, и вам нужно сделать это только один раз.

Нажмите на нее и нарисуйте командную кнопку на электронной таблице. Эта кнопка запустит ваше приложение.

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

Убедитесь, что режим «Дизайн» включен — на картинке выше это значок треугольника/линейки/карандаша. Дважды щелкните созданную вами командную кнопку, и откроется редактор проекта VBA.

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

Ваша пользовательская форма теперь загружена в ваш проект в папку Forms с именем по умолчанию UserForm1.

Дважды щелкните Лист1. Здесь вы пишете код, который будет запускаться при нажатии кнопки команды.

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

Итак, что вы хотите, чтобы ваша командная кнопка делала, когда вы нажимаете на нее? Вы хотите, чтобы он загружал пользовательскую форму, которую вы только что создали. Для этого введите в одной строке Load UserForm1.

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

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

С помощью набора инструментов «Элементы управления» вы можете добавлять в форму текстовые поля, метки и командные кнопки. Это основные компоненты приложения VBA.

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

Для всех форм окно "Свойства" позволяет настроить параметры формы. Вы хотите отредактировать поле «Заголовок» так, чтобы оно имело смысл. Это имя — то, как ваша программа будет ссылаться на этот элемент, поэтому выберите что-то понятное и имеющее смысл.

Добавление дополнительных функций

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

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

Ссылка — это «надстройка», которая позволяет вам писать дополнительные команды в вашей программе.

Обычно список ссылок можно найти в разделе "Инструменты" на панели инструментов, выбрав "Ссылки". Для доступа к функциям ввода-вывода просто прокрутите вниз и выберите Microsoft Scripting Runtime.

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

Измените заголовок на Создать вывод, чтобы было легче запомнить, что делает кнопка.

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

Чтобы настроить чтение и запись файла после добавления ссылки, используйте этот код:

Что это делает?Что ж, он устанавливает MyFile как путь к вашему выходному файлу, в который вы хотите записать, и создает fnum как ключ идентификации файла для кода.

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

Эти переменные связаны с текстовыми полями, созданными вами в пользовательской форме.

Вывод на печать

Вернитесь к форме и заполните все текстовые поля на главном экране приложения.

Теперь вернитесь из режима «Дизайн», нажмите кнопку вывода и откройте файл, чтобы подтвердить результаты.

Конечно, есть веб-код, отформатированный с помощью необходимых тегов HTML, определенных в программе. Весь текст из этих текстовых полей распечатывается и готов к копированию в блог.

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

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

Больше возможностей с помощью VBA

Когда речь идет о VBA, возможности действительно ограничены только вашим воображением. Вам не нужно покупать дорогой пакет разработки, такой как Visual Studio. Просто откройте любую программу MS Office, переключитесь на редактор VBA, и вы сможете создавать приложения.

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

Читайте также: