Типы данных, переменные и константы. Выражения в VBA. Использование функций VBA

Содержание

Слайд 2

Программными единицами в языке VBA являются процедуры и функции, которые принято

Программными единицами в языке VBA являются процедуры и функции, которые принято

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

Создание процедуры по типу макроса Текст процедуры подчиняется следующему формату: Sub ( ) End Sub

Создание процедуры по типу макроса

Текст процедуры подчиняется следующему формату:
Sub <имя

процедуры> ( )
<тело процедуры>
End Sub
Слайд 4

Ошибки синтаксиса Синтаксисом (syntax) – называется определенный порядок слов и символов,

Ошибки синтаксиса

Синтаксисом (syntax) – называется определенный порядок слов и символов,

который образует правильный оператор VBA. Некоторые из наиболее общих ошибок, с которыми вы сталкиваетесь во время написания или редактирования процедур VBA, – это ошибки синтаксиса (syntax errors), например, пропущенные запятые, кавычки, аргументы и так далее.
Слайд 5

Ошибки синтаксиса Всякий раз, когда вы пишете новую строку кода или

Ошибки синтаксиса

Всякий раз, когда вы пишете новую строку кода или изменяете

существующую, VBA анализирует (parses) строку, как только курсор вставки перемещается из новой или измененной строки.
Синтаксический анализ (parsing) – так называется процесс разбивки оператора VBA на составляющие части и определение того, какие части строки являются ключевыми словами, переменными или данными. После выполнения анализа строки кода VBA компилирует эту строку кода.
Слайд 6

Ошибки синтаксиса После выполнения анализа строки кода VBA компилирует эту строку

Ошибки синтаксиса

После выполнения анализа строки кода VBA компилирует эту строку кода.


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

Ошибки синтаксиса После того как VBA успешно завершит анализ и компиляцию

Ошибки синтаксиса

После того как VBA успешно завершит анализ и компиляцию строки

кода в процедуре и не будет обнаружено никаких ошибок, выполнится цветовое кодирование различных частей строки
Ключевые слова в Редакторе VB отображаются синим цветом, комментарии – зеленым, а данные или другие операторы отображаются в виде черного текста.
Если, однако, VBA обнаруживает ошибку синтаксиса в строке в процессе анализа или компиляции, VBA отображает всю строку красным цветом и выводит на экран диалоговое окно с сообщением об ошибке.
Слайд 8

При написании процедуры следует соблюдать требования синтаксиса VBA. В частности, в

При написании процедуры следует соблюдать требования синтаксиса VBA.
В частности, в

