Что такое vba в excel? (от базового до продвинутого)

Что такое ВБА?

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

Самое безумное:

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

Позвольте мне показать вам конкретный пример:

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

Макросоды для создания сводной таблицы

Вот как работает VBA

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

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

>Не пропустите это<

Допустим, вы хотите попросить кого-нибудь открыть коробку. Слова, которые вы бы использовали, были бы: «Открой коробку». Это простой английский, не так ли? Но когда дело доходит до VBA и написания макроса, это будет:

 Box.Open

Как видите, приведенный выше код начинается с поля, которое является нашим объектом, затем мы использовали для этого метод «Открыть». Давайте уточним, скажем, хотите ли вы открыть коробку, окрашенную в КРАСНЫЙ цвет. И для этого код будет:

 Boxes(“Red”).Open

В приведенном выше коде box — это коллекция, а open — метод. Если у вас несколько ящиков, мы определяем здесь конкретный ящик. Вот еще один способ:

 Box(“Red”).Unlock = True

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

Для чего используется VBA в Excel?

В Excel вы можете использовать VBA для разных целей. Вот некоторые:

  • Ввод данных : вы можете вводить данные в ячейку, диапазон ячеек. Вы также можете копировать и вставлять данные из одного раздела в другой.
  • Автоматизация задач . Вы можете автоматизировать задачи, которые требуют от вас много времени. Лучший пример, который я могу привести, — это использование макроса для создания сводной таблицы.
  • Создайте пользовательскую функцию Excel . С помощью VBA вы также можете создать пользовательскую функцию и использовать ее на листе.
  • Создание надстроек . В Excel вы можете конвертировать свои коды VBA в надстройки и делиться ими с другими.
  • Интеграция с другими приложениями Microsoft . Вы также можете интегрировать Excel с другими приложениями Microsoft. Например, вы можете ввести данные в текстовый файл.

Основы программирования Excel

1. Процедура

Процедура в VBA — это набор кодов или одна строка кода, выполняющая определенное действие.

  1. SUB : процедура Sub может выполнять действия, но не возвращает значение (но вы можете использовать объект для получения этого значения).
  2. Функция : Используя процедуру Function, вы создаете свою функцию, которую можно использовать в электронной таблице или других процедурах SUB и FUNCTION (см.: Функция VBA ).

2. Переменные и константы

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

  • Переменная : переменная может хранить значение, у нее есть имя, вы должны определить ее тип данных и можете изменить хранимое в ней значение. Как следует из названия, переменная не имеет фиксированного значения. Это как ящик для хранения, хранящийся в системе.
  • Константа : константа также может хранить значение, но вы не можете изменить это значение во время выполнения кода.

3. Типы данных

Вы должны объявить тип данных для ПЕРЕМЕННЫХ и КОНСТАНТ.

define data type

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

Совет: Явный параметр VBA

4. Объекты, свойства и методы

Visual Basic для приложений — это объектно-ориентированный язык, и чтобы максимально эффективно использовать его возможности; вам нужно понимать объекты Excel.

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

5. События

Каждый раз, когда вы что-то делаете в Excel, это событие: ввод значения в ячейку, вставка нового листа или диаграммы. Ниже представлена классификация событий по объектам:

  1. События приложения: эти события связаны с самим приложением Excel.
  2. События книги: эти события связаны с действиями, которые происходят в книге.
  3. События рабочего листа: эти события связаны с действием, которое происходит на листе.
  4. События диаграммы. Эти события связаны с листами диаграмм (которые отличаются от рабочих листов).
  5. События пользовательской формы: эти события связаны с действием, которое происходит с пользовательской формой.
  6. События OnTime. События OnTime — это события, которые могут запускать код в определенное время.
  7. События OnKey. События OnKey — это события, которые могут запускать код при нажатии определенной клавиши.

6.Объем

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

 Worksheets(“Sheet1”).Range(“A1”)

7. Условия

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

  • IF THEN‌ ELSE‌ : это оператор IF, который вы можете использовать для проверки условия, а затем выполнить строку кода, если это условие истинно. Вы также можете написать условия вложения с помощью
  • SELEC‌T‌ CASE : в случае выбора вы можете указать условие, а затем различные случаи результатов теста для выполнения разных строк кода. Он немного более структурирован, чем оператор IF.

