Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Оператор описания переменных



Основы VBA

 

Visual Basic For Application (VBA) – это сочетание одного из самых простых языков программирования и всех вычислительных возможностей табличного процессора Excel.

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

В результате своей эволюции Visual Basic превратился в объектно-ориентированный язык программирования.

Объекты – это естественные детали VBA-ландшафта. Посредством объектов можно получить доступ к функциональным возможностям VBA-приложения.

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

· свойства, то есть установки, которые можно проверить или изменить;

· методы, то есть действия, которые объект может выполнить, если программа попросит об этом;

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

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

В результате этих действий на экране появится окно редактора Visual Basic (рис. 1).

В окне программного кода печатается составленная программа, а затем запускается при помощи кнопки Запуск макроса или команды меню Run. Также выполнить программу можно, нажав клавишу [F5].

При составлении программ приходится сталкиваться с такими понятиями, как оператор, процедура, модуль.

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

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

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

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

 

 
 

Рис. 1. Окно редактора Visual Basic

 

Алфавит языка VBA

 

Для записи операторов, функций, имен, арифметических выражений используются:

· все прописные и строчные буквы латинского алфавита;

· все прописные и строчные буквы русского алфавита;

· арабские цифры;

· специальные знаки

! & ‘ $? , . { } ( ) [ ] = - + _ ^ % / ~ < > : ;.

 

Имя переменной

 

Имена переменных выбираются по следующим правилам:

· имена должны начинаться с буквы, но не с цифры;

· в имени допускается знак подчеркивания, все остальные знаки запрещены;

· не допускается, чтобы имена имели пробелы;

· длина имени не должна превышать 255 символов;

· имя не должно совпадать ни с каким ключевым словом, функцией или оператором VBA;

· все процедуры и модули должны иметь разные имена.

Примеры допустимых и недопустимых имен переменных приведены в табл. 1.

Таблица 1

Примеры имен переменных

 

Допустимые имена Недопустимые имена
A Имя более 255 символов
Go4Ln 1p
SUMMA P 1
P1 W?
S_1 Sub

 

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

 

Объявление переменных

 

Каждую переменную перед использованием следует объявить. Для объявления переменных используется оператор Dim.

 

Dim Имя переменной As Тип

 

Если в разделе объявлений модуля поместить оператор Option Explicit, то при попытке использования предварительно не объявленной переменной VBA будет сообщать об ошибке.

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

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

Основные типы данных в VBA рассмотрены в табл. 2.

 

Таблица 2

Типы данных VBA

 

Тип данных Содержимое переменной Диапазон допустимых значений
Byte Достаточно малое целое число От 0 до 255
Integer Не слишком большое целое число От –32768 до 32767
Long Большое целое число От –2147483648 до 2147483647
Single Значение одинарной точности с плавающей запятой От –3, 402823Е38 до –1, 401298Е-45 для отрицательных значений и от 1, 401298Е-45 до 3, 402823Е38 для положительных значений
Double Значение двойной точности с плавающей запятой От –1, 79769313486231Е308 до 1, 79769313486232Е308

 

Dim a As Integer

Dim d As Double

 

Знаки операций

 

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

VBA разделяет операции на три главные категории: арифметические, логические и операции сравнения.

Если выражение содержит знаки операций из двух или более категорий, то VBA выполняет операции из разных категорий в следующем порядке:

1) арифметические;

2) операции сравнения;

3) логические операции.

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

Внутри каждой категории операций тоже имеются правила порядка выполнения операций (табл. 3).

 

Таблица 3

Порядок выполнения операций в VBA

 

Знаки операций Операции
Арифметические
^ Возведение в степень
- Отрицание
* или / Умножение или деление
\ Целочисленное деление
Mod Вычисление остатка от деления
+ или - Сложение или вычитание
Сравнение
= Равенство
< > Неравенство (не равно)
< Меньше
> Больше
< = Меньше или равно
> = Больше или равно
Логические
Not Логическое НЕТ
And Логическое И
Or Логическое ИЛИ

 

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

 

