Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

12_Шишкина Л.П., Бояринцева Т.П., Сержант Т.Н_Лаб_практикум по информатике_VBA_2012

.pdf
Скачиваний:
36
Добавлен:
26.03.2016
Размер:
1.01 Mб
Скачать

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

Null - не содержит данных, это значение можно присвоить переменной.

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

VBA позволяет использовать переменные без предварительного описания, поэтому переменная Nprf сразу используется в инструкции присваивания. Она имеет тип Variant по умолчанию. Такой стиль “ввода в действие” переменных довольно опасен, т.к затрудняет поиск ошибок. ПоэтомуVBA позволяет наложить требование на явное описание всех переменных в модуле. Для этого в описательную часть модуля (до процедур) надо включить инструкцию Option Explicit. Если теперь попытаться использовать в тексте процедур необъявленные переменные, VBA сразу обнаружит ошибки.

Иногда имена записывают так: Номер_строки или НомерСтроки. Применение полных имен особенно полезно для глобальных переменных, которые хранят параметры моделируемых объектов и явлений. В компактных процедурах удобнее пользоваться переменными, применяемыми в математике и физике, например: X – координата, M – число строк в матрице или таблице, i – номер очередной строки, N – число столбцов, j – номер текущего столбца, V – скорость, S – путь и т.п.

Кроме возможности явного задания типа переменной, VBA позволяет указать тип переменной неявно, добавив к ее имени символ-указатель:

$ - для типа данных String, например, ФИО$ = ”Иванов И.И.” ; % - для данных типа Integer, например, i% = 1;

& - для данных типа Long, например, CX& = 6510200; ! - для данных типа Single, например, x! = 107.315;

# - для данных типа Double, например, Pi# = 3.14159; @ - для данных типа Currency, например, SS@ = 67920.12

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

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

Dim V(1 to 200) As Single, T(1 to 200) As Single, i As Integer

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

S=S+(V(i)+ V(i+1))*0.5*(T(i+1)-T(i))

Если при описании массива размерность задать одним числом, например, V(200), то будет считаться, что нумерация элементов массива начинается с 0 и оканчивается числом 200. Если в описательную часть модуля (до процедур) включить инструкцию Option Base 1, то нумерация элементов массива будет начинаться с 1. Кроме одномерных массивов, используются многомерные. Предположим, что на листе Excel в первом столбце размещены идентификаторы строк, например, Y1,Y2,…,YI,…,YM , а в первой строке – идентификаторы столбцов: X1,X2,…,XJ,…,XN. На пересечении I-ой строки и J-го столбца находится элемент aIJ

 

X1

X2

………

XJ

………

XN

Y1

a11

a12

………

a1J

………

a1N

Y2

a21

a22

………

a2J

………

a2N

………

………

………

………

………

………

………

YI

aI1

aI2

………

aIJ

………

aIN

………

………

………

………

………

………

………

YM

aM1

aM2

………

aMJ

………

aMN

Рис. 2. Размещение матрицы с элементами a(I, J) на листе Excel

11

матрицы (Рис.2.).

В этом примере матрица представляет собой таблицу коэффициентов, позволяющих связать любой YI уравнением со значениями X1,…,XN:

YI=aI1*X1+aI2*X2+…+aIJ*XJ+…+aIN*XN

Другими словами, мы имеем матричную запись системы линейных уравнений. Пусть для последующей работы с матрицей требуется задать M, N, разместить идентификаторы YI (I=1,…,M) и XJ (J=1,…N) в массивах CY, CX, а элементы матрицы в двумерном массиве A(I,J).

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

Dim CY(1 to 40), CX(1 to 40), A(1 to 40,1 to 40) As Double

Visual Basic предоставляет и другую возможность – динамического переопределения размерности массивов.

1.При резервировании массива размерность не указывается. Например, Dim a() as Single.

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

3.Выполняется изменение размерности массива: Redim a (1 to n)

Допустимо повторное использование инструкции Redim Рассмотрим следующий модуль:

