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


Логические выражения состоят из операндов и операций отношения и логических операций.



Результатом вычисления логического выражения может быть одно из двух логических значений: True (истина ) или False (ложь).

 

Г) Текстовые операции

Сложение строк. Для сложения строк допустимо использование операции +, но предпочтительнее, во избежание путаницы, применять операцию со знаком &

 

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

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

Ø Операции в скобках

Ø Вычисление функций

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

Ø Смена знака

Ø *, /, \, mod

Ø +, -

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

Ø Not

Ø And

Ø Or

 

\

Встроенные функции VBA

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

  • Математические функции
  • Функции проверки типов
  • Функции преобразования форматов
  • Функции обработки строк
  • Функции времени и даты

Ниже рассмотрены основные функции из этих категорий.

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

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

         
  Функция Возвращаемое значение    
  Abs (число) Atn (число) Cos (число) Модуль (абсолютная величина) числа Арктангенс Косинус    
         
       
  Ехр (число) Экспонента, т. е. результат возведения основания натурального логарифма в указанную степень  
  Log (число) Натуральный логарифм  
  Rnd Rnd (число) Возвращает случайное число из интервала [0, 1]   Если число меньше нуля, то Rnd возвращает каждый раз одно и то же число, используя аргумент в качестве опорного числа; если число больше нуля или аргумент опущен, то — следующее случайное число в последовательности; если число равняется нулю, то — случайное число, возвращенное при предыдущем вызове этой функции. Public Sub Процедура_RND() x = Rnd(-2) MsgBox " x=" & x End Sub Перед вызовом функции Rnd используйте инструкцию Randomize без аргумента Public Sub Процедура_RND() Randomize x = Rnd(-2) MsgBox " x=" & x End Sub  
  Sgn (число) Знак числа Public Sub Процедура_RND() Randomize x = Rnd(-2) MsgBox " x=" & x z = -5 y = Sgn(z) MsgBox " y=" & y End Sub  
  Sin (число) Синус  
  Sqr (число) Квадратный корень из числа  
  Tan (число) Тангенс  
  Fix (число) и Int (число) Обе функции, int и Fix, отбрасывают дробную часть числа и возвращают целое значение. Различие между функциями int и Fix состоит в том, что для отрицательного значения аргумента число функция int возвращает ближайшее отрицательное целое число, меньшее либо равное указанному, a Fix — ближайшее отрицательное целое число, большее либо равное указанному Например: Int(2.3)=2 fix(2.3)=2 Int(2.8)=2 fix(2.8)=2 Int(-2.3)=-3 fix(-2.3)=-2 Int(-2.3)=-3 fix(2.3)=-2    
  Round(E[, N]) Округляет число, округленное до определенного количества (N) десятичных знаков Public Sub as1() Dim d As Double d = 2.567 MsgBox Round(d, 1) 'выведет 2.6 End Sub  
       
             

 

 

Примеры создания последовательности случайных чисел

1.

Public Sub случайное_число()

Randomize

For i = 1 To 3

s = Rnd

MsgBox " Случайное число=" & s

Next i

End Sub

 

Public Sub qqq()

Dim mv, ms As String

Randomize

ms = " "

For i = 0 To 9

mv = Int((6 * Rnd) + 1)

ms = ms & " " & mv

Next

MsgBox ms

End Sub

Преобразование строки в число и обратно осуществляют следующими функциями.

       
  Val (строка) Возвращает числа, содержащиеся в строке, как числовое значение соответствующего типа  
  Str (число) Возвращает значение типа variant (String), являющееся строковым представлением числа  
       

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

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

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

Функция Тип, в который преобразуется выражение
CBool (Выражение) Boolean
CByte (Выражение) Byte
CCur (Выражение) Currency
CDate (Выражение) Date
СDbl (Выражение) Double
CDec (Выражение) Decimel
CInt (Выражение) Integer
CLng (Выражение) Long
CSng (Выражение) Single
CVar (Выражение) Variant
CStr (Выражение) String Public Sub Процедура_RND() Randomize x = Rnd(-2) MsgBox " x=" & x z = -5 y = Sgn(z) MsgBox " y=" & y c = Val(x) MsgBox " c=" & c b = Str(x) MsgBox " b=" & b v = CStr(x) MsgBox " v=" & v End Sub
   

Функции обработки строк

В VBA имеются следующие функции обработки строковых выражений.

       
  Функция Возвращаемое выражение  
  Asc (строка) Возвращает код символа, соответствующий первой букве строки Public Sub zx() Dim ms As String d = Asc(" Привет" ) MsgBox " d=" & d End Sub d=207  
  Chr (число) Возвращает строку из одного символа, соответствующего коду числа, т.е возвращает символ, которому соответствует число d = Chr(207) MsgBox " d=" & d d= П  
  Mid(S, N1[, N2]) Возвращает строку, содержащую N2 (если указано, если не указано - то до конца строки) символов, начиная с позиции N1. Первое_слово=mid(“Mid Function Examle”, 1, 3) ‘Первое_слово=“Mid”  
  Len(S) Возвращает число символов строки S(включая начальные и конечные пробелы).  
  Left(S, N) Возвращает подстроку, состоящую из заданного N числа символов, начиная с левого края строки S. S=”Мама мыла раму” S1=Left(S, 4) ‘S1=Мама  
  Right(S, N) Возвращает подстроку, состоящую из заданного N числа символов, начиная с правого края строки S. S=”Мама мыла раму” S1= Right (S, 4) ‘S1= раму  
  InStr([N, ]S1, S2) Возвращает позицию положения строки S2 в строке S1. При наличии N поиск начинается с позиции N. s1=”Abcdef” i= InStr(s1, ”cd”) ‘i=3 s1=”Abcdcdef” i= InStr(4, s1, ”cd”) ‘i=5 s1=”Abcdef” i= InStr(s1, ”k”) ‘i=0 Если S2 в S1 не обнаружено, то результат = нулю  
       

 

 

