Слайд 2Диалог с пользователем
Для удобства пользователя при работе с программой зачастую необходимо
выводить какие либо сообщения или делать запросы. Для того чтобы было возможным осуществлять диалог с пользователем, в программе VBA (Excel) существуют функции:
MsgBox
InputBox.
Слайд 3Функция VBA MsgBox
Функция VBA MsgBox представляет пользователю простой способ отображения сообщения.
Также эта функция задает ответную реакцию пользователя на запрос (передает результат щелчка на кнопке ОК, Отмена и т.п.).
Слайд 4Синтаксис функции MsgBox:
MsgBox (Запрос [, Кнопки] [, Заголовок] [, Справка, Раздел])
Запрос
- определяет текст, который будет отображаться в окне сообщения (обязательный параметр).
Слайд 5Кнопки - содержит числовое выражение, которое определяет кнопки, отображаемые в окне
сообщения (необязательный параметр). Возможные значения приводятся в таблице. Для ввода двух параметров кнопок (например, кнопки и значок вида сообщения) константы разделяются оператором Or.
Слайд 6Заголовок - одержит заголовок окна сообщения (необязательный параметр).
Справка, Раздел - указывают
файл и раздел справочной системы (необязательные параметры).
Слайд 7Константы, используемые для выбора кнопок в функции MsgBox
Слайд 8Константы, используемые для выбора кнопок в функции MsgBox
Слайд 9Константы, используемые для выбора кнопок в функции MsgBox
Слайд 10Пример:
В данном примере будет выводиться выводится запрос на вставку смайлика на
активный лист.
Слайд 11Программный код:
Sub VvodSmil()
Dim Otvet As Double
Otvet = MsgBox(" Вы хотите вставить
смайлик на активный лист?", vbYesNoCancel Or 32, "Вопрос")
If Otvet = vbYes Then
ActiveCell.FormulaR1C1 = _ ActiveSheet.Shapes.AddShape(msoShapeSmileyFace, 191, 200, 61, 54).Select
ElseIf Otvet = vbCancel Then
Exit Sub
Else
MsgBox "Как хотите. "
End If
End Sub
Слайд 12Пояснения к программному коду:
В первой строчке объявляем процедуру VvodSmil()
во второй –
объявляем переменную Otvet
в третьей - переменной Otvet присваиваем значение окна вывода сообщений ( функция MsgBox), в котором будет делать ся запрос на вставку смайлика на активный лист
Слайд 13
при выборе ответа да вставляется смайлик
Слайд 14При нажатии на кнопку Отмена процедура прерывается.
И при выборе ответа Нет
выходит окно сообщений с фразой «Как хотите».
Слайд 15Константы, возвращаемые функцией MsgBox
Названия констант в программном коде можно заменить на
их значения
Слайд 17Использование окна ввода данных
Окно ввода данных — это простое диалоговое окно,
которое позволяет пользователю ввести единственное значение. Например, можно применить окно ввода данных, чтобы предоставить пользователю возможность ввести текст, числа или даже диапазон значений. Для создания окна ввода используются две функции InputBox: одна в VBA, а вторая в Excel.
Слайд 18Функция InputBox в VBA
Данная функция имеет следующий синтаксис:
InputBox (Запрос [, Заголовок]
[, По_умолчанию] [, xpos] [ ,ypos] [, Справка, Раздел])
• Запрос— указывает текст, отображаемый в окне ввода (обязательный параметр).
• Заголовок— определяет заголовок окна ввода (необязательный параметр).
• По_умолчанию— задает значение, которое отображается в окне ввода по умолчанию (необязательный параметр).
• xpos, ypos— определяют координаты верхнего левого угла окна ввода на экране (необязательные параметры).
• Справка, Раздел— указывают файл и раздел в справочной системе (необязательные параметры).
Слайд 19Параметры вводятся:
через запятую по порядку, а отсутствующие параметры разделяются пробелами
с запятой
x = InputBox("Введите число", "Ввод числа ", , 50,50)
либо указываются непосредственно названия вводимых параметров, после параметра ставится двоеточие и равно, а затем указывается его значение
x = InputBox(prompt:="Введите число", _
Title:=" Ввод числа ", xpos:=45, ypos:=45)
Слайд 20Функция InputBox запрашивает у пользователя единственное значение. Она всегда возвращает строку,
поэтому может понадобиться преобразовать результат в числовое значение.
Текст, отображаемый в окне ввода, может достигать 1024 символов (длина может изменяться в зависимости от ширины используемых символов).
Слайд 21Пример 1
Sub OknoVvoda()
x = InputBox("Введите число", "Ввод числа")
MsgBox "Переменная " &
x & " Тип данных: " _
& TypeName(x)
End Sub
Слайд 22Введем в окно ввода слово «текст»
Тип определился как строковый.
Слайд 23Введем в окно ввода число «123»
Тип определился как строковый.
Слайд 24Программирование кнопки Cancel в функции InputBox
Нажатие на кнопку Cancel в функции
InputBox возвращает пустую текстовую строку, поэтому для того чтобы запрограммировать выход из процедуры нажатием кнопки Cancel, надо ввести условную конструкцию If, в которой проверяется истиность условия ввода пустой строки.
Слайд 25Пример 2
Sub OknoVvoda_Cancel()
x = InputBox("Введите число", "Ввод числа")
' проверка на нажатие
Cancel
If x = "" Then
Exit Sub
End If
MsgBox "Переменная " & x & " Тип данных: " _
& TypeName(x)
End Sub
Слайд 26Метод InputBox в Excel
Использование метода Excel InputBox (вместо функции VBA InputBox)
предоставляет три преимущества:
• можно задать тип возвращаемого значения;
• можно указать диапазон листа, обведя мышью ячейки листа;
• производится автоматическая проверка правильности введенных данных.
Слайд 27Метод InputBox имеет следующий синтаксис:
object.InputBox(Запрос,Заголовок,По_умолчанию,Слева,Сверху, Справка, Раздел, Тип)
Запрос— указывает текст,
отображаемый в окне ввода (обязательный параметр).
• Заголовок — определяет заголовок окна ввода (необязательный параметр).
• По_умолчаиию — задает значение, которое отображается в окне ввода но умолчанию
(необязательный параметр).
Слайд 28• Слева, Сверху —определяют координаты верхнего левого угла окна ввода на
экране
(необязательные параметры).
• Справка, Раздел— указывают файл и раздел в справочной системе (необязательные параметры).
• Тип— указывает код типа данных, который будет возвращаться методом (необязательный параметр).
Слайд 29Коды типов возвращаемых методом Excel InputBox данных
Код Значение
0 Формула
1 Число
2 Строка
(текст)
•1 Булево значение (ИСТИНА ИЛИ ЛОЖЬ)
8 Ссылка на ячейку как объект диапазона
16 Значение ошибки, такое, как # н / д
64 Массив значений
Слайд 30Пример 3
Sub OknoVvoda1()
x = Application.InputBox(prompt:=" Введите число ", _
Title:=" Ввод числа
", Type:=1)
MsgBox "Переменная " & x & " Тип данных: " _
& TypeName(x)
End Sub
Слайд 31Введем с клавиатуры цифры
Тип определится как числовой
Слайд 32Если вместо цифр мы введем буквы
Появится сообщение об ошибке
Слайд 33Пример 4
Метод позволяет вводить диапазон значений
Sub OknoVvoda2()
x = Application.InputBox(prompt:=" Введите число
", _
Title:=" Ввод числа ", Type:=64)
Range("A1:C1") = x
End Sub
Слайд 34Введем несколько значений в смежные ячейки
В результате выполнения процедуры убедимся, что
выделенный диапазон был помещен в указанные ячейки
Слайд 35Программирование кнопки Cancel в методе InputBox
Нажатие на кнопку Cancel в методе
InputBox возвращает False, поэтому для того чтобы запрограммировать выход из процедуры нажатием кнопки Cancel, надо ввести условную конструкцию If, в которой проверяется истинность условия ввода False.
Слайд 36Пример 5
Sub OknoVvoda1_Cancel()
x = Application.InputBox(prompt:=" Введите число ", _
Title:=" Ввод числа
", Type:=1)
' проверка на нажатие Cancel
If x = False Then
Exit Sub
End If
MsgBox "Переменная " & x & " Тип данных: " _
& TypeName(x)
End Sub
Слайд 37Домашнее задание
Прочитать и выучить лекцию