одной строке можно писать одну или несколько инструкций. Если их несколько, то их следует отделять друг от друга символом двоеточие ":".
Если же требуется перенести часть инструкции на следующую строку, то следует в конце предыдущей строки ввести символ продолжения строки – это комбинация клавиш пробел и символа подчеркивания " _".
Запись комментариев с строке начинается с символа апостроф (').
Слайд 9

Пример простой процедуры, выводящей на экран слова Привет, мир. Наши действия

Пример простой процедуры, выводящей на экран слова Привет, мир.
Наши действия по

созданию процедуры:
1. Открывает книгу Excel. Открываем редактор Visual Basic, нажав Alt+F11. В окне Project отмечаем книгу, в которой создадим новый модуль для записи текста процедуры.
2. Выбираем команду Insert /Module. Visual Basic создает новый модуль и открывает для него окно Code. Можно изменить имя модуля, дав ему содержательное имя. Для этого открываем окно свойств Properties, в котором в текстовом поле Name вводим новое имя для модуля, например Приветствие.
Слайд 10

3. В окне Code вводим текст процедуры: Sub Hello() ' начало

3. В окне Code вводим текст процедуры:
Sub Hello() ' начало процедуры

– ее объявление
MsgBox "Привет, мир" ' тело процедуры
End Sub ' конец процедуры
4. Для запуска процедуры следует курсор установить в ее теле и нажать на панели инструментов кнопку
Run Sub/ .
Слайд 11

Типы данных VBA

Типы данных VBA

Слайд 12

Типы данных VBA

Типы данных VBA

Слайд 13

Типы данных VBA

Типы данных VBA

Слайд 14

Типы данных VBA

Типы данных VBA

Слайд 15

Типы данных VBA VBA имеет шесть различных численных типов данных: Byte,

Типы данных VBA

VBA имеет шесть различных численных типов данных: Byte,

Integer, Long, Single, Double и Currency. Численные типы данных используются для хранения (и манипулирования) чисел в различных форматах, в зависимости от конкретного типа.
Слайд 16

Типы данных VBA Обычно VBA-программа (как и любые другие программы) «принимает»

Типы данных VBA

Обычно VBA-программа (как и любые другие программы) «принимает»

решения, проверяя, являются ли истинными различные условия. Для упрощения тестирования условий и обеспечения сохранения результатов такого тестирования в VBA имеется логический тип данных. Логические значения True и False называют булевыми (Boolean) значениями.
Слайд 17

Типы данных VBA Любые текстовые данные, сохраняемые в программе VBA, называются

Типы данных VBA

Любые текстовые данные, сохраняемые в программе VBA, называются

строками (strings). Строки в VBA сохраняются с использованием типа данных String. Строка может содержать текстовые символы любых типов: буквы алфавита, цифры, знаки пунктуации или различные символы.
Слайд 18

Типы данных VBA Тип данных Variant – это особый тип данных,

Типы данных VBA

Тип данных Variant – это особый тип данных,

который может сохранять любые типы, за исключением типа Object.
VBA использует тип Variant для всех переменных, если только вы не объявляете явно тип переменной. Данные типа Variant принимают характеристики определенного типа, который они сохраняют в данный момент.
Например, если данные типа Variant содержат строковые данные, Variant принимает характеристики типа String. Если данные типа Variant содержат численные данные, Variant принимает характеристики какого-либо численного типа, обычно – Double, хотя типы Variant могут также иметь характеристики типов Integer, Long, Single или Currency.
Слайд 19

Типы данных VBA Несмотря на то, что типы Variant удобны и

Типы данных VBA

Несмотря на то, что типы Variant удобны и

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

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

Переменные

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

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

Переменные Тип переменной определяется двумя способами: 1) с помощью инструкции Dim As

Переменные

Тип переменной определяется двумя способами:
1) с помощью инструкции
Dim < имя

переменной> As <тип переменной>
Слайд 22

Переменные 2) добавлением в конце имени специального символа определения типа: !

Переменные

2) добавлением в конце имени специального символа определения типа:
! – тип

Single;
@ – тип Currency;
# – тип Double;
$ – тип String;
% – тип Integer;
& – тип Long.
Слайд 23

Константы Различают непоименованные и поименованные константы. Непоименованные константы появляются в тесте

Константы

Различают непоименованные и поименованные константы.
Непоименованные константы появляются в тесте программы

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

Константы Допускается экспоненциальная форма записи числовых констант, например запись 6.1435E2 определяет

Константы

Допускается экспоненциальная форма записи числовых констант, например запись 6.1435E2 определяет число

614.35.
Строковые константы заключаются в кавычки, например, "Это строковая константа".
Константы даты обрамляются знаками #, например, #18/10/04#.
Введены две логические константы – True и False.
Слайд 25

Константы Поименованные константы объявляются либо с явным указанием типа, либо без

Константы

Поименованные константы объявляются либо с явным указанием типа, либо без явного

указания типа, соответственно инструкциями:
Const <имя>As <тип> = <значение>
Const <имя> = <значение>
Слайд 26

Выражения в VBA. Использование функций VBA

Выражения в VBA. Использование функций VBA

Слайд 27

Выражение (expression) – это значение или группа значений, выражающая отдельное значение.

Выражение (expression) – это значение или группа значений, выражающая отдельное значение.


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

