Основные понятия языка программирования VBA. Чернышова Н.Н.

Язык vba

Основные понятия языка программирования VBA. Чернышова Н.Н.

Лекция для ЗФ

ПОНЯТИЕ И СВОЙСТВА АЛГОРИТМА. ОСНОВНЫЕ БЛОКИ ГСА. ЯЗЫК ПРОГРАММИРОВАНИЯ VBA (VISUAL BASIC FOR APPLICATIONS).ТИПЫ ДАННЫХ. ЗАПИСЬ КОНСТАНТ, ПЕРЕМЕННЫХ, ФУНКЦИЙИ АРИФМЕТИЧЕСКИХ ВЫРАЖЕНИЙ. ПРАВИЛА ВВОДА ПРОГРАММ

Программноерешение задачиусловно включает всебя следующие этапы:

1. Формализациязадачи, т. е. математическая постановка(формулировка) задачи (запись условиязадачи в виде последовательностиопределенных действий и формул,необходимых для ее решения);

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

3. Алгоритмизациязадачи, т. е. разработка алгоритмарешения.

4. Выбор языкапрограммирования и составление программы.

Алгоритм– строго определенная последовательностьарифметических и логических действийдля решения задачи.

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

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

Рассмотрим свойстваалгоритма.

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

Определенность(детерминированность). Это свойствоозначает, что неоднозначность толкованиязаписи алгоритма недопустима, многократноеприменение алгоритма к одним и тем жеисходным данным должно приводить кодним результатам.

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

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

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

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

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

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

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

Различают следующиевиды алгоритмов:

линейный– список команд (указаний), выполняемыхпоследовательно друг за другом;

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

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

Любая алгоритмическаяконструкция может содержать в себедругую конструкцию того же или иноговида, т. е. алгоритмические конструкциимогут быть вложенными.

Способыпредставления алгоритмов

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

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

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

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

АЛГ – АЛГоритм;

НАЧ – НАЧалоалгоритма;

КОН – КОНецалгоритма;

НЦ – НачалоЦикла;

КЦ – Конец Цикла;

:= – присвоить значение;

Источник: https://studfile.net/preview/2897023/

Основы программирования на языке VBA

Основные понятия языка программирования VBA. Чернышова Н.Н.

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

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

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

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

Разработка “полноценной” программы (для выполнения которой требуется отдельное окно, с различными элементами управления) будет включать два этапа. Первый этап – этап визуального программирования, на котором создается окно (форма) программы, где располагаются необходимые элементы управления.

Второй – этап программирования, на котором создаются части программы (процедуры), выполняющиеся в ответ на определенные события. Событием является, например, щелчок левой кнопкой мыши на командной кнопке (событие Click), нажатие клавиши на клавиатуре (событие KeyPress) и т.д.

Использовать такое приложение можно нажатием кнопки – «Запуск проекта».

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

Одним из основных понятий VBA является объект. Объект – это то, чем вы управляете с помощью программы на языке VBA, например, форма, кнопка, рабочий лист или диапазон ячеек MS Excel.

Каждый объект обладает некоторыми свойствами. Например, форма может быть видимой или невидимой  в данный момент на экране.

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

Объект содержит также список методов, которые к нему применимы. Методы – это то, что вы можете делать с объектом. Например, показать форму на экране или убрать её можно с помощью методов Show и Hide.

Таким образом, объект – это программный элемент, который имеет свое отображение на экране, содержит некоторые переменные, определяющие его свойства, и некоторые методы для управления объектом. Например, в MS Excel имеется много встроенных объектов:

Range(“Адрес”)— диапазон ячеек (может включать только одну ячейку).
Cells(i, j)— ячейка, находящаяся на пересечении i-й строки и j-го столбца рабочего листа MS Excel (i и j – целые числа).
Rows(№ строки)— строка с заданным номером.
Columns(№ столбца)— столбец с заданным номером
Sheets(“Имя”)— лист с указанным именем.
Sheets(№ листа)— лист с указанным номером.
WorkSheet— рабочий лист.

Установка значений свойств – это один из способов управления объектами. Синтаксис установки значения свойства объекта следующий:

Объект. Свойство = Выражение

Основным свойством объектов Cells и Range, является Value(значение), которое, однако, можно не указывать. Например:

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.