8. Циклы VBA

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

  • Для следующего : лучше всего использовать функцию «Для следующего» в том случае, если вы хотите повторить набор действий фиксированное количество раз.
  • For Each Next : идеально подходит для перебора группы объектов из коллекции объектов.
  • Цикл Do While. Простая идея цикла Do While заключается в выполнении действия, пока условие истинно.
  • Цикл Do Until: В цикле Do Until VBA выполняет цикл и продолжает его выполнять, если условие имеет значение FALSE.

9. Поле ввода и окно сообщения.

  • Поле ввода : Поле ввода — это функция, которая отображает пользователю поле ввода и собирает ответ.
  • Окно сообщений : окно сообщений позволяет отображать сообщение пользователю, но у вас есть возможность добавить кнопки в окно сообщения, чтобы получить ответ от пользователя.

10. Ошибки

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

  1. Синтаксические ошибки . Это похоже на опечатки, которые вы делаете при написании кода, но VBA может помочь вам, сообщив об этих ошибках.
  2. Ошибки компиляции: они возникают, когда вы пишете код для выполнения действия, но это действие является недопустимым.
  3. Ошибки выполнения : во время выполнения кода возникает ошибка RUNTIME. Он останавливает код и отображает диалоговое окно с ошибкой.
  4. Логическая ошибка : это не ошибка, а ошибка при написании кода, которая иногда может доставлять вам проблемы при ее поиске и исправлении.

Напишите макрос (программу VBA) в Excel.

Я твердо убежден, что изначально, когда кто-то начинает программировать в Excel, ОН/ОНА должен писать все больше и больше кодов с нуля. Чем больше кодов вы пишете с нуля, тем лучше понимаете, как работает VBA.

Но вам следует начать с написания простых кодов, а не переходить к сложным кодам. Вот ПОЧЕМУ я не хочу, чтобы вы сейчас думали о чем-то сложном.

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

  1. Перейдите на вкладку «Разработчик» и откройте редактор Visual Basic , нажав кнопку «Visual Basic».
    visual-basic-button
  2. После этого вставьте новый модуль из «Окна проекта» (щелкните правой кнопкой мыши ➢ Вставить ➢ Модуль).
    insert-a-new-module
  3. После этого заходим в окно кода и создаем макрос с названием «Enter Done» (создаем SUB-процедуру), как у меня ниже.
    code-window
  4. После этого вам нужно написать код, о котором мы только что говорили выше. Подождите секунду и подумайте так: вам нужно указать ячейку, в которую вы хотите вставить значение, а затем значение, которое вы хотите ввести.
  5. Введите ссылку на ячейку, и для этого вам нужно использовать объект RANGE и указать там адрес ячейки, как показано ниже:
    cell-reference-range-object
  6. После этого введите точку, и в тот момент, когда вы добавите точку, у вас появится список свойств, которые вы можете установить, и действий, которые вы можете выполнять с диапазоном.
    enter-a-dot
  7. Отсюда вам нужно выбрать свойство «Значение» и установить текст, который вы хотите вставить в ячейку «A1», и при этом ваш код будет выглядеть примерно так, как показано ниже.
    select-value
  8. Наконец, над строкой кода введите текст («этот код вводит значение «Готово» в ячейку A5). Это комментарий VBA , который вы можете вставить, чтобы определить написанную вами строку кода.
    enter-the-text-above-line-code
 Sub Enter_Done() 'this code enters the value “Done” in the cell A5 Range("A1").Value = "Done" End Sub

Давайте это поймем…

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

  • В ПЕРВОЙ части мы указали адрес ячейки , используя объект RANGE. А чтобы обратиться к ячейке с использованием объекта диапазона, вам необходимо заключить адрес ячейки в двойные кавычки (вы также можете использовать квадратные скобки).
  • Во ВТОРОЙ части мы указали значение для ввода в ячейку. Что вы сделали, так это установили свойство значения для ячейки A5, используя «.Value». После этого следующее, что вы указываете, — это значение относительно свойства value . Всякий раз, когда вы определяете значение (если оно текстовое), вы должны заключить это значение в двойные кавычки.

Лучший способ изучить VBA

Здесь я перечислил некоторые из самых замечательных руководств (не в какой-то определенной последовательности), которые помогут вам освоить VBA в кратчайшие сроки.

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

10. Ошибки

11. Функции

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

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