Оформление программного кода

 

Комментарии

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

 

Размещение оператора на нескольких строках

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

При этом надо помнить, что:

  • Нельзя разбивать переносом строковые константы
  • Допустимо не более семи продолжений одной и той же строки
  • Сама строка не может состоять более, чем из 1024 символов

 

 

Размещение нескольких операторов на одной строке

Если операторы имеют небольшую длину, то их можно разместить на одной строке, разделив их символом двоеточие

X=2: d=7


 

Операторы VBA

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

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

 

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

Синтаксис оператора присваивания:

< идентификатор> =< выражение>

Например

X=2

Y=”Привет”

Стоимость=x*kol

TextBox1.Visible=True;

CommandButton1.Caption=”Вычислить”

Работа: вычисляется значение < выражения> присваивается полученное значение < идентификатору>

 
 

Пример.

Вычислить значение функции f(x, y)=|x|+sin2(y+5).

Public Sub prog1()   Dim x As Double, y As Double Dim f As Double x=CDbl(InputBox(" Введите х" )) y=CDbl(InputBox(" Введите y" ))     f = Abs(x) + Sin(y + 5) ^ 2     MsgBox " Результат = " & f     End Sub Заголовок процедуры prog1 (начало программы) Описание переменных: переменные x, y, f вещественного типа (Double) Ввод значений х и у. Функция InputBox выводит на экран окно с полем ввода и сообщением «Введите х» и возвращает значение типа строка (String). Для преобразования вводимого значения к вещественному типу – Double- используется функция CDbl. Вычисление значения переменной f: функция Abs(аргумент) возвращает модуль аргумента, Sin(аргумент) – синус аргумента, ^ - степень числа. Процедура MsgBox выводит на экран окно сообщений с текстом «Результат = 12» (если f=12). Конец программы.


Организация ввода-вывода данных

Ввод и вывод данных в VBA может выполняться несколькими способами: с листа Excel, с помощью диалоговых окон, с помощью пользовательской формы.

Для ввода данных с листа или вывода на лист используется объект Worksheets и его методы Range или Cells.

Метод Range использует в качестве аргументов одну или две ссылки на ячейки, и возвращают объект Range. Ссылки на ячейки должны быть оформлены в стиле А1 (колонка-буква, строка-число). Ссылка на единичную ячейку, использованная в качестве аргумента, возвращает объект Range для единичной ячейки. Две ссылки на единичные ячейки возвращают объект Range для прямоугольной области, заключенной между этими двумя ячейками:

X = Worksheets(“Лист1”).Range(“B1”).Value Присваиваем переменной Х значение ячейки B1 листа Лист1.
Worksheets(“Лист1”).Range(“B1”).Value = Х Выводим в ячейку B1 листа Лист1 значение переменной Х
Worksheets(“Лист1”).Range(“C1, D6”).Value = 2 Выводим в ячейки C1 и D6 листа Лист1 число 2
Worksheets(“Лист1”).Range(“В7: С9”).Value = 3 Выводим в диапазон ячеек “В7: С9” листа Лист1 число 3

 

Public Sub Ввод_Вывод()

x = Worksheets(" Лист1" ).Range(" F1" ).Value

Worksheets(1).Range(" F2" ).Value = x

 

x = Worksheets(" Лист1" ).Range(" g1" )

Worksheets(1).Range(" g2" ) = x

 

Worksheets(" Лист1" ).Range(" A1: B2" ).Value = 1

 

Worksheets(1).Range(" c1, d6" ) = 5

 

End Sub

 

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

A=Worksheets(1).Cells(1, 2).Value Переменной А присвоено значение из ячейки первой строки и второго столбца первого листа.
Worksheets(1).Cells(2, 2).Value= Х В ячейку второй строки и второго столбца заносится значение переменной Х

 

Ячейка А2 как объект описывается Range (" A2" ) или cells (1, 2).

 

 

В проектах VBA часто встречаются две разновидности диалоговых окон: окна сообщений и окна ввода. Они встроены в VBA, и если их возможностей достаточно, то можно обойтись без проектирования диалоговых окон. Окно сообщений (MsgBox) выводит простейшие сообщения для пользователя, а окно ввода (InpuBox) обеспечивает ввод информации.

 

Окно ввода


Поделиться:



Популярное:

  1. I. Межличностные отношения, общение
  2. I. Оценка инженерно-геологических и гидрогеологических условий площадки застройки.
  3. I. Стиль отношения учителя к учащимся
  4. I. Терминологические комментарии научного редактора
  5. III Изучение отношения потребителей к определенной марке товара
  6. III. Основные идеологические течения в истории гражданского права. Идеализм и позитивизм
  7. P.S., указывающий на несостоятельность выводов расследования, проведенного ГПМ.
  8. VII. Дайте русские эквиваленты следующим английским словм и выражениям.
  9. VII. ЭКСПЕРИМЕНТАЛЬНО-ПСИХОЛОГИЧЕСКИЕ МЕТОДЫ ИССЛЕДОВАНИЯ МЫШЛЕНИЯ И РЕЧИ
  10. XVI. Международные отношения. Проблемы глобализации и секуляризма.
  11. А 6. Назовите хронологические рамки контрнаступления советских войск под Сталинградом, которое явилось переломным моментом в ходе Великой Отечественной войны в пользу СССР.
  12. А. Отношения человека с животными


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


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