16339

Функции в VBA

Лекция

Информатика, кибернетика и программирование

Функции в VBA В VBA используются следующие виды функций: математические встроенные функции; математические функции не представленные в VBA; функции форматирования данных; функции преобразования типов Математические встроенные функции ...

Русский

2013-06-20

131.5 KB

91 чел.

Функции в VBA

В VBA используются следующие виды функций:

- математические встроенные функции;

- математические функции, не представленные в VBA;

- функции форматирования данных;

- функции преобразования типов

Математические встроенные функции

Функция

Возвращаемое значение

Abs (x)

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

Atn (x)

arctg (x) – арктангенс от значения параметра, заданного в радианах

Sin (x)

sin (x) – возвращает синус угла от значения параметра, заданного в радианах

Cos (x)

cos (x) – косинус указанного в радианах угла

Tan (x)

tg (x) – возвращает тангенс угла от значения параметра, заданного в радианах

Exp (x)

ex – возвращает число e, возведенное в указанную степень, где е – основание натурального логарифма

Log (x)

ln (x) – возвращает натуральный логарифм от значения числового выражения

Sqr (x)

- возвращает квадратный корень числового выражения

Rnd (x)

Случайное число из интервала [0,1). Перед вызовом функции надо использовать оператор Randomize (рандомизации) – запуск генератора псевдослучайных чисел)

Sgn (x)

Возвращает +1, если значение параметра положительно,

-1, если отрицательное,

0, если 0

Fix (x)

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

Int (x)

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

Математические функции, не представленные в VBA

Функция

Возвращаемое значение

Log(X)/Log(10)

lg(х) – возвращает десятичный логарифм от значения числового выражения

Atn

arcsin (x) – возвращает арксинус угла от значения параметра, заданного в радианах

Atn

arccos (x) – возвращает арккосинус угла от значения параметра, заданного в радианах  

Cos (x)/Sin (x)

ctg (x) - возвращает котангенс угла от значения параметра, заданного в радианах

Значение числа π

Pi = 4 * Atn (1)


Функция форматирования данных

Для того чтобы представить выражение отформатированным в специфицированном формате, необходимо воспользоваться функцией Format. Она возвращает значение типа Variant (String), содержащее выражение, отформатированное согласно указанным спецификациям.

Синтаксис:

Format (выражение [ , «Имя формата (или символ формата)»])

Именованные числовые форматы

Имя формата

Описание

General Number

Число без разделителя тысяч

Currency

Отображает две цифры справа от десятичной точки

Fixed

Отображает одну цифру слева и две справа от десятичной точки

Standard

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

Percent

Отображает число в виде процентов и выводит две цифры справа от десятичной точки

Scientific

Использует формат с плавающей десятичной точкой

Yes/No

Отображает No, если число равно 0, и Yes – в противном случае

True/False

Отображает False, если число равно 0, и True – в противном случае

On/Off

Отображает Off, если число равно 0, и On – в противном случае

Пользовательские числовые форматы

Символ

Описание

0

Резервирует позицию цифрового разряда. Отображает цифру или нуль. Если у числа, представленного параметром, есть какая-нибудь цифра в той позиции разряда, в которой в строке формата находится 0, функция отображает эту цифру параметра, если нет – в этой позиции отображается нуль.