В MS Excel имеются объекты, которые содержат другие объекты. Например, рабочая книга содержит рабочие листы, рабочий лист содержит диапазон ячеек и т.д. Объектом самого высокого уровня является Application (приложение). Если вы изменяете его свойства или  вызываете его методы, то результат применяется к текущей работе MS Excel. Например:

Application.Quit —  завершение работы с Excel.

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

Application.Workbooks(«Отчет«).Worksheets(«Май«).Rows(2).Delete

Нужно отметить следующее:

  • Можно не писать имя объекта Application, так как это подразумевается по умолчанию.
  • При работе с подобъектом уже активизированного объекта нет необходимости указывать содержащий его объект.
  • VBA использует некоторые свойства и методы, которые возвращают объект к которому они относятся (это позволяет быстро указывать нужный объект). Примеры таких свойств: ActiveCell (активная ячейка), ActiveSheet (активный лист), ActiveWorkBook (активная рабочая книга). Так, установить значение активной ячейки можно следующим образом:

ActiveCell.Value = » Да«.

2.2. Описание данных

Все объекты, которыми оперирует язык программирования VВА, относятся к определенному типу.

Тип данных определяет:

–       область возможных значений переменной;

–       структуру организации данных;

–       операции, определенные над данными этого типа.

Типы данных подразделяются на простые (скалярные) и сложные (структурированные). У простых типов данных возможные значения данных едины и неделимы. Сложные же типы имеют структуру, в которую входят различные простые типы данных. Скалярные типы данных представлены в таблице 2.1.

Таблица 2.1.  Скалярные типы VBA

Имя типаРусское название типаВозможные значения
BooleanЛогическийTrue, False
ByteБайтовый0…255
IntegerЦелое-32768…+32767
LongДлинное целое-2147483648…+2147483647
SingleЧисло с плавающей точкой-3,4Е38…-1,4Е-45 для отрицательных значений. 1,4Е-45…3,4Е38 для положительных значений.
DoubleЧисло с плавающей точкой двойной точности-1,7Е308…-4,9Е-324 для отрицательных значений. 4,9Е-324…1,7Е308 для положительных значений.
CurrencyДенежныйДесятичные числа с фиксированной позицией запятой. Возможны 15 цифр до запятой и 4 после.
StringСтроковыйЕсть два вида строк: строки фиксированной длины (до 216 символов) и строки переменной длины (до 231 символов). Данные записываются в кавычках.
DateДата

Источник: https://dpivi.ru/index.php?newsid=96

Основные понятия языка VBA. Переменные и константы

Основные понятия языка программирования VBA. Чернышова Н.Н.

Объект – это объединение данных с кодом, предназначенным для их обработки.

Объект представляет собой поименованный элемент, который имеет:

  • свойства (характеристики), которые можно проверить или изменить;
  • методы (действия), которые можно выполнить над объектом;
  • события (возможные для объекта ситуации), на которые он может ответить заранее определенными действиями.

Оператор – это наименьшая способная выполняться единица VBA-кода. Оператор может объявлять или определять переменную, а также выполнять какое-либо действие в программе.

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

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

Ключевые (зарезервированные) слова – это имена команд, операторов, процедур, функций.

Операнды – это данные, которые используются в программе. К ним относят константы, переменные и значения функций.

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

Ничего непонятно?

Попробуй обратиться за помощью к преподавателям

В VBA основные типы процедур – это Sub и Function. Любая процедура содержит один или более операторов, которые, в свою очередь, помещены между двумя специальными операторами: объявлением процедуры в начале и оператором завершения процедуры в конце.

Модуль – это поименованная единица, которая состоит из одной или нескольких процедур, а также общих объявлений, относящихся ко всем процедурам в модуле.

Алфавит VBA включает в себя:

  • прописные и строчные латинские буквы от A до Z, а также буквы русского алфавита от А до Я;
  • арабские цифры от 0 до 9;
  • знаки пунктуации (пробел, точку, запятую, точку с запятой, двоеточие, круглые скобки, кавычки, апостроф);
  • специальные символы ?, !, #, %, $

Данные

Определение 1

Данные – это элементарные конструкции языка.

Типы данных делятся на простые (или скалярные) и сложные (или структурированные). Простые типы данных подразделяются на числовые, строковые и логические. Структурированный тип данных массив – $n$-мерная совокупность индексированных переменных одного типа. Массиву присваивается имя.