Арифметические операции Арифметические операции позволяют выполнить все стандартные арифметические действия: +

Арифметические операции

Арифметические операции позволяют выполнить все стандартные арифметические действия:
+ – операция сложения,

например, A1+A2 складывает A1 и A2;
– – операция вычитания, например, A1–A2 вычитает A2 из A1;
* – операция умножения, например, A1*A2 умножает A1 и A2;
Слайд 29

Арифметические операции / – операция деления, например, A1/A2 делит A1 на

Арифметические операции

/ – операция деления, например, A1/A2 делит A1 на A2;
\ –

операция целочисленного деления, например, A1\ A2 делит A1 на A2, отбрасывая дробную часть;
Mod – операция деления по модулю, например, A1 Mod A2 делит A1 на A2, возвращая остаток от деления. Остаток – целое число;
^ – операция возведения в степень, например, A1^ A2 возводит A1 в степень A2.
Слайд 30

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

Операции сравнения

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

имеет тип Boolean:
= – равно. Синтаксис: E1=E2. True, если E1 равно E2, False – в противном случае;
< – меньше. Синтаксис: E1
Слайд 31

Операции сравнения > – больше. Синтаксис: E1>E2. True, если E1 больше

Операции сравнения

> – больше. Синтаксис: E1>E2. True, если E1 больше чем E2,

False – в противном случае;
<= – больше или равно. Синтаксис: E1 >= E2. True, если E1 больше чем E2 или рано E2, False – в противном случае;
<> – не равно. Синтаксис: E1<>E2. True, если E1 не равно E2, False – в противном случае
Слайд 32

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

Логические операции

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

качестве операндов используются значения типа boolean или число, которое можно преобразовать к этому типу. Результат логической операции имеет тип Boolean:
And – Конъюнкция. Выражение A1 And A2 истинно, если истинны оба его операнды;
Or – Дизъюнкция. Выражение A1 Or A2 истинно, если истинен хотя бы один его операнд;
Not – Отрицание. Выражение Not A1 истинно, если значение A1ложно и наоборот.
Слайд 33

Тип String допускает единственную операцию слияния, обозначаемую знаком амперсанд "&", которую

Тип String допускает единственную операцию слияния, обозначаемую знаком амперсанд "&", которую

называют также конкатенацией строк
& – Конкатенация. Значение выражения A1 & A2 есть строка, полученная присоединением к строке A1 строки A2.
Слайд 34

Функции VBA и Excel Встроенные функции VBA по назначению можно разделить

Функции VBA и Excel

Встроенные функции VBA по назначению можно разделить на

несколько категорий:
математические функции;
функции преобразования данных;
функции даты и времени;
функции взаимодействия с пользователем;
строковые функции;
функции управления файловой системой;
другие функции.
Слайд 35

Математические функции Abs(x) – абсолютное значение x; Atn(x) – arctg(x) –

Математические функции

Abs(x) – абсолютное значение x;
Atn(x) – arctg(x) – в радианах;
Cos(x

) – косинус угла x;
Exp(x) – ex;
Fix(x) – возвращает целую часть числа x. Если x < 0, то Fix(x) ≥ x;
Int(x) – возвращает целую часть числа x. Если x < 0, то Int(x) ≤ x;
Log(x) – ln(x);
Слайд 36

Математические функции Round(x, [d]) – округление числа x до d десятичных

Математические функции

Round(x, [d]) – округление числа x до d десятичных знаков.

Если аргумент d опущен, производится округление x до целого числа;
Sgn(x) – функция знака
Sin(x) – синус угла x;
Sqr(x) –
Tan(x) – tg(x).
Слайд 37

Правила старшинства операций VBA поддерживает следующее старшинство операций от большего к

Правила старшинства операций

VBA поддерживает следующее старшинство операций от большего к меньшему;