Пример. Debug.Print Format (1.2 ^2, “##.000”)

#

Резервирует позицию цифрового разряда. Отображает цифру или ничего. Если у числа, представленного параметром, есть какая-нибудь цифра в той позиции разряда, в которой в строке формата находится #, функция отображает эту цифру параметра, если нет – в этой позиции ничего не отображается. Пример. Debug.Print Format (1.2 ^2, “##.###”)

. (точка)

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

E+,E-, e+, e-

Разделитель мантиссы и порядка в экспоненциальном формате.

Пример. Debug.Print Format (sin(x) * exp(5), “#.###e+##”)

%

Резервирует процентное отображение числа

Пример. Debug.Print Format (0.5, «#.%») (отобразится 50 %)

d,m,y 

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

Пример. Debug.Print Format (Now, “dd/mm/yyyy”) (отобразится текущая дата, например 25.09.2005

/

Разделитель дня, месяца, года в категории форматов Data


Функции преобразования типов

Функция

Описание

Val (String)

Возвращает число, содержащееся в строке string, как числовое значение (Val от англ. Value – значение, String – строка)

Str (number)

Возвращает значение типа Variant (String), являющееся строковым представлением числа number.

В качестве допустимого десятичного разделителя функция Str воспринимает только точку.

CStr (Выражение)

Возвращает числовое выражение или строку в строку

CInt (Выражение)

Возвращает числовое выражение или строку в число типа Integer

CSng (Выражение)

Возвращает числовое значение или строку в число типа Single

Операторы, выражения и операции

Строка с кодом в исходном тексте программы VBA называется программным оператором.

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

Label1.Caption = Time

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

Программный оператор может включать выражения.

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

Синтаксическая конструкция выражения:

Операнд1 [операция Операнд2 [операция Выражение]]

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

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

Каждая операция имеет свой приоритет (ранг). Операции ранга 1 имеют наивысший приоритет и в программном операторе выполняется первым. Операции одного ранга в выражениях выполняются в соответствии с правилами ассоциативности (слева направо или наоборот).

Приоритеты операций

Приоритет

Операция

1

Выражение, заключенное в скобки ()

2

Вызов функции

3

Степень (^)

4

- (смена знака)

5

(*) и (/)

6

(\) деление нацело

7

Mod (остаток от деления нацело)

8

(+) и (-)

9

>, <, >=, <=, <>, =

10

Not

11

And

12

Or

Операнды связаны между собой знаками операций

В программах на VBA можно использовать стандартный набор операций над данными. Различают следующие типы операций:

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

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

- отношения, применяются не только к числам, и их результатом являются логические значения;

- логические операции;

- строковые операции.

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

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

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

Синтаксис:

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

где

Имя_Переменной – имя переменной (идентификатор);

         Символ «=» – знак операции присваивания;

          выражение – значение (число), комбинация переменных, констант,  

                                 функций, связанных знаками операций.

Работа операции присваивания.

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

Пример 1.

x = 2

x = x + 2

(переменной х будет присвоено 4)

Для присваивания переменной ссылки на объект применяется инструкция Set.

В общем случае инструкция Set имеет следующий синтаксис:

Set objectvar = [New] objectexpression [Nothing]

где

New – ключевое слово, которое используется при создании нового экземпляра объекта;

Nothing – позволяет освободить все системные ресурсы и ресурсы памяти, выделенные для объекта, на который имелась ссылка (т.е. она удаляет объект из памяти).

Пример 2.

Dim A as Object

Set A = cmdOK

MsgBox А.Caption

Инструкция Set присваивает переменной А элемент управления Кнопка с именем cmdOK и далее выводит в окне надпись отображаемую на поверхности кнопки.

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

Математические операции применяются для записи формул.

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

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

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

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

Операция

Математическое действие

[Операнд1] + [Операнд 2]

Сложение

[Операнд 1] – [Операнд 2]

Вычитание

-[ Операнд 1]

Изменение знака числа

[Операнд 1] * [Операнд 2]

Умножение

[Операнд 1] / [Операнд 2]

Деление

[Операнд 1] \ [Операнд 2] 

Целочисленное деление

[Операнд 1] mod [Операнд 2]

Остаток от деления по модулю

[Операнд 1] ^ [Операнд 2]

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

Rezult = 10\3 – результат 3 (целая часть от деления);

Rezult = 10 mod 3 – результат 1 (остаток от деления);

Rezult = 9 ^ 0.5 – результат 34

Rezult = 2 ^ -2 – результат 0.25

Общие правила применения математических операций:

Синтаксис:

Rezult  = Операнд1  Операция  Операнд2 … Операция  ОперандN  

где

Rezult – переменная, содержащая результат выполнения оператора;

Операнд1, Операнд2, …, ОперандN – переменные, константы, числовые значения, функции.

Операции отношения

В отличие от математических операций, результатом выполнения которых может быть любое значение, операция отношения может иметь только два результирующих значения – True (Истина) и False (Ложь), которые могут быть присвоены переменным типа Boolean или определенному свойству объекта.

Операции отношений в VBA

Операция

Описание

выражение1 > выражение2 

Больше. Результат -  True, если первый операнд больше второго

выражение1 >=  выражение2

Больше или равно. Результат -  True, если первый операнд больше или равен второму

выражение1 < выражение2

Меньше. Результат -  True, если первый операнд меньше второго

выражение1 <= выражение2

Меньше или равно. Результат -  True, если первый операнд меньше или равен второму

выражение1 <> выражение2

Не равно. Результат -  True, если первый операнд не равен второму

выражение1 = выражение2

Равно. Результат -  True, если первый операнд равен второму

Операции отношения применяются для записи выражений условия, результатом выполнения которых являются значения True (Истина) или False (Ложь).

Операции отношения

Выражение условия

Результат

25 <> 30

True (25 не равно 30)

25 < 30

True (25 меньше 30)

25 > 30

False (25 не больше 30)

TextBox1.Text = «Петров»

True, если слово Петров является содержимым первого текстового поля, а в противном случае - False

Number >= 100

True, если переменная Number содержит значение не меньше 100, в противном случае False

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

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

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

Операция

Описание

(Операнд1) AND (Операнд 2)

Логическое умножение. Возвращает True тогда, когда только оба операнда возвращают True

(Операнд 1) OR (Операнд 2)

Логическое сложение. Возвращает True тогда, когда хотя бы один операнд возвращает True

Not [Операнд]

Если условие имеет значение True, то результирующим значением будет False. Если условие имеет значение False, то результирующее значение будет True

[Операнд1] Xor [Операнд2]

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

Строковые операции

В VBA есть только одна операция для работы со строками – это операция конкатенации. Конкатенация позволяет объединить значения двух или нескольких строковых переменных или строковых констант. Знаком операции конкатенации является символ амперсанд (&). При конкатенации строк значение второй строки добавляется в конец первой. Результатом операции является более длинная строка, составленная из исходных строк.

Синтаксис:

strВыражение_1 & strВыражение_2 [… & strВыражение_N]

где

strВыражение – строковые выражения, которые могут быть любыми допустимыми строками (строковыми переменными, строковыми константами или функциями обработки строк).

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

Пример 1.

strMy = “Visual” & “Basic for Applications”

Примечание. Здесь объединяются две неименованные строковые константы. Результатом операции конкатенации будет значение Visual Basic for Applications).


 

А также другие работы, которые могут Вас заинтересовать

23122. Закони руху системи матеріальних точок та твердого тіла. Тензор інерції 159.5 KB
  Закони руху системи матеріальних точок та твердого тіла.Введемо вектор повної кількості руху систем частинок: Знайдемо його зміну з часом: Для першої суми: ТобтоТаким чином якщо сума всіх зовнішніх сил рівна нулю то має місце закон збереження імпульсу. Ведемо повний момент кількості руху:Знайдемо швидкість його зміни в часі: Другий доданок – повний момент зовнішніх сил .Розглянемо перший доданок врахувавши : За умов виконання має місце закон збереження моменту кількості руху.
23123. Хвилі у пружньому середовищі. Хвильове рівняння. Звукові хвилі 59.5 KB
  Хвилі у пружньому середовищі. Звукові хвилі. Розрізняють хвилі повздовжні і поперечні в залежності від того чи рухаються частинки біля своїх положень рівноваги вздовж чи поперек напрямку розповсюдження хвилі. Розглянемо хвилі типу Позн.
23124. Рух ідеальної рідини. Рівняння Бернуллі 55.5 KB
  Нагадаємо що поле швидкостей характеризує не швидкiсть окремих частинок середовища а швидкiсть у данiй точцi в даний момент часу будьякої частинки рiдини або газу що знаходиться в цiй точцi в цей момент часу. Надалi будемо розглядати такi рiдини або гази для яких тензор пружних напругє iзотропним: pij = −pδij 14.10 для в’язкої рiдини газу набуде вигляду: Це є рiвняння Нав’єСтокса де η – коефiцiєнт зсувної в’язкостi – коефiцiєнт об’ємної в’язкостi. Для повного опису руху рiдини необхiдно додати ще рiвняння неперервностi та...
23125. Число Рейнольдса. Рух в’язкої рідини 44 KB
  В’язкою рідиною називають середовище в якому нарівні з нормальними напругами відмінні від нуля і дотичні напруги, що виникають внаслідок сил тертя. Коли швидкості не дуже великі, в’язка частина тензора напруг матиме такий вигляд...
23126. Основні закони термодинаміки. Формулювання другого закону термодинаміки через ентропію. Статистичне означення ентропії 88.5 KB
  Функція що зв’язує тиск об’єм і температуру фізично однорідної системи яка перебуває в термодинамічній рівновазі називається рівнянням стану. Другий закон ТД для нерівноважних процесів: Для адіабатичного процесу ентропія системи зростає. При маємо: тобто Третій закон ТД: по мірі наближення Т до 0 К ентропія будь якої рівноважної системи перестає залежати від будьяких ТД параметрів системи.
23127. Основні закони термодинаміки. Статистичне визначення ентропії 181.5 KB
  0Начало термодинаміки . 0Начало вводить скалярну величину T для характеристики рівноважн. 1Начало термодинаміки . 1Начало вимірюється в енергетичн.
23128. Розподіл Максвела і Больцмана та їх експериментальна перевірка 82.5 KB
  Розподіл Максвела і Больцмана та їх експериментальна перевірка. Розглянемо розподіл молекул по швидкостям. Розподіл Максвела – це розподіл по швидкостях не залежить від напряму швидкості то ж перейдемо до сферичної системи координат . Остаточно маємо: розподіл Максвела.
23129. Міжмолекулярна взаємодія та її прояви 92 KB
  Для газу Потенціал прямокутної ями. При стискуванні газу його густина збільшується і середня відстань між молекулами зменшується. Міжмолекулярна взаємодія неідеальність газу яскраво проявляється в процесі ДжоуляТомпсона в якому відбувається зміна температури при продавлюванні газу скрізь пористу перетинку. Для ідеального газу .
23130. Явища переносу в газах, рідинах і твердих тілах 77 KB
  Явища переносу в газах рідинах і твердих тілах. Явища переносу я. Всі явища переносу являються необоротними. 1 Процеси переносу в газах Загальне рівняння переносу G – характеризує деяку молекулярну властивість віднесену до однієї молукули.