Массив состоит из элементов (переменных), которые в памяти размещаются последовательно. Обращение в программе ко всему массиву производится по его имени. Для обращения к конкретному элементу массива необходимо указать его имя и в круглых скобках – индекс (номер) массива.

Все элементы массива имеют одно имя, но различные номера (положения) в массиве.

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

Различные типы данных введены для рационального использования памяти ЭВМ. Наиболее часто начинающие программисты используют типы данных Integer (для целых чисел) и Single (для дробных чисел).

Символьные (строковые, текстовые) данные должны заключаться в кавычки: ″1-я пара″, ″лекция″.

Переменные

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

Определение 2

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

Значение переменной присваивается с помощью знака равенства. Для удобства работы с переменными в языках программирования предусмотрена возможность задания понятных человеку имен, к примеру, имена переменных rFIO, rBirthday. К именам переменных в VBA имеется ряд требований:

  1. Переменная может содержать латинские символы, числа. Использование пробела и точки в имени переменной недопустимо (вместо пробела программисты используют знак «_»).
  2. Имя переменной должно начинаться с текстового символа (числа в начале не допустимы).
  3. Не допускается использование следующих символов: #, %, &, !, значок доллара. Эти символы в VBA зарезервированы за кратким указанием типа переменной без ее описания. К примеру, содержание символа $ (MyTxt$) в конце имени переменной указывает, что значение, которое хранится в этой переменной, относится к текстовому типу.
  4. Недопустимо использование зарезервированных слов. Если все ж для понимания назначения переменной необходимо использование в имени зарезервированного слова, то можно добавить некоторый символ или символы, например: Date зарезервировано (тип дата), для использования можно добавить «My», после чего получим допустимое – MyDate.
  5. Имя переменной не должно быть длиннее 254 символов. Мало вероятно, что кому-то придет в голову для переменной задавать имя длиннее 15-20 символов, не говоря уже о 254.
  6. Язык VB не чувствителен к регистру, поэтому переменные MyVar и myvar для VBA одинаковы.

Замечание 1

Пара советов по именованию переменных. Давайте имена переменным понятные, но в тоже время короткие т.к. с длинными именами сложнее работать.

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

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

Описание переменных в VBA

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

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

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

Dim [имя переменной] As [Тип].

Пример 1

Например, Dim MyInt As Integer. В случае такого описания переменная MyInt будет хранить в памяти только значения целого типа.

Обязательное объявление всех переменных

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

Это позволит сделать код более понятным, дисциплинирует, и в крупных разработках позволит сэкономить память и увеличить быстродействие при обработке данных. Для того чтобы в VBA включить обязательное объявление всех переменных, необходимо в начале модуля добавить строку: Option Explicit.

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

Константы

Определение 3

Константой называется значение, хранимое в памяти, которое в процессе работы программы не изменяется.

Константы используются в тех случаях, когда в коде программы используется один и тот же параметр, число, строка и т.д. Для того чтоб обеспечить удобство изменения этих параметров при необходимости, в начале кода программы описываются константы и им присваивается значение. Константы объявляются с помощью оператора Const. Например:

  • Const MyIntConst as Integer = 8
  • Const MyTxtConst as String = «Константа»

или без указания типа:

Const MyConst = 4,55

в этом случае константа типа Variant.

Замечание 2

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

Закрепим все вышесказанное примером небольшого макроса, который рассчитает функцию $y = x+i * 2$, где $x=\frac{i}{7}$, $0

Как видно из функции $y, x, i$ — это переменные. Так как при расчетах используется деление, то $y, x$ будут содержать значения вещественного типа. Переменная $i$ — это счетчик с шагом 1. 2 — это постоянное значение, т.е. константа. Результат $y$ будет выведен в диалоговом сообщении msgBox.

$Option Explicit$

$Sub VarExample()$

$Const MyConst As Byte = 2$

$ Dim Y As Single$

$ Dim X As Single$

$ Dim i As Integer$

$For i = 1 To 100$

$ X = i / 7$

$ Y = X + i * MyConst$

$ Next i$

В результате выполнения данной процедуры мы получим $y=214,2857$.

Источник: https://spravochnick.ru/programmirovanie/yazyk_microsoft_visual_basic_for_applications/osnovnye_ponyatiya_yazyka_vba_peremennye_i_konstanty/

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

Основные понятия языка программирования 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-Урок 2. Отладчик (Debugger)
  • Источник: http://moonexcel.com.ua/uroki-vba1_ru

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