Option Explicit

Dim CY( ), CX( ), A( ) As Double

Dim I As Integer, J As Integer, M As Integer, N As Integer

Private Sub CommandButton1_Click( )

N=TextBox1.Value : M=TextBox2.Value 'Определение M, N - размерности матрицы ReDim CY(1 To M)

ReDim CX(1 To N) 'Изменение размерности массивов

ReDim A(1 To M, 1 To N)

TabCXCY ' Копирование идентификаторов столбцов и строк в массивы CX, CY TabA ' Копирование матрицы в массив A

End Sub

 

Private Sub TabCXCY( )

 

For J = 1 To N

'Идентификаторы столбцов

CX(J) = Cells(1, J + 1).Value

Next J

 

For I = 1 To M

'Идентификаторы строк

CY(I) = Cells(I + 1, 1).Value

Next I

 

End Sub

Private Sub TabA( )

For I = 1 To M

For J = 1 To N

A(I, J) = Cells(I + 1, J + 1).Value

Next J

Next I

End Sub

12

Этот модуль содержит событийную процедуру CommandButton1_Click, решающую поставленную выше задачу при нажатии кнопки на листе Excel (на рис. 2 показана только сама матрица, причем символически), и общие процедуры: TabCXCY – копирование идентификаторов столбцов и строк в массивы CX, CY; TabA – копирование матрицы из таблицы на листе Excel в двумерный массив A; M и N вводятся в поля TextBox1 и TextBox2.

Массивы CX, CY, A и основные переменные, требуемые для работы с матрицей, определены на уровне модуля, т.е. доступны всем его процедурам. Элементы массивов CX и CY имеют тип VARIANT, т.к. для них тип явно не указан. Выбор типа VARIANT для этих массивов обусловлен тем, что при последующем расширении написанного модуля в этих массивах, возможно, потребуется размещать не имена строк и столбцов, а сами значения YI и XJ. Обратим внимание на то, что все три массива в начале модуля определены без указания размерности, т.е. как динамические, а в процедуре CommandButton1_Click наши массивы переопределены – но только после ввода M и N. Приведенные процедуры еще пригодятся для пояснения циклов и как пример для самостоятельной разработки процедур на лабораторных занятиях.

Завершая рассмотрение массивов, заметим, что в математике аналогом программисткого термина одномерный массив является понятие вектор. Вектор можно и нужно толковать не только геометрически: в общем случае это набор значений, например, свойств (признаков) объекта. Если представить себе многомерную систему координат, где по каждой оси отложено значение одного из свойств объекта (скажем, длина автомобиля, расход горючего, максимальная скорость и т.д.), то каждый объект в такой системе координат будет точкой – точкой в признаковом пространстве. Совокупность значений отдельных координат (в нашем примере – длины автомобиля, расхода горючего, максимальной скорости и др.) и есть вектор. Понятие вектора очень удобно для краткой записи операций с массивами чисел. Кстати, математический термин матрица соответствует двумерному массиву. Матрицу можно рассматривать как совокупность векторов-строк или векторов-столбцов.

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

Type RecBook

Название As String*50 Автор As String*20

Издательство As String*16

Год As Integer End Type

Теперь в этом же модуле или в одной из его процедур зарезервируем массив для хранения записей о книгах:

Dim Books(500) As RecBook

Для доступа к полям Издательство и Год в i-ой записи массива воспользуемся инструкциями:

Books(i).Издательство=”Недра” : Books(i).Год=1999

В этом пособии мы намеренно пользуемся примерами, а не строгими определениями синтаксиса инструкций VBA. Как уже отмечалось, такие определения легко получить в справочной системе Visual Basic – когда программист тонет, он кричит <F1> !

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

– это константы. Приведем примеры их определения:

Const Pi As Double = 3.14159

Const Nmin As Long = 0

Const Nmax As Long = 999999

13

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

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