^ – возведение в степень;
*, / – умножение, деление;
\ – операция целочисленного деления;
Mod – операция деления по модулю;
+, – – сложение, вычитание;
& – конкатенация;
<, <=, >, >=, =, <>– операции сравнения;
Not – отрицание;
And – конъюнкция;
Слайд 38

Функции взаимодействия с пользователем InputBox(Prompt, [Title], [Default], [XPos], [YPos], [HelpFile], [Context])

Функции взаимодействия с пользователем

InputBox(Prompt, [Title], [Default], [XPos], [YPos], [HelpFile], [Context]) As

String – ввод данных.
Здесь обязательным аргументом является только Prompt – строка, используемая для подсказки о вводимой информации.
Остальные аргументы могут быть опущены, так как не являются обязательными.
Слайд 39

Функции взаимодействия с пользователем Назначение их следующее: Title – заголовок диалогового

Функции взаимодействия с пользователем

Назначение их следующее:
Title – заголовок диалогового окна

для ввода информации;
Default – значение сроки ввода по умолчанию;
XPos, YPos – координаты левого верхнего угла диалогового окна, соответственно горизонтальное и вертикальные расстояния в твипах. Один твип равен 1/20 точки, которая составляет 1/72 дюйма;
HelpFile – имя файла помощи в операционной системе Windows;
Context – числовое выражение определяющее тематический раздел в файле помощи;
Слайд 40

Функции взаимодействия с пользователем MsgBox(Prompt, [Buttons As VbMsgBoxStyle = vbOKOnly], [Title],

Функции взаимодействия с пользователем

MsgBox(Prompt, [Buttons As VbMsgBoxStyle = vbOKOnly], [Title],

[HelpFile], [Context]) As VbMsgBoxResult – вывод данных. Здесь обязательным аргументом является только Prompt – строка выводимой информации.
Остальные аргументы могут быть опущены, так как не являются обязательными.
Слайд 41

Функции взаимодействия с пользователем Назначение Title, HelpFile и Context– те же,

Функции взаимодействия с пользователем

Назначение Title, HelpFile и Context– те же, что

и в функции InputBox.
Аргумент Buttons является числовым выражением, определяющим тип кнопок в диалоговом окне вывода информации. По умолчанию значение vbOKOnly определяет активную кнопку ОК.
Слайд 42

Присвоение значений переменным Переменная получает свое значение применением к ней оператора

Присвоение значений переменным

Переменная получает свое значение применением к ней оператора присваивания,

который обозначается символом равно "=". В общем случае синтаксис следующий
<переменная> = <выражение>
Слайд 43

Совместимость типов данных. Автоматическое преобразование данных Не все типы данных совместимы

Совместимость типов данных. Автоматическое преобразование данных

Не все типы данных совместимы

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

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

Совместимость типов данных.

Очень важно контролировать и знать тип выражения, потому что

если выражения содержат несовместимые типы, VBA выдает ошибку времени исполнения – ошибку несовпадения типов (type-mismatch).
Слайд 45

Автоматическое преобразование типов Преобразование числовых типов сводится к получению самого точного

Автоматическое преобразование типов

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

значения (имеется в виду количество значащих цифр).
Например, если переменные в выражении типа Single и Integer, то результат выражения будет иметь тип Single, потому что точность типа Single выше.
Если числовой переменной присваивается значение выражения, точность которого выше, то VBA округлит его до той точности, которая присуща переменной.
Например, если переменной типа Integer присвоить значение выражения типа Double, значение выражения будет округлено до целого.
Слайд 46

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

Автоматическое преобразование типов

Преобразование строк и чисел выполняется по следующим правилам:
1)выражение Число+строка
выдает

сообщение о несоответствии типов, если число имеет числовой тип, а строка тип String;
выполняется конкатенация (сцепление), если число имеет тип Variant, а строка тип String; результат – тип String;
выполняется арифметическое сложение, если число имеет числовой тип, а строка – тип Variant; результат – числовой тип;
2)Число + "3"
всегда выполняется арифметическое сложение; результат – числовой тип;