Файл: Е. А. Рябухина, О. А. Гущина, Д. А. Губанов, Д. В. Емельянов.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 01.12.2023

Просмотров: 594

Скачиваний: 5

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

  1. вычисляются арифметические выражения, входящие в состав логических отношений;

  2. вычисляются значения логических выражений;

  3. выполняется операция not;

  4. выполняется операция and;

  5. выполняется операция or;

  6. выполняется операция xor;

  7. выполняется операция eqv.
12. Простейший ввод-выводВвод данных в VBA можно осуществлять разными способами:

  1. записать исходные данные в виде констант в начале программы;

  2. присвоить переменным значения в начале программы с помощью оператора присваивания;

  3. с помощью функции InputBox;

  4. непосредственным вводом данных в ячейки рабочего листа Microsoft Excel с последующим считыванием.
Два первых способа обычно используются в том случае, если количество исходных данных не слишком велико.Рассмотрим подробнее два последних способа.Функция InputBox имеет вид:InputBox (Приглашение[,Заголовок] [,Значение_по_умолчанию] [, XPos] [, YPos])Обязательным параметром является только приглашение, определяющие пояснительный текст.Пример (рис. 5):x=InputBox(“введите x”)Рис. 5. Окно, выполняющее код, записанный в примереВ поле функции вводится значение переменной, после чего следует щелкнуть кнопку OK.Внимание! Результат функции InputBox будет иметь строковый тип, поэтому если по смыслу задачи вводимое значение должно относиться к другому типу, то необходимо применить функции преобразования типа.Так, например, если в предыдущем примере x должна иметь числовой тип, то следует записать оператор присваивания в одном из следующих видов:x=Cint(InputBox(“введите x”))илиx=Csng(InputBox((“введите x”))илиx=Val(InputBox((“введите x”))В первом случае значение x приводится к типу Integer, во втором – к типу String, а в третьем – к тому типу, которым описана переменная x в операторе Dim ранее. Если же переменная x не была описана, то она принимает тип Variant.Наиболее удобным способом является четвертый – ввод данных с листа Microsoft Excel. В этом случае ввод данных реализуется в виде оператора присваивания:V
=Cells(k,n)Здесь V – имя переменной, k – номер строки ячейки, n – номер столбца. Например, операторX=Cells(5,3)вводит значение для переменной X из ячейки С5, а операторY=Cells(1,4) из ячейки D1Вывод результатов может осуществляться двумя способами:

  1. с помощью функции MsgBox;

  2. непосредственной записью результатов в ячейки листа Microsoft Excel.
Функция MsgBox имеет форматMsgBox (V[, Buttons] [, Title] [, HelpFile, Context])Единственным обязательным аргументом является аргумент V, который может быть любым строковым выражением и содержит информацию, которая выводится в диалоговом окне. Все остальные аргументы – необязательные.Аргумент Title – строка для заголовка диалогового окна.Аргумент HelpFile – строковое выражение, содержащее имя справочного файла Windows (который уже должен быть создан).Аргумент Context – численное выражение, указывающее раздел в справочном файле, относящийся к отображаемому диалоговому окну.Аргумент Buttons – численное выражение, которое задает количество и тип кнопок в диалоговом окне. Также указывает кнопку по умолчанию и, содержит ли это диалоговое окно стандартные значки Windows для предупредительных сообщений и запросов пользователя.Аргументы-константы функции MsgBox представлены в следующей табл. 6. Таблица 6Аргументы-константы функции MsgBox

Константа

Назначение

vbAbortRetryIgnore

Отображает командные кнопки Стоп, Повтор, Пропустить

vbApplicationModal

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

vbCritical

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

vbDefaultButton1

vbDefaultButton2

vbDefaultButton3

vbDefaultButton4

Номер командной кнопки в диалоговом окне являющейся кнопкой по умолчанию

vbExclamation

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

vbInformation

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

vbMsgBoxHelpButton

Добавляет к диалоговому окну кнопку Справка. При щелчке на этой кнопке открывается файл, который задан в аргументе HelpFile, в разделе, заданном аргументом Context

vbOKCancel

Отображает кнопки ОК и Отмена

vbOKOnly

Отображает только кнопку ОК – аналогична пропуску аргумента Buttons

vbQuestion

Отображает значок вопроса. Используется когда надо задать пользователю какой-то важный вопрос

vbRetryCancel

Отображает кнопки Повтор и Отмена

vbSystemModal

Диалоговое окно всегда остается впереди других окон пока не будет закрыто

vbYesNo

Отображает кнопки Да и Нет

vbYesNoCancel

Отображает кнопки Да, Нет и Отмена

Возвращаемые значения-константы функции MsgBox представлены в табл. 7. Таблица 7Возвращаемые значения-константы функции MsgBox

Константа

Назначение

vbAbort

Пользователь выбирает кнопку Стоп

vbCancel

Пользователь выбирает кнопку Отмена

vbIgnore

Пользователь выбирает кнопку Пропустить

vbNo

Пользователь выбирает кнопку Нет

vbOK

Пользователь выбирает кнопку ОК

vbRetry

Пользователь выбирает кнопку Повтор

vbYes

Пользователь выбирает кнопку Да
Следует отметить, что MsgBox может использоваться в двух режимах – как процедура и как функция. Если MsgBox используется исключительно для вывода, то она имеет вид процедуры.Пример:SubPr1()X=5:Y=2Z=X+YMsgBox(z)EndSubПри выполнении данного примера появляется форма имеющая вид, представленный на рис. 6.Рис. 6. Окно, выполняющее код, записанный в примереВ качестве параметра V можно использовать арифметическое выражение; так, допустимо в том же примере записать MsgBox(x+y)Более интересным является использование MsgBox в качестве функции, возвращающей пользователю некоторое значение-ответ. В этом случае на форме должны размещаться кнопки.Пример:Sub l1()MsgBox (Now())End SubРезультатом выполнения процедуры MsgBox является вывод системной даты, которая определяется стандартной функцией Now, не имеющей аргументов. Следует отметить, что в VBA параметр процедуры MsgBox автоматически преобразуется к строковому типу. Например: Рис. 7. Окно, выполняющее код, записанный в примере
В данном примере системная дата приведена к строковому типу с помощью функции CStr, а системное время, определяемое функцией Time, – нет. Тем не менее, программа выполняется правильно (рис. 7).13. Форматирование выводимых данныхФорматирование применяется в первую очередь при выводе вещественных чисел и позволяет округлять их до нужного количества знаков.Форматирование осуществляется с помощью функции Format, имеющей вид:Format(Var,”000.0000”)или жеFormat(Var,”###.####”)Здесь Var– имя переменой-результата, знак 0 означает обязательный знак, знак # – необязательный.Пример:A=5,3Cells(1,1)=format(A,”00.000”)Результатом будет 05.300Пример:A=5,3Cells(1,1)=format(A,”##.00#”)Результатом будет 5.30
14. Условный оператор VBAОператоры, выполняющие роль ветвления программы на основании какого-либо условия, называются операторами условного перехода.П ростейшими операторами условного перехода являются операторы If…Then… (краткая форма) и If...Then...Else… (полная форма). Рис. 8. Блок-схема, соответствующая краткой форме условного оператораПростейший вид условного оператора в краткой форме соответствует конструкции рис. 8.If Условие Then ОператорВ этом случае при выполнении указанного Условия выполняется Оператор, после чего происходит переход к следующей строке программы. Если же условие не выполняется, то Оператор игнорируется и сразу же происходит переход к следующей строке.Примеры (см. алгоритмы суммы и количества):If F>0 Then S=S+FIf F>0 Then K=K+1Рис. 9. Блок-схема, соответствующая краткой форме условного оператора с группировкой операторов, выполняемых при истинности условияДля конструкции рис. 9 условный оператор имеет вид:If Условие Then Оператор1:Оператор2:…ОператорNБолее удобной для этой конструкции является формаIf Условие ThenОператор1Оператор2ОператорNEndIfПример (см. алгоритм среднего арифметического):If F>0 Then S=S+F:K=K+1или жеIf F>0 ThenS=S+FK=K+1EndIfПолная форма условного оператора имеет вид:If Условие Then Оператор1 Else Оператор2и соответствует конструкции рис.10.Рис. 10. Блок-схема, соответствующая полной форме условного оператораВ этом случае при выполнении Условия выполняется Оператор1, в противном случае Оператор2, после чего происходит переход к следующей строке программы.Пример вычисления модуля числа Х:If X>0 Then MOD_X=X Else MOD_X=-X