Лист2.Cells(2,6).Formula = “=Sum(B1:B5)” Лист2.Range("A1:D4").Value = Range("A1:D4").Value TextBox1.Text = “M=” & Str(M) & “ S=” & Format(S, “0.00”)

В первом примере свойству Formula объекта Cells(2,6) , принадлежащего, в свою очередь, объекту Лист2, присваивается конкретная формула. Этот пример, кстати, показывает, как при программировании на VBA можно пользоваться встроенными в Excel формулами. Но верно и обратное: разрабатывая функции на VBA, можно расширить набор формул, доступных в Excel. Во втором примере значения, хранимые в прямоугольной области ячеек на текущем (активном в момент выполнения инструкции) листе, присваиваются ячейкам одноименной области на листе 2. В третьем примере с помощью операции конкатанации (&) три подстроки объединяются (суммируются) в одну строку, и эта строка присваивается свойству Text объекта TextBox1. Cells (Row,Column) обозначение ячейки, где Row - номер строки, а Column - номер столбца. Например, ячейка A2 обозначается Cells(2,1). Последний пример показывает, как значения M и S вывести в поле, размещенное на форме или на листе Excel.

5. Основные инструкции языка Visual Basic

Сгруппируем основные инструкции языка Visual Basic по типу операций:

-присваивания, в том числе с выполнением математических операций в правой части инструкции;

-проверки условий, управления последовательностью исполнения инструкций, организации циклов;

-инструкции для работы с файлами.

Последняя группа инструкций в этом кратком пособии не рассматривается. При необходимости с ними можно познакомиться самостоятельно [2, 4].

Инструкция присваивания предписывает найти значение выражения, заданного в ее правой части, и присвоить результат переменной, идентификатор которой расположен в левой части. Например, присвоить переменной x значение 2 - это можно записать: x=2; в следующем примере значение переменной x увеличивается на 2: x = x + 2. Рассмотрим математические операции, которые используются в выражениях, стоящих в правой части инструкций присваивания. Среди возможных операций можно выделить арифметические, конкатанации строк, сравнения и логические.

Арифметические операции выполняются над числами, и их результатом являются числа. Они перечислены в таблице 3. При программировании формул необходимо учитывать приоритеты операций и в случае необходимости использовать скобки, как это принято в математике. Поясним таблицу 3. Смена знака имеет место, когда минус ставится перед именем переменной, константы или перед числом. Например: F=CX*(-G^2) ; если CX=3, а G=1.5 , то F = -6.75. Чтобы убедиться в правильности результата, достаточно на листе Excel разместить кнопку CommandButton1 и поле TextBox1, а в событийную процедуру CommandButton1_Click

включить инструкции:

Dim I As Integer, F As Single

F = 3 * (-1.5 ^ 2) : I = 3 * (-1.5 ^ 2)

TextBox1.Text = "F=" & Format(F, "0.00") & " I=" & Str(I)

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

14

 

 

 

 

Таблица 3.

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

Прио-

Примеры

 

Результаты

Операция

Наименование

I –

F –

 

 

ритет

Целое число

действитель-

I

F

 

 

 

 

 

 

ное число

 

 

^

Возведение в степень

1

I = 1.5^2

F = 1.5^2

2

2.25

-

Смена знака

2

I = -6.75

F = -6.75

-7

-6.75

*

Умножение

3

I = 1.3*4

F = 1.3*4

5

5.20

/

Деление

3

I = 10/3

F = 10/3

3

3.33

\

Деление нацело

4

I = 10\3

F = 10\3

3

3.00

Mod

Остаток от деления

5

I = 10 Mod 3

F = 10 Mod 3

1

1.00

+

Сложение

6

I = 12 + 7

F = 11.45+7.55

19

19.00

-

Вычитание

6

I = 7-12

F = 7.55-11.45

-5

-3.90

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

Приведенная выше процедура иллюстрирует и конкатанацию (&) – слияние строк. К строке “F=” прибавляется строка, содержащая отформатированное значение F (с двумя цифрами после десятичной точки). К этой объединенной строке добавляется “ I=” и далее - превращенное в последовательность символов (в строку) число I.

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