В VBA, как и в других приложениях Microsoft Office, есть встроенные математические функции. Эти функции можно использовать в арифметических выражениях для вычисления, например, целой части числа, модуля числа, синуса числа и др. Основные математические функции, используемые в VBA, приведены в табл. 4.

 

Таблица 4

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

 

Функция Значение
Abs(число) Абсолютное значение числа (модуль)
Atn(число) Арктангенс числа
Cos(число) Косинус числа
Exp(число) Число e в степени, равной заданному числу (eх)
Int(число) Целая часть числа. возвращает ближайшее меньшее целое
Log(число) Натуральный логарифм числа
Rnd Случайное число, значение одинарной точности
Sin(число) Синус числа
Sqr(число) Квадратный корень из числа
Tan(число) Тангенс числа

 

Оператор присваивания

 

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

 

Имя переменной = Выражение

 

Пример

A = 2

C = A

SUMMA = A + C

 

Ввод данных

 

Для составления программ необходимо в память ЭВМ ввести данные. Вводить данные можно тремя способами.

1. При помощи оператора присваивания.

Пример

a = 2

b = 4.5

2. При помощи оператора считывания InputBox(“Сообщение”).

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

Пример

A = InputBox (“Введите А”)

На экране появится диалоговое окно (рис. 2).

Если оператор оставить в таком виде, то переменной А присвоится значение символа “2”, а не числа 2.

 
 

Рис. 2. Стандартное окно ввода

 

Для преобразования символа в число будем использовать функцию Val (Строка), которая возвращает число, содержащееся в строке, как числовое значение соответствующего типа.

Если мы запишем A = Val (InputBox (“Введите А”)) и в поле ввода введем число 2, то переменной А присвоится значение числа 2.

3. Считывание данных с листа рабочей книги Excel.

Пример

А = Сells(1, 1)

После выполнения этого оператора переменной А присвоится значение, которое хранится в ячейке, находящейся в первой строке (первая цифра) и в первом столбце А (вторая цифра), т.е. в ячейке А1 электронной таблицы.

 

Оператор вывода

 

Вывод информации в VBA осуществляется с помощью оператора вывода.

 

MsgBox (Список аргументов)

 

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

Пример

MsgBox (“Значение А=” & A)

 
 

В результате на экране появится следующее диалоговое окно (рис. 3).

 

 

Рис. 3. Стандартное окно вывода

 

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

 

Пример

MsgBox (“Значение А=” & A & “, значение В=” & B)

 

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

 

Линейный процесс

 

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

 

Пример 1

Заданы два числа. Вычислить их сумму, произведение и частное.

 

Программный код

Option Explicit

Sub PR1()

Dim a As Integer, b As Integer, s As Integer, p As Integer

Dim ch As Double

a = Val(InputBox(" Введите А" )) ‘ ввод первого числа

b = Val(InputBox(" Введите В" )) ‘ ввод второго числа

s = a + b ‘ вычисление суммы

MsgBox (" сумма=" & s) ‘ вывод суммы

p = a * b ‘ вычисление произведения

MsgBox (" произведение=" & p) ‘ вывод произведения

ch = a / b ‘ вычисление частного

MsgBox (" частное=" & ch) ‘ вывод частного

End Sub

В программе можно писать комментарии – пояснения к вашей программе, которые предназначены для пользователя, а не для компьютера. Комментарии начинаются с символа ‘ (апостроф). Все, что написано в строке программного кода справа от апострофа, считается комментарием.

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

 

Пример 2

Заданы целые числа a, b, c. Вычислить значение выражения

 

 

Программный код

 

Option Explicit

Sub PR2()

Dim a As Integer, b As Integer, c As Integer ‘ описание переменных

Dim y As Double

a = Val(InputBox(" Введите А" )) ‘ ввод а с клавиатуры

