Foreversoft.ru

IT Справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Язык vba в excel

Язык vba в excel

������� ���������� ��������� �� ����� VBA – �������, ����� �������� �� ���������� ������, � ����������� �� ��������� ����������. ���� ���������� �������� ���������, ������� ����� ����������� ������������ ���������� ��� ��������, ����������� �������������� ����������� ������������ ���������� Microsoft Office, �� ���������� ������� ����������� ������. ��� ���������� ���� ��������� ����� ��������� � ������� ������� ���������� ������, ������� ������� ����� �������� ���������� ���������. ��� ����� � ���������� ���������� �������� ������ ������������ � ������� ������� ��� ������ ������������ �������� ����������, � ����� ������� ������ � ��������������� ����������� �����. ���� ��������� ��������� � ������� ������� ������ ������ �������.

���������� “�����������” ��������� (��� ���������� ������� ��������� ��������� ����, � ���������� ���������� ����������) ����� �������� ��� �����. ������ ���� – ���� ����������� ����������������, �� ������� ��������� ���� (�����) ���������, ��� ������������� ����������� �������� ����������. ������ – ���� ����������������, �� ������� ��������� ����� ��������� (���������), ������������� � ����� �� ������������ �������. �������� ��������, ��������, ������ ����� ������� ���� �� ��������� ������ (������� Click), ������� ������� �� ���������� (������� KeyPress) � �.�. ������������ ����� ���������� ����� �������� ������ – «������ �������».

Range(“�����”)

Cells(i, j)

Rows(� ������)

Columns(� �������)

Sheets(“���”)

Sheets(� �����)

WorkSheet

Range(“A5:A10”). Value = 0 ��� Range(“A5:A10”) = 0 – � �������� ����� A5:A10 ��������� �������� 0.

Cells(2, 4). Value = n ��� Cells(2, 4) = n – � ������, ����������� �� ����������� 2-� ������ � 4-�� ������� (������ � ������� “D2”), ��������� �������� ���������� n.

Xn = Cells(1, 2).Value ��� Xn = Range(“B1”).Value – ���������� Xn ������������� �������� �� ������ B1 �������� �������� �����.

Sheets(2).Activate ������� �������� ���� � �2.

Sheets(“���������”).Delete ������� ���� � ������ “���������”.

Range(«A5:A10»).Clear – �������� �������� ����� A5:A10.

Range(«A2:B10»).Select – �������� �������� ����� A2:B10.

Application.Quit — ���������� ������ � Excel.

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

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

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

  1. Создайте новую книгу Excel и сохраните ее как книгу с поддержкой макросов с расширением .xlsm. В старых версиях Excel по 2003 год – как обычную книгу с расширением .xls.
  2. Нажмите сочетание клавиш «левая_клавиша_Alt+F11», которое откроет редактор VBA. С правой клавишей Alt такой фокус не пройдет. Также, в редактор VBA можно перейти по ссылке «Visual Basic» из панели инструментов «Разработчик» на ленте быстрого доступа. Если вкладки «Разработчик» на ленте нет, ее следует добавить в настройках параметров Excel.

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

  1. Нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку после значка Excel на панели инструментов.

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

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

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

  1. Откройте стандартный модуль двойным кликом по его ссылке в проводнике. Поместите в него курсор и нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.
Читать еще:  Vba excel find примеры

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

  1. Наберите в поле «Name» имя процедуры: «Primer1», или скопируйте его отсюда и вставьте в поле «Name». Нажмите кнопку «OK», чтобы добавить в модуль первую и последнюю строки процедуры.

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

  1. Вставьте внутрь шаблона процедуры следующую строку: MsgBox «Привет» .

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

  1. Проверьте, что курсор находится внутри процедуры, и запустите ее, нажав клавишу «F5». А также, запустить процедуру на выполнение можно, нажав на треугольник (на изображении под пунктом меню «Debug») или на кнопку «Run Sub/UserForm» во вкладке «Run» главного меню редактора VBA Excel.


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

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

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

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

VBA-Урок 1. Что такое VBA. Основные понятия.

В данном разделе мы рассмотрим что такое VBA, посколько именно на нем и пишутся макросы.

Что такое VBA?

VBA — язык (расшифровывается как Visual Basic for Application) был разработан компанией Microsoft. Данный язык не является самостоятельным, а предназначен для автоматизации процессов в пакете MS Office. VBA широко используется в Excel, а также в Access, Word и других программах пакета.

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

Чтобы работать с VBA кодом, нам нужен редактор, который уже установлен по умолчанию. Вы можете открыть его, нажав комбинацию клавиш » ALT + F11 «.