True или False (Таблица 4).

 

 

 

Таблица 4.

 

 

 

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

 

 

 

 

 

 

Операция

Наименование

 

Пример (R имеет тип Boolean)

Результат ®

=

Равно

 

R = (10=5)

False

>

Больше

 

R = 10>5

True

<

Меньше

 

R = 10<5

False

>=

Больше или равно

 

R = “a” >= “b”

False

<=

Меньше или равно

 

R = “a” <= “b”

True

<>

Не равно

 

R = “a” <> “b”

True

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

Таблица 5.

 

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

 

 

Операция

Наименование

And

Логическое умножение

Or

Логическое сложение

Xor

Исключающее Or (или)

Not

Логическое отрицание

 

15

Поясним назначение таких операций на простом примере. Пусть переменная типа Boolean с именем R должна принимать значение True, если точка с координатами X,Y попадает в прямоугольную область, ограниченную координатами X1,X2 и Y1,Y2. Если точка за пределами прямоугольника, то R=False. Применив логическую операцию AND (И), вычислим значение R:

R = (X>=X1) AND (X<=X2) AND (Y>=Y1) AND (Y<=Y2)

Смысл этой операции в том, что если и первое выражение (X больше или равно X1) истинно, и второе истинно, и третье истинно, и четвертое истинно, то R=True. Если один из операндов логической операции AND представляет собой ложное выражение (утверждение), то и результатом будет False.

Кроме операции AND, к числу часто используемых логических операций относятся OR и NOT. Первая из них дает результат True, если истинно хотя бы одно выражение, являющееся операндом. Операция NOT изменяет результат на противоположный, подобно смене знака в арифметическом выражении. Вычислим R с помощью этих операций:

R = NOT ((X<X1) OR (X>X2) OR (Y<Y1) OR (Y>Y2))

Выражение, стоящее в скобках после операции NOT, истинно (True), если точка или левее, или правее, или ниже, или выше воображаемого прямоугольника, т.е. если точка в него не попала. В этом случае R будет иметь значение False благодаря логическому отрицанию NOT.

Несколько реже используются логические операции XOR (исключающее ИЛИ), EQV (эквивалентность) и IMP (импликация). Первая из них дает результат True, если только одно из выражений-операндов имеет результат True. Результатом операции EQV будет True, если выражения-операнды дают одинаковый результат. Результатом IMP будет True, если выражения-операнды дают разные результаты.

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

Инструкция IF (ЕСЛИ) используется в двух нотациях: в виде простой и блочной структур. Инструкция простой структуры имеет следующую форму записи:

If <Выражение> Then <Инструкция, исполняемая, если выражение-условие истинно> Конструкция блочной структуры может включать один блок инструкций (<Блок 1>), исполняемых, если выражение 1 истинно, или же еще дополнительные условия, сопровождаемые блоками инструкций:

If <Выражение1> Then

<Блок 1 – исполняется, если выражение 1 истинно>

ElseIf <Выражение2> Then

<Блок 2 – исполняется, если выражение 2 истинно >

ElseIf <Выражение3> Then

<Блок 3 – исполняется, если выражение 3 истинно >

…………………..

Else

<Блок инструкций, исполняемых, если ложны выражения в инструкциях If и ElseIf>

End If

 

 

 

 

 

 

 

 

Приведем примеры простой инструкции If:

1) Вычисление значения функции:

 

1 y2

 

 

y 0

 

 

 

 

 

,

 

 

 

 

 

 

 

 

 

 

1 y4

 

 

 

G=

 

 

 

 

 

 

sin2

y

y 0

 

2y+

 

 

,

 

 

 

2 y

If y <= 0 Then G = (1 + y^2) / Sqr(1 + y^4) Else G = 2 * y + sin(y)^2 / (2+y)

2) Сообщение, если R – истинно: If R Then MsgBox “Точка попала в прямоугольник”

