Лекция 9. Ввод-вывод.ppt
- Количество слайдов: 18
УО «Белорусско-Российский университет» Электротехнический факультет Кафедра АСУ Группа МПК 121 Встроенные диалоговые окна: окно ввода, окно вывода. Элементы управления и пользовательская форма ПРЕПОДАВАТЕЛЬ БЕККЕР И. А. Лекция № 9
Ввод и вывод данных в VBA может выполняться несколькими способами: с листа Excel, с помощью диалоговых окон, с помощью пользовательской формы. Для ввода данных с листа или вывода на лист используется объект Worksheets и его методы Range или Cells. Метод Range использует в качестве аргументов одну или две ссылки. Ссылки на ячейки должны быть оформлены в стиле А 1 (Колонка. Строка). Ссылка на единичную ячейку, использованная в качестве аргумента, возвращает объект Range для единичной ячейки. Две ссылки на единичные ячейки возвращают объект Range для прямоугольной области, заключенной между этими двумя ячейками.
X = Worksheets(“Лист1”). Range(“B 1”). Value Присваиваем переменной Х значение ячейки B 1 листа Лист1. Worksheets(“Лист1”). Range(“B 1”). Value = Х Выводим в ячейку B 1 листа Лист1 значение переменной Х Worksheets(“Лист1”). Range(“C 1”, ”D 6”). Value = 2 Выводим в ячейки C 1 и D 6 листа Лист1 число 2 Worksheets(“Лист1”). Range(“В 7: С 9”). Value = 3 Выводим в диапазон ячеек “В 7: С 9” листа Лист1 число 3
Метод Cells требует в качестве аргументов два целых числа и возвращает объект, содержащий единичную ячейку. Аргументы - это номера строки и столбца выбранной ячейки. A=Worksheets(1). Cells(1, 2). Value Переменной А присвоено значение из ячейки В 1 первого листа. Worksheets(1). Cells(2, 2). Value= Х В ячейку В 2 заносится значение переменной Х.
Для ввода данных с клавиатуры используется функция Input. Box Выводит на экран диалоговое окно, содержащее сообщение, окно поле ввода и две кнопки OK и Cancel. Устанавливает режим ожидания ввода текста пользователем или нажатия кнопки, а затем возвращает значение типа string при нажатии кнопки OK, OK содержащее введенный в поле текст. При нажатии кнопки Cancel возвращает пустую строку. Синтаксис: Input. Box(prompt[, title] [, default]) prompt — строковое выражение - сообщение в диалоговом окне. title — строковое выражение в строке заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя приложения; default — строковое выражение, отображаемое в поле ввода как используемое по умолчанию, если пользователь не введет другую строку. Если этот аргумент опущен, поле ввода изображается пустым.
Введенные пользователем данные считаются текстом, и при вводе числовых значений необходимо преобразовать их к одному из числовых типов данных с помощью функции преобразования типа, например, CDbl – она выполняет преобразование из строки символов в число типа Double (число с плавающей запятой двойной точности от -1, 8 Е 308 до -4, 9 Е-324 для отрицательных значений; от 4, 94065645841247 Е-324 до 1, 79769313486232 Е 308 для положительных значений). X=CDbl(Input. Box(“Введите значение Х”, “Пример окна ввода”, “ 1, 678”)) В результате выполнения этой операции на экране появится окно ввода.
Функция Msg. Box Выводит на экран диалоговое окно, содержащее сообщение; устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа integer, указывающее, какая кнопка была нажата. Синтаксис: Msg. Box(prompt[, buttons] [, title]) Аргументы: prompt — строковое выражение, отображаемое как сообщение в диалоговом окне; buttons — числовой индекс , который соответствует определенному набору отображаемых кнопок, типу используемого значка. Например, значение по умолчанию этого аргумента 0 отображает одну кнопку OK. title — строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя приложения.
Процедура Msg. Box может использоваться в «минимальном» варианте - только для вывода сообщения, с одной кнопкой – OK. В этом случае аргументы не берутся в скобки. Например: Msg. Box “Значение переменной Х=” & X
Public Sub prog 1() Dim x As Double Dim y As Double Dim f As Double x=CDbl(Input. Box("Введите CDbl х")) y=CDbl(Input. Box("Введите CDbl y")) f = Abs(x) + Sin(y + 5) ^ 2 Msg. Box "Результат = " & f End Sub Заголовок процедуры prog 1 (начало программы) Описание переменных: переменные x, y, f вещественного типа (Double) Ввод значений х и у. Функция Input. Box выводит на экран окно с полем ввода и сообщением «Введите х» и возвращает значение типа строка (String). Для преобразования вводимого значения к вещественному типу – Double- используется функция CDbl. Вычисление значения переменной f: функция Abs(аргумент) возвращает модуль аргумента, Sin(аргумент) – синус аргумента, ^ - степень числа. Функция Msg. Box выводит на экран окно сообщений с текстом «Результат = 102» (если f=102). Конец программы.
Пример: определите вид введенного числа – положительное, отрицательное или ноль. Public Sub prog 2() Dim x As Double Dim s As String x=Worksheets(1). Range("A 1") If x > 0 Then s = "положительное" Else. If x = 0 Then s = "ноль" Else s = "отрицательное" End If Worksheets(1). Range("C 2")=s End Sub Описание переменной строкового типа Ввод значения переменной х. Значение располагается на Листе 1 (Worksheets(1)) в ячейке А 1 (Range ("A 1")). Условный оператор. Если условие принимает значение True (Истина), то выполняется оператор присваивания ветки Then (s=”положительное”) и завершается условный оператор, в противном случае проверяется второе условие: x=0. Если условие True, то s присваивается значение “нуль”, иначе – “отрицательное”. Вывод результата–s–на лист1 в ячейку С 2.
Оператор цикла с параметром (For…Next) Оператор цикла For позволяет повторять группу операторов заданное число раз. Синтаксис: For <счётчик_цикла> =<начальное значение> To <конечное значение> [Step <шаг>] <тело цикла> [Exit For] - Досрочно завершить цикл. . . Next [<счётчик_цикла>] где <счётчик_цикла> — числовая переменная; <начало> - начальное значение (выражение) переменной <счётчик_цикла>; <конец> - заключительное значение (выражение) переменной <счётчик_цикла>; <тело цикла> - это последовательность операторов, которая будет выполнена заданное число раз.
Порядок выполнения: переменной <счётчик> присваивается значение <начало> и проверяется условие: <начало> <конец>; если условие неверно, то <тело цикла> не выполняется и управление передается на оператор, следующий за Next. Если условие выполняется, то выполняется <тело цикла>, а затем значение <счётчик_цикла> изменяется на значение <шаг> (увеличится в случае положительного значения <шаг>, и уменьшается при отрицательном значении <шаг>). Данный процесс будет выполняться, пока значение <счётчик_цикла> не достигнет значения <конец>
Досрочно завершить цикл For…Next можно и с помощью оператора Exit For. Такие операторы могут б Изображение в блок-схемах: Досрочно завершить цикл For…Next можно и с помощью оператора Exit For. Такие операторы могут быть расположены в тех местах тела цикла, где требуется из него выйти, не дожидаясь выполнения условия завершения. Изображение в блок-схемах: счётчик_цикла =<начало>, <конец>, <шаг> <Тело цикла>
Какое значение примут указанные переменные в результате выполнения следующих фрагментов программы: Листинг 1 Листинг 2 t = 10: f = 0 y=0 For i = 2 To 10 Step 2 y = 0 y=y+I Next I For i = 1 To 5 f =f+I f=t+I Next I t=_____, f=_____, i=______ y=_____, i=_____
Описание переменной типа Byte Ввод значения переменной n (номера элемента последовательности) через окно ввода и преобразование введенного значения к типу Byte Присваивание начальных значений переменным а 1 и а 2 (двоеточием n=CByte(Input. Box("n =")) разделяются операторы, записанные a 1 = 1: a 2 = 1 на одной строке) Организация цикла For…Next, в For i = 3 To n котором счетчик i изменяется от 3 до an = a 1 + a 2 n с шагом 1 Вычисление следующего члена последовательности как сумму двух a 1 = a 2: a 2 = an предыдущих Пример: вычислить n. Next i Изменение последнего и предпоследнего значений Msg. Box an ый член последовательности, последовательности на данный End Sub заданной формулой аn момент = аn-1 =+ аn-2 , если а 1=1, Увеличение счетчика на 1 (конец тела цикла) а 2=1. Public Sub prog 3() Dim n As Byte Dim an As Integer, a 1 As _ Integer, a 2 As Integer
Элементы управления и пользовательская форма
Вызовем панель элементов Вид (View) Панель элементов (Toolbox). На панели элементов находятся кнопки, позволяющие конструировать различные элементы управления. Элементы управления являются объектами. Как любые объекты, они обладают свойствами, методами и событиями. Для создания элементов управления служат все кнопки панели инструментов, за исключением кнопки Выбор объекта. Щелкнув по кнопке Выбор объекта, можно выбрать уже созданный в форме элемент управления для последующего редактирования (изменения размеров или редактирования).
Элемент управления Имя Кнопка, его создаю щая Элемент управления Имя Поле Text. Box Переключатель Option. Button Надпись Label Флажок Check. Box Кнопка Command. Button Выключатель Toggle. Button Список List. Box Рамка Frame Поле со списком Combo. Box Рисунок Image Полоса прокрутки Scrol. Bar Набор страниц Multi. Page Счетчик Spin. Button Набор вкладок Tab. Strip Кнопка, его создаю щая
Лекция 9. Ввод-вывод.ppt