16339

Функции в VBA

Лекция

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

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

Русский

2013-06-20

131.5 KB

90 чел.

Функции в 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).


 

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

77362. DATAFLOW-BASED DISTRIBUTED COMPUTING SYSTEM 39.5 KB
  The method is bsed on the following concepts: storge tsk nd rule. Storge stores nmed dt on which three opertions could be pplied – crete write red nd delete. Every item in the storge is selfsufficient nd contins dt some metinformtion nd hs unique nme. The term tsk identifies the progrm which could red dt with specific nmes from the storge nd generte new dt items which will be written into the storge s result of tsk execution.
77363. ПОИСК НОВЫХ ПОДХОДОВ К ВИЗУАЛИЗАЦИИ ПРОЦЕССОВ 33 KB
  Важная проблема разработки систем компьютерной визуализации связана с выбором методов представления данных возникающих в связи с описанием сложных процессов. Такие подходы появляются в различных областях компьютерной визуализации см. Нужен дополнительный поиск более простых метафор визуализации позволяющих более эффективно анализировать абстрактные данные.
77364. Применение алгоритмов распознавания образов с целью захвата жестовых языков без применения маркирующих устройств 23.5 KB
  В этой работе рассматривается возможность построения системы на базе принципов захвата движения для распознавания жестовых языков обладающих большим количеством знаков. В этой связи важным является изучение современных алгоритмов распознавания образов. Проведен анализ ряда алгоритмов преобразования изображений применяемых в области распознавания образов а также их комбинации для эффективности решения поставленной задачи.
77365. VISUAL SUPPORTING OF PROGRAM PARALLELIZING 26 KB
  We have developed the simple prototype of the system to support visually the parallelizing process. The prototype is realized twofold. One of the realizations has to deal with parallelism of Massage Passing paradigm; another has to deal with Shared Memory parallelization. That is our system works with MPI and OpenMP programs.
77366. ПРОЕКТ СРЕДЫ РАЗРАБОТКИ СПЕЦИАЛИЗИРОВАННЫХ СИСТЕМ ВИЗУАЛИЗАЦИИ 39.5 KB
  Средства визуализации результатов численного моделирования можно разделить на три класса: Универсальные системы визуализации способные отображать большое многообразие визуальных объектов. Специализированные системы визуализации предметной области вычислительного эксперимента или специфических визуальных сущностей. Специализированные системы визуализации созданные специально для данного исследовательского проекта или даже конкретного пользователя.
77367. РАЗРАБОТКА СРЕДСТВ ВИЗУАЛЬНОГО ПРЕДСТАВЛЕНИЯ СЕТОК 26 KB
  В настоящее время для визуализации сеток на этапе генерации используются средства разработанного в коллективе конструктора специализированных систем визуализации. Для визуализации сеток больших объемов проводится экспериментальная разработка по реализации параллельного программного воксельного рендеринга с применением графических ускорителей. Продолжаются исследования и опытные разработки по применению виртуальной реальности для визуализации сеточных данных. Система интерактивной визуализации параллельных вычислений 14я Международная...
77368. Remote Visualization in Computer Aided Engineering 14 KB
  IMM UrB RS Urls Stte University Computer ided Engineering softwre gin now the incresing distribution. To chieve dditionl productivity engineering clcultions re mde on the specil computing resources which re seprte from the engineer’s worksttion. It ssumes tht imges re rendered remotely from enduser worksttion close to the plce of ctul engineering computtions.
77369. РАЗРАБОТКА КОМПИЛЯТОРА ДЛЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ RIDE.L 24 KB
  Согласно которой используя статическую типизацию и перегрузку операторов для описания семантики синтаксических конструкций языка на самом языке можно получать эффективный машинный код. Оператор в качестве аргументов получает несколько выражений и одну строковую константу содержащую ассемблерный код в тернарной форме. В общем случае аппликация операторов происходит так: код реализация оператора подставляется по месту обращения; код определяется следующим образом: если выражение это оператор код фрагментов при проходе слева...
77370. Методика распределенных вычислений RiDE 391 KB
  RiDE это методика для программирования в параллельных распределенных средах основанная на модели потока данных dtflow. Иногда при создании подобных решений используется модель потоков данных Dtflow. В различных вариантах методики основанные на моделях потоков данных применяются для создания процессорных архитектур суперкомпьютеров в целом для программной организации вычислительных потоков в рамках одного процесса и взаимодействия процессов в распределенной вычислительной среде. Методика основана на анализе...