b = Val(InputBox(" Введите В" )) ‘ ввод b с клавиатуры

c = Val(InputBox(" Введите C" )) ‘ ввод с с клавиатуры

y = (Sqr(a + b) + b ^ 2) / (a + b + c) ^ 3 * Tan(a) ‘ вычисление

‘ значения

‘ выражения

MsgBox (" y=" & y) ‘ вывод результата на экран

End Sub

 

Оператор условного перехода

 

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

 

If Условие Then Оператор1 Else Оператор2

 

Условие – это выражение логического типа. Оно может быть простым или сложным. Если в условном операторе < Условие> истинно, то выполняется < Оператор1>, в противном случае выполняется < Оператор2>.

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

 

Пример

A > = 10

 

Таблица 5

Знаки сравнения

 

Операция Название Пример выражения
= Равно A=B
< > Не равно A< > B
> Больше A> B
< Меньше A< B
> = Больше или равно A> =B
< = Меньше или равно A< =B

 

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

 

Пример

If A > 10 And A < 20 then …..

If (B > 4 Or B < 2) And A > 5 then …..

 

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

Таблица 6

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

 

Операция Название Пример выражения
Not Логическое отрицание Not A
And Логическое И A And B
Or Логическое ИЛИ A Or B

 

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

 

If Условие Then

Блок операторов 1

Else

Блок операторов 2

End If

 

Ветвь Else в условном операторе является необязательной. Такая форма условного оператора называется неполной и выглядит следующим образом:

 

If Условие Then Оператор

 

или

 

If Условие Then

Блок операторов

End If

 

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

 

If Условие1 Then

Блок операторов 1

ElseIf Условие2 Then

Блок операторов 2

ElseIf Условие3 Then

………..

Else

Блок операторов

End If

 

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

Пример

If A > 10 Then A = A + 1: B = B + A: C = C + B

Если этот же пример записать с использованием в операторе If записи после Then в столбик, это будет выглядеть так:

If A > 10 Then

A = A + 1

B = B + A

C = C + B

End If

 

Пример 1

Задано целое число x. Вычислить значение функции

 

 
 

Ö x, если x> 0;

Y= x2, если x< 0;

5, если x=0.

 

Программный код

 

Option Explicit

Sub PR3()

Dim x As Integer

Dim y As Double

x = Val(InputBox(" Введите x" ))

If x > 0 Then y = Sqr(x)

If x < 0 Then y = x ^ 2

If x = 0 Then y = 5

MsgBox (" y=" & y)

End Sub

 

Пример 2

Задано действительное число x. Вычислить значение функции

 

 
 

Y =

 
 

Ö x.

 

Программный код

 

Option Explicit

Sub PR4()

Dim x As Double

Dim y As Double

x = Val(InputBox(" Введите x" ))

If x > 0 Then

y = 1 / Sqr(x)

MsgBox (" y=" & y)

Else

MsgBox (" Решения нет" )

End If

End Sub

Пример 3

Задано три действительных числа x, y, z. Вычислить самое большое из них.

 

Программный код

 

Option Explicit

Sub PR5()

Dim x As Double, y As Double, z As Double, max As Double

x = Val(InputBox(" Введите x" ))

y = Val(InputBox(" Введите y" ))

z = Val(InputBox(" Введите z" ))

If (x > y) And (x > z) Then max = x

If (y > x) And (y > z) Then max = y

If (z > x) And (z > y) Then max = z

MsgBox (" Максимум=" & max)

End Sub

 

Операторы цикла

 

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

 

МАССИВЫ

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

Массивы могут быть одномерными и многомерными.

Одномерные массивы

 

Одномерный массив – это набор однотипных элементов, расположенных друг за другом в одной строке или столбце.

 

Пример

1 –34 8 2 6

или

-5

 

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

Индекс может быть:

· константой

Пример

P(1), C(5)

· переменной целого типа

Пример

A(i), B(j)