16

Теперь пример блочной структуры: R = False

If X < X1 Then

GoTo 10 ’уже ясно, что точка не попала в прямоугольник

ElseIf X > X2 Then

GoTo 10 ‘управление передается на метку 10 ElseIf Y < Y1 Then

GoTo 10 ElseIf Y > Y2 Then GoTo 10

Else

R = True

End If

10: MsgBox R ’после метки ставится двоеточие

Блоки ElseIf и (или) Else могут отсутствовать. В любом случае блочная конструкция оканчивается инструкцией End If.

Приведенный пример, кроме блочной конструкции IF, поясняет возможность использования в программе меток и передач управления с помощью инструкции GoTo. Метка не обязательно обозначается числом – можно было написать и N10 или MsgR.

В ситуациях, когда требуется запрограммировать три и более разветвлений в зависимости от значения одной переменной, удобно использовать структуру Select Case:

Select Case <Переменная>

Case <Значение 1> либо Case is <Условие 1>

<Блок 1 – выполняется, если значение переменной равно значению 1 или соответствует условию 1>

Case <Значение 2> либо Case is <Условие 2>

<Блок 2 – выполняется, если значение переменной равно значению 2 или соответствует условию 2>

………………….

End Select

Приведем пример:

Возраст = TextBox1.Value Select Case Возраст Case Is < 13

Label1.Caption = "После 22-00 спать !" Case 16

Label1.Caption = "Пора получать паспорт" Case Is < 18

Label1.Caption = "Только чай !" Case Is >= 18

Label1.Caption = "Можно почти все!" End Select

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

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

2)инструкции, исполняемые при очередном значении переменной цикла;

17

3)наращивание (изменение) переменной цикла и, возможно, других переменных, изменяемых одновременно с переменной цикла;

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

(IF <условие> GoTo <метка в начале блока 2>).

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

For счетчик = начало To конец [Step шаг] [инструкции]

[Exit For] [инструкции] Next [счетчик]

Инструкции For…Next в общем случае содержит следующие элементы:

Счетчик (переменная цикла) - числовая переменная, используемая в качестве счетчика цикла. Эта переменная не может иметь тип Boolean или быть элементом массива.

Начало - начальное значение переменной цикла. Конец - конечное значение переменной цикла.

Шаг - необязательный аргумент. Значение, на которое изменяется счетчик при каждом выполнении тела цикла. Если это значение не задано, по умолчанию шаг равен 1. Шаг может быть как положительным, так и отрицательным

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

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

Пусть в J-ом столбце на листе Excel надо суммировать четные ячейки до строки 20, но

только пока не встретится число 7777:

 

J = 1: S = 0

 

For I = 2 To 20 Step 2

 

F = Cells(I, J).Value

 

If F = 7777 Then Exit For

'Выход из цикла - на инструкцию после Next

S = S + F

 

Next I

 

MsgBox "i= " & Str(I-2) & " S=" & Str(S)

 

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

Вбольшинстве случаев циклы этого типа выглядят проще, т.к. обычно не требуется задавать шаг изменения переменной цикла (Step) и не нужно выходить из цикла по дополнительному условию (Exit For). В модуле, приведенном после рис. 2, такие циклы используются в процедурах TabCXCY и TabA. В последней процедуре – вложенный (двойной) цикл.

Втех случаях, когда нет возможности указать начальное и конечное значения переменной цикла, используют циклы типа Do-Loop. Для таких циклов возможны 4 варианта записи:

18

1)

условие True в начале цикла

2)

условие False в начале цикла

 

Do While <условие>

 

Do Until <условие>

 

<инструкции, исполняемые в цикле>

 

<инструкции, исполняемые в цикле>

 

Loop

 

Loop

 

 

 

 

3)

условие True в конце цикла

4)

условие False в конце цикла

 

Do

 

Do

 

<инструкции, исполняемые в цикле>

 

<инструкции, исполняемые в цикле>

 

Loop While <условие>

 