Объекты (Objects)

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

Главный объект это Application, что соответствует самой программе Excel. Далее следует Workbooks (книга), Worksheets (лист), Range (диапазон, или отдельная ячейка). Например, чтобы обратиться к ячейке «A1» на листе нам нужно будет прописать следующий путь с учетом иерархии:

Application.Workbooks(«Архив»).Worksheets(«Аркуш1»).Range(«A1»).

Таким образом, мы научились обращаться до наименьшего объекта в Excel — ячейки.

Коллекции (Collections)

В свою очередь объекты имеют «коллекции». Коллекция — это группа объектов одинакового класса. Отдельные элеметы коллекции являются также объектами. Так, объекты Worksheets являются элементами коллекции объекта Worksheet, который содержит также и другие коллекции и объекты:

  • ChartObjects (элемент коллекции объекта ChartObject)
  • Range
  • PageSetup
  • PivotTables (элемент коллекции объекта PivotTable).

Свойства (Properties)

Каждый объект имеет свойства . Например, объект Range имеет свойство Value или Formula.

Worksheets(“Sheet1”).Range(“A1”).Value або Worksheets(“Sheet1”).Range(“A1”).Formula

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

Также, через свойство Formula можно не только получить формулу, но и записать ее:

MsgBox Range(“A1”).Formula — получим сообщение с формулой в ячейке «А1«;

Range(“B12”).Formula = “=2+6*100” — вписываем формулу =2+6*100 в ячейку B12.

Методи (Methods)

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

Range(«A1»).Select или Cells(1, 1).Select

Данный метод указывает выбрать (Select) ячейку «A1».
Далее, давайте, удалим значение в данной ячейке. Для этого напишем следующий код:

Selection.ClearContents

Здесь программа «берет» то, что мы выделили (Selection) и удаляет его содержимое (ClearContents ).

Основные понятия языка VBA Excel

На занятии рассматриваются следующие вопросы:

  • общее понятие о языке VBA;
  • объекты VBA;
  • свойства, методы и события;
  • элементы языка VBA;
  • структура редактора VBA.

Просмотр содержимого документа
«Основные понятия языка VBA Excel»

На занятии рассматриваются следующие вопросы:

общее понятие о языке VBA;

свойства, методы и события;

элементы языка VBA;

структура редактора VBA.

VBA относится к языкам объектно-ориентированного программирования, поэтому знакомство с ним естественно начать с понятия объекта.

Объект — основной элемент VBA Excel. В VBA объектами являются рабочая книга, рабочий лист и его составляющие.

Sheet — лист Excel;

Range — диапазон ячеек;

UserForm — пользовательская форма.

Доступ к объекту возможен через его методы и свойства.

Над объектами можно совершать различные действия. Действия, совершаемые над объектами, называются методами. Например, ячейку можно очистить (Clear), приложение закрыть (Quit), пользовательскую форму показать (Show) или скрыть (Hide).

Название метода отделяется от названия объекта точкой: объект.метод.

Примеры использования методов:

Range(«B2:E2»).Select — выбрать диапазон ячеек B2:E2;

Range(«C1:C5»).Clear — очистить диапазон ячеек C1:C5;

UserForm2.Hide — скрыть форму № 2;

UserForm5.Show — показать форму № 5;

Application.Quit — выйти из приложения.

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

Синтаксис установки значения свойства:

— где Объект обозначает имя объекта, Свойство — имя свойства, которому присваивается значение.

Имя объекта отделяется от имени свойства точкой.

Range(«D1»).Value = 2005 — поместить в ячейку D1 значение 2005.

Range(«C1:C10»).Text = «Информатика» — поместить в диапазон ячеек C1:C10 текст Информатика.

Range(«B2»).Font.Size = 14 — в ячейке B2 установить размер шрифта 14.

Методы и свойства некоторых объектов VBA

Объект: Application (приложение).

Метод: Quit (закрыть).

Свойство: Caption (имя главного окна).

Примеры. Application.Quit — закрыть приложение; Application.Caption = «Протокол» — установить в качестве заголовка окна приложения “Протокол”.

Объект: Sheet (лист), ActiveSheet (активный/выбранный лист).

Семейство: Sheets (листы).

Методы: Select (выбрать); ShowDataForm (показать встроенную форму).

Примеры: Sheets(«Меню»).Select — выбрать лист “Меню”; ActiveSheet.ShowDataForm -на активном в настоящий момент листе показать встроенную форму.

Объект: Range (диапазон).