· арифметическим выражением (значение арифметического выражения должно быть целым)

Пример

A(i*2), Q(i^j)

 

Объявление массива

 

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

 

Dim Имя массива (Размерность массива) As Тип элементов

 

Пример

Dim A (100) As Integer

Dim B (50) As Byte

Dim С (40) As Double

 

При таком описании массива его элементы индексируются (т.е. нумеруются), начиная с нуля.

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

Dim A (1 To 100) As Integer,

то элементы массива индексируются с единицы.

 

Ввод массива

Перед обработкой массива его необходимо заполнить (ввести).

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

 

 
 

1 способ. На рабочем листе введем числа в ячейки электронной таблицы (рис. 4), откроем окно программного кода и запишем в него программу, которая считывает данный массив чисел.

Рис. 4. Исходный массив

Программный код

 

Option Explicit

Sub PR14()

Dim A(20) As Integer

Dim i As Integer

For i = 1 To 6

A(i) = Cells(1, i) ‘ массив заполняется

Next i ‘ числами с рабочего листа Excel

End Sub

 

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

 

Randomize

For i = 1 To 10

Cells(1, i) = Int(Rnd * 100 – 50)

A(i) = Cells(1, i) ‘ заполнение массива

Next i

 

Функция Rnd возвращает значение от 0 до 1. Перед вызовом функции Rnd используется инструкция Randomize без аргумента для инициализации генератора случайных чисел значением, возвращаемым системным таймером.

Cells(1, i) означает ячейку электронной таблицы, находящуюся в первой строке и столбце с номером i.

Вообще оператор Cells(i, j) служит для вывода информации в ячейку электронной таблицы или считывания информации из ячейки электронной таблицы Excel. В скобках через запятую указываются номер строки – i и номер столбца – j ячейки электронной таблицы.

 

Пример

Cells(1, 2) = x ‘в ячейку B1 записывается информация из переменной х

х = Cells(1, 2) ‘из ячейки В1 считывают информацию в переменную х

 

Вывод массива

 

Для распечатки полученного массива на рабочий лист Excel используется следующая конструкция:

 

For i = 1 To n

Cells(k, i) = A(i) ‘ вывод массива в ячейки электронной таблицы

Next i ‘ k – номер строки для заполнения ячеек.

 

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

После заполнения ячеек их содержимое можно посмотреть, свернув окно программного кода при помощи кнопки “Свернуть” или переключившись в окно Excel с помощью соответствующей кнопки на панели задач.

 

Двумерные массивы

 

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

 

4 –3 2 4 5

6 3 2 4 0

7 1 2 6 0

12 24 25 8 4

0 4 5 8 3

 

Каждый элемент двумерного массива обозначается при помощи имени и индексов, заключенных в круглые скобки, например, A(i, j), X(4, 3), P(2× i, j+1), первый индекс – номер строки, второй – номер столбца.

Двумерный массив, называемый также матрицей, описывается при помощи оператора Dim.

 

Dim A(10, 10) As Тип ‘ нумерация с нуля

Dim A(1 To 10, 1 To 10) As Тип ‘ нумерация с единицы

 

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

 

Ввод двумерного массива

1. Считывание массива с рабочего листа Excel.

 

For i = 1 To N

For j = 1 To M

A(i, j) = Cells(i, j)

Next j

Next i

 

‘ N – количество строк массива, M – количество столбцов массива.

2. Формирование массива на рабочем листе Excel при помощи счетчика случайных чисел, а затем считывание массива с рабочего листа.

 

Randomize

For i = 1 To N

For j = 1 To M

Cells(i, j) = Int(Rnd * 100 ­– 50)

A(i, j) = Cells(i, j)

Next j

Next i

Вывод двумерного массива

Вывод двумерного массива на рабочий лист Excel выглядит следующим образом:

 

For i = 1 To N

For j = 1 To M

Cells(i, j) = A(i, j)

Next j

Next i

Формирование матрицы

 

