16339

Функции в VBA

Лекция

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

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

Русский

2013-06-20

131.5 KB

89 чел.

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


 

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

82417. Психоанализ З. Фрейда. Фрейдизм, неофрейдизм 28.64 KB
  Классическая психология до Фрейда изучала явления сознания как они проявлялись у здорового человека. Фрейд как психопатолог исследуя характер и причины неврозов натолкнулся на ту область человеческой психики которая раньше никак не изучалась но которая имела большое значение для жизнедеятельности человека бессознательное. Особое значение Фрейд придает психосексуальному развитию человека влиянию его инстинктивной сексуальнобиологической энергии либидо на жизнь его чувств и поведение. В дальнейшем поведение ребенка а затем юноши и...
82418. Феноменология Э. Гуссерля: идейно-теоретические истоки, основные идеи, понятия, этапы развития 38.34 KB
  Феноменология Гуссерля – широкое в потенции бесконечное поле методологических а также гносеологических онтологических этических эстетических социальнофилософских исследований любой темы философии через возврат к феноменам сознания и их анализу. Результатом исполнения феноменологической редукции является перемещение на исследовательскую почву чистого сознания; 4 чистое сознание есть смоделированное феноменологией сложное единство структурных элементов и сущностных взаимосвязей сознания. Оригинальность и теоретическая значимость...
82419. Особенности восприятия феноменологии Э. Гуссерля в современной зарубежной философии 34.99 KB
  Гуссерля в современной зарубежной философии Возникновение феноменологии как философского течения связано с творчеством Эдмунда Гуссерля 1859 1938. Однако постепенно происходит изменение его научных интересов в пользуфилософии. Гуссерль изложил в следующих работах: Логические исследования 1901 Философия как строгая наука 1911 Идеи чистой феноменологии и феноменологической философии 1913 Трансцендентальная логика и формальная логика 1921 Картезианские размышления 1931. Особенность философии Э.
82420. Немецкая философия экзистенциализма 29.08 KB
  Основная работа Бытие и время 1927 подчинена трем задачам: 1 выявить фундаментальную структуру здесьбытия как бытиявмире; 2 показать что бытиевмире является временным и историчным; 3 на основе временности здесьбытия осознать необходимую принадлежность времени к смыслу бытия. здесьбытие выступает основой его экзистенциальной онтологии. ставит вопрос о том что есть бытие само по себе и решает его через рассмотрение человеческого бытия поскольку только оно наделено возможностью понимания бытия. Человеческое бытие...
82421. Французская экзистенциальная философия 37.43 KB
  Экзистенциализм — возможно, наиболее популярное (наряду с психоанализом) философское течение нашего времени. Его название происходит от немецкого «existieren» и французского «exister» — существовать, и обращено не к выяснению сущности человека, а к его повседневному бытию
82422. Персонализм 35 KB
  Французский персонализм одно из ведущих философских течений современности; вместе с феноменологией экзистенциализмом и неотомизмом он составил целую эпоху в интеллектуальной жизни Франции первой половины XX в. Датой рождения французского персонализма считается октябрь 1932 г. Основоположник и главный теоретик французского персонализма Эммануэль Мунье 19051950 профессиональный философ католик по вероисповеданию; ему удалось сплотить вокруг Esprit творческую молодежь философов социологов публицистов литераторов литературных и...
82423. Философская герменевтика. Трудности перехода от понимания как способа познания к пониманию как способу существования 30.84 KB
  Хотя история герменевтики может быть прослежена через Средневековье до античности понятие герменевтики в его современном значении восходит к Новому времени. Революционный шаг в становлении герменевтики как самостоятельной дисциплины сделан Шлейермахером принципиально расширившим сферу подлежащих истолкованию текстов: для Шлейермахера – это учение об искусстве понимания письменных документов вообще. Задачу герменевтики составляет прояснение условий делающих возможным уразумение смысла того или иного текста. Важным этапом становления...
82424. Аналитическая философия XX века: основные направления и проблемы 28.31 KB
  Одна из отличительных черт интеллектуальной культуры XX столетия развитие и нарастающее влияние аналитической философии. Главные цели философии анализа выявление структуры мысли прояснение всего смутного невнятного достижение прозрачного соотнесения языка и реальности четкое разграничение значимых и пустых выражений осмысленных и бессмысленных фраз. Внутри аналитической философии выделяют два направления: философию логического анализа и философию лингвистического анализа или лингвистическую философию. Исходные проблемы и понятия...
82425. Структурализм и постструктурализм 31.84 KB
  В античности понятие структуры было синонимом понятия форма. В трудах Структурная антропология 1958 и Структурная антропология два 1973 рекомендует при исследовании культуры обращать внимание не на субъекты но на такие культурные структуры жизни как мифы ритуалы маски правила бракосочетания родственные связи языки как на знаковые структуры и изучать их не диахронно а синхронно увязывая факты в целое....