Loop Until <условие>

 

 

 

 

В число инструкций, исполняемых в цикле, может быть включена инструкция Exit Do, если из цикла надо выйти “досрочно”, например, при выполнении какого-нибудь дополнительного условия. Заметим, что Do While означает Выполнять покаDo Until означает Выполнять пока не … Другими словами, вместо Do Until можно написать Do While Not. В некоторых случаях эти проверки удобнее ставить в конец цикла (Loop – цикл, дословно – петля). Приведем пример цикла Do While: известно, что сумма S числового ряда 1, 1/2, 1/3, 1/4, …,1/N (где N - целое положительное число) может быть сколь угодно большой (для любого числа M можно найти такое значение N, что S>M). Для решения задачи на лист Excel поместим кнопку

(CommandButton1), поле (TextBoxM) для М, поле (TextBoxS) для S, поле (TextBoxN) для N.

Sub CommandButton1_Click()

Dim M as Integer, N as Long, S as Single

S=0: M=TextBoxM.Value: N=0

Do While S<=M

N=N+1

S=S+1/N

Loop

TextBoxS.Value=S

TextBoxN.Value=N

End Sub

Таблица 7.

Часто используемые встроенные функции Visual Basic

Категория функций

Примеры функций

Математические

ABS( )

- абсолютное значение числа

 

RND( )

- случайное число

 

INT( )

- целая часть числа

 

SQR( )

- квадратный корень

 

Тригонометрические функции, логарифмы и др.

 

Для тригонометрических функций обязательный аргумент число

 

представляет значение типа Double или любое допустимое

 

числовое выражение, задающего угол в радианах, для

 

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

 

на pi/180. COS( ) - косинус числа, SIN( ) - синус числа, TAN( ) -

 

тангенс числа, ATN( ) - арктангенс числа.

 

LOG( ) - натуральный логарифм, для вычисления логарифма

 

числа x по основанию n следует разделить натуральный

 

логарифм числа x на натуральный логарифм числа n:

 

Logn(x) = Log(x) / Log(n).

 

EXP( ) - экспонента

19

Категория функций

Примеры функций

Строковые

LCASE( ) – преобразование строки в строчные буквы

 

UCASE( ) – преобразование строки в заглавные буквы

 

LEN( )

- определение длины строки и др.

 

INSTR( ) – позиция первой встречи одной строки внутри другой

 

 

 

Даты и времени

DATE( )

- текущая дата

 

TIME( )

- текущее время

 

NOW( )

- текущая дата и время

 

DAY( )

- номер дня года и др.

Преобразования

CINT( )

- действительного числа в целое (с округлением)

типов данных

CSTR( )

- числа в строку символов

 

CVAR( )

- преобразование в тип данных VARIANT

 

FORMAT( )- форматирование данных, формирование строк

 

VAL( )

- преобразование строки символов в число и др.

6. Создание пользовательских форм

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

Свойства формы

Name

Имя

Caption

Заголовок

BackColor

Цвет фона

BorderStyle

Тип границы

Picture

Рисунок, отображаемый как фон формы

Left и Top

Местоположение верхнего левого угла формы

Height и Width

Высота и ширина формы

StartUpPosition

Положение формы при ее первом отображении. Допустимые значения:

 

Manual - начальное значение не устанавливается, CenterOwner -

 

выравнивание по центру объекта, к которому принадлежит форма,

 

CenterScreen - выравнивание по центру экрана, Windows Default -

 

положение верхнего левого угла экрана.

Методы формы

 

 

 

 

 

 

 

Show

 

Показать форму

Hide

 

Скрыть форму

 

Move

 

Изменить положение и размер формы

 

PrintForm

 

Печатать изображение формы

 

События формы

 

 

 

 

 

 

Initilize

 

Действия выполняемые при отображение формы на экране (например,

 

 

задание значений по умолчанию для элементов управления размещенных

 

 

на форме)

Terminate

 

Действия выполняемые при закрытии формы

20