При формировании квадратной матрицы будем пользоваться следующими инструкциями. Общий вид квадратной матрицы, например размерности 4´ 4, выглядит следующим образом:

 

А11 А12 А13 А14
А21 А22 А23 А24
А31 А32 А33 А34
А41 А42 А43 А44

 

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

Относительно каждой диагонали элемент матрицы может находиться выше или ниже диагонали. Условия нахождения элемента в каждой из частей матрицы показаны на рис. 8.

I, J – номера строки и столбца, в которых находится элемент матрицы.

 

 
 

 


Рис. 7. Главная и побочная диагонали

 

 
 

 


Рис. 8. Условия нахождения элемента выше или ниже диагонали

 

Относительно обеих диагоналей элемент матрицы может находиться в одной из четвертей. Условия нахождения элемента в каждой из них показаны на рис. 9.

       
 
 
   
(I> J) and (I+J> N+1)

 

 


Рис. 9. Нахождение элемента в одной из четвертей

 

Пример 1

Сформировать матрицу X(N, N) вида

 

На побочной диагонали матрицы стоят 5, на главной диагонали стоят 4, в I четверти – 0, во II четверти – 2, в III четверти – 3, в IV четверти – 1.

 

Программный код

Option Explicit

Sub PR22()

Dim a(10, 10) As Integer

Dim N As Integer

Dim i As Integer

Dim j As Integer

N = Val(InputBox(" Введите N" ))

Range(Cells(1, 1), Cells(100, 100)).Select ‘ выделяет диапазон ячеек

Selection.Clear ‘ очищает выделенный диапазон ячеек

Cells(1, 1).Select ‘ снимает выделение

For i = 1 To N

For j = 1 To N

If i + j = N + 1 Then a(i, j) = 5

If i = j Then a(i, j) = 4

If i < j And i + j < N + 1 Then a(i, j) = 0

If i < j And i + j > N + 1 Then a(i, j) = 2

If i > j And i + j > N + 1 Then a(i, j) = 3

If i > j And i + j < N + 1 Then a(i, j) = 1

Next j

Next i

Cells(1, 1) = " Полученная матрица"

For i = 1 To N

For j = 1 To N

Cells(i + 1, j) = a(i, j)

Next j

Next i

End Sub

Пример 2

Сформировать матрицу X(N, N) вида

 

N
. . . . .
N

 

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

 

For i = 1 To N

For j = 1 To N

X(i, j) = 0

If i = j Then X(i, j) = i

If i + j = N + 1 Then X(i, j) = N + 1 – i

Next j

Next i

 

Пример 3

Сформировать матрицу Y(N, N) вида

 

. . . . .

 

For i = 1 To N

For j = 1 To N

If i = 1 Or i = N Or j = 1 Or j = N Then Y(i, j) = 1 Else Y(i, j) = 0

Next j

Next i

 

Пример 4

Сформировать матрицу Z(N, N) вида

 

. . . . . . .
N

 

For i = 1 To N

For j = 1 To N

If i > = j Then Z(i, j) = j Else Z(i, j) = 0

Next j

Next i

 

 

Пример 5

Сформировать матрицу Q(N, N) вида

 

. . . .

 

For i = 1 To N

For j = 1 To N

If (i +j) mod 2 = 0 Then Q(i, j) = 1 Else Q(i, j) = 2

Next j

Next i

 

Подпрограммы

 

При написании длинных программ рационально использовать подпрограммы.

Подпрограмма – это отдельный блок, который может восприниматься как отдельная программа. В VBA существует два вида подпрограмм: подпрограмма-процедура и подпрограмма-функция.

 

Подпрограмма-процедура

 

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

 

Синтаксис:

[ Public | Private ] [ Static ] Sub Имя([Список аргументов])

Тело подпрограммы

End Sub

Элементы описания процедуры рассмотрены в табл. 10.

 

Таблица 10