Методы: Select (выделить); Clear (очистить).

Свойство: Name (имя).

Примеры. Sheets(«Протокол»).Range(«В4:В10»).Name = «Класс» — диапазону В4:В10, расположенному на листе “Протокол”, присвоить имя “Класс”; Sheets(«Протокол»).Range(«В4:В10»).Select — выделить диапазон В4:В10 на листе “Протокол”.

Объект, Семейство: UserForm (пользовательская форма).

Методы: Show (показать); Hide (скрыть).

Свойство: Caption (текст, отображаемый в строке заголовка).

Примеры. UserForm1.Show — показать пользовательскую форму номер один;

UserForm1.Hide — скрыть пользовательскую форму номер один;

UserForm1.Caption — «Информатика»- вывести заданный в кавычках текст в строке заголовка.

Объект, Семейство: TextBox (Поле ввода).

Свойство: Text (содержимое).

Примеры. UserForm1.TextBox1.Text = Date — в поле ввода номер один в пользовательской форме номер один записать текущую дату; UserForm1.TextBox2.Text = » » — очистить поле ввода номер два в пользовательской форме номер один.

Объект, Семейство: ComboBox (поле со списком).

Метод: AddItem (добавить элемент в список).

Свойства: Text (содержимое); Rowsource (источник строк для списка).

Примеры. UserForm1.ComboBox2.Text = » » — очистить значение поля для поля ввода со списком номер два в пользовательской форме номер один; UserForm2.ComboBox1.Rowsource=»В2:В10″ — источником строк для поля один со списком в пользовательской форме два установить данные из диапазона В2:В10;

UserForm1.ComboBox1.AddItem («Факс») — добавить к списку элемент, заключенный в кавычки.

Объект, Семейство: OptionButton.

Свойства: Value (значение); Сaption (надпись).

Примеры. UserForm3.OptionButton1.Value = True — выбрать переключатель номер один в пользовательской форме номер три; UserForm3.OptionButton1.Capture = «Успеваемость» — установить надпись “Успеваемость” рядом с переключателем в пользовательской форме номер три.

Объект, Семейство: CheckBox.

Свойства: Value (значение); Сaption (надпись).

Примеры. UserForm2.CheckBox1.Value = True — установить флажок номер один в пользовательской форме номер два; UserForm3.CheckBox1.Value = False — сбросить флажок номер один в пользовательской форме номер три; UserForm4.CheckBox1.Capture=»Класс» — установить надпись “Класс” рядом с флажком в пользовательской форме номер четыре.

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

В языке VBA для каждого объекта определен набор стандартных событий.

Стандартное событие для объекта “кнопка” (CommandButton) — щелчок мышью (Click).

Если пользователь нажимает на кнопку, то это событие. На это событие должен быть отклик, т.е. выполнение какой-либо программы. Такая программа называется процедурой обработки событий и имеет стандартное имя. Если такой отклик не создан (не написана соответствующая программа), то система никак не будет реагировать на это событие.

Элементы языка VBA

Объекты — основные элементы языка VBA, но не единственные. К другим элементам относятся: константы, переменные, массивы, выражения, встроенные функции, встроенные диалоговые окна, операторы.

Константы — данные, не изменяющиеся в процессе решения задачи. Константы бывают двух видов: числовые и символьные.

Числовые константы — это целые либо вещественные числа.

Символьные константы — текст, заключенный в кавычки. Пример числовой константы — 5,8 (использование запятой или точки зависит от настроек операционной системы). Пример символьной константы — ООО “Темп”.

Переменные — данные, значения которых меняются в ходе выполнения программы. Для переменной задается имя и тип.

Имя переменной должно начинаться с буквы и может содержать любую комбинацию букв, цифр и символов за исключением точек, пробелов и следующих символов: “!”, “%”, “&”, “$”, “#”, “@”. Длина имени не должна превышать 255 символов. Не следует использовать имена, совпадающие с ключевыми словами VBA и именами встроенных функций и процедур.

Основные типы переменных, их размеры и диапазоны принимаемых значений приведены в табл. 1.

Переменные типа Variant могут хранить все, что в них поместят. Их тип изменяется в зависимости от последнего присвоения. В программах переменные описываются с помощью специального оператора Dim.

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

Из констант, переменных и встроенных функций (они рассмотрены далее) с помощью скобок и знаков арифметических операций (“+”, “-”, “*”, “/”, “^”) можно составлять выражения. Частным случаем выражения может быть просто одиночный элемент, т.е. константа, переменная или обращение к встроенной функции.

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

Ссылка на основную публикацию
Adblock
detector