Public Указывает, что процедура Sub доступна для всех других процедур во всех модулях
Private Указывает, что процедура Sub доступна для других процедур только того модуля, в котором она описана
Static Указывает, что локальные переменные процедуры Sub сохраняются в промежутках времени между вызовами этой процедуры
Список аргументов Список переменных, которые передаются в процедуру Sub при ее вызове. Имена переменных разделяются запятой

 

Вызов процедуры Sub из другой процедуры можно произвести следующим образом:

 

Имя процедуры [Список фактических параметров]

 

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

Пример

Основные способы передачи параметров в процедуре.

 

Option Explicit

Sub PR27()

Dim c As Double

Dim a As Integer

Dim b As Integer

B = 12

For a = 1 To 5

Summa a, b, c

MsgBox(" c=" & c)

Next a

End Sub

Sub Summa(ByVal a1, b1 As Integer, ByRef s As Double)

S = a1 + b1

End Sub

 

В данной программе мы сталкиваемся с несколькими видами параметров:

· глобальные параметры – c, a, b;

· локальные параметры – s, a1, b1;

· параметры, передающиеся по значению – a, b;

· параметры, передающиеся по ссылке – s;

· фактические параметры – a, b, c;

· формальные параметры – a1, b1, s.

Рассмотрим каждый из этих видов параметров.

 

Подпрограмма-функция

 

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

 

Синтаксис:

[ Public [Private ] [ Static ] Function Имя [(Список аргументов)] As Тип

Тело подпрограммы

Имя = Выражение

End Function

Подпрограмма-функция вызывается в выражении по своему имени, за которым следует список аргументов в скобках:

 

Переменная = Имя подпрограммы-функции(Список аргументов)

 

Пример 1

Даны действительные числа s, t. Получить значение выражения

 

,

 

где

 

Программный код

 

Option Explicit

Sub PR31()

Dim s As Double

Dim t As Double

Dim f As Double

s = Val(InputBox(" Введи s" ))

t = Val(InputBox(" Введи t" ))

f = Q(1.2, s) + Q(t, s) – Q(2 * s – 1, s * t)

MsgBox(" f=" & f)

End Sub

Private Function Q(ByVal a As Double, ByVal b As Double) As Double

Q = (a^2 + b^2) / (a^2 + 2 * a * b + 3 * b^2 + 4)

End Function

 

 

Основы VBA

 

Visual Basic For Application (VBA) – это сочетание одного из самых простых языков программирования и всех вычислительных возможностей табличного процессора Excel.

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

В результате своей эволюции Visual Basic превратился в объектно-ориентированный язык программирования.

Объекты – это естественные детали VBA-ландшафта. Посредством объектов можно получить доступ к функциональным возможностям VBA-приложения.

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

· свойства, то есть установки, которые можно проверить или изменить;

· методы, то есть действия, которые объект может выполнить, если программа попросит об этом;

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

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

В результате этих действий на экране появится окно редактора Visual Basic (рис. 1).

В окне программного кода печатается составленная программа, а затем запускается при помощи кнопки Запуск макроса или команды меню Run. Также выполнить программу можно, нажав клавишу [F5].

При составлении программ приходится сталкиваться с такими понятиями, как оператор, процедура, модуль.

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

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

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

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

 

 
 

Рис. 1. Окно редактора Visual Basic

 

Алфавит языка VBA

 

Для записи операторов, функций, имен, арифметических выражений используются:

· все прописные и строчные буквы латинского алфавита;

· все прописные и строчные буквы русского алфавита;

· арабские цифры;

· специальные знаки

! & ‘ $? , . { } ( ) [ ] = - + _ ^ % / ~ < > : ;.

 

Имя переменной

 

Имена переменных выбираются по следующим правилам:

· имена должны начинаться с буквы, но не с цифры;

· в имени допускается знак подчеркивания, все остальные знаки запрещены;


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-08; Просмотров: 962; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.324 с.)
Главная | Случайная страница | Обратная связь