Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
часть1.doc
Скачиваний:
138
Добавлен:
03.05.2015
Размер:
1.01 Mб
Скачать

MsgBox Сообщение[,Кнопки][,Заголовок]

Аргументы:

  1. Сообщение- обязательный аргумент, задающий в окне выводимое информационное сообщение.

  • Если сообщение не переменная, а текст, то записывается в кавычках.

MsgBox "Здравствуй, Excel!"

  • Сообщение может состоять из нескольких текстовых строк, объединенных знаком &. MsgBox "Моя " & "первая " & "программа"

  • Для перехода на новую строку при выводе используется функция Chr(13).

MsgBox "Моя " & "первая " & Chr(13) & "программа"

  • Чтобы разорвать длинную команду на две строки необходимо в конце строки после пробела использовать символ _.

MsgBox "Сколько Вам" & _

" полных лет ?"

  • При склейке фрагментов различного типа данных (например, Byte и String) необходимо использовать символ &, а текстового можно символ +.

MsgBox "Сегодня" + " на календаре " & Date

  • При операции присваивания используются скобки.

y = MsgBox("Начнем?")

MsgBox y

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

  1. Заголовок - задает заголовок окна. Если опустить этот аргумент, VBA отображает в строке заголовка диалогового окна MsgBox текст "Microsoft Excel".

MsgBox "Сегодня на календаре " & Date , , "Внимание"

  1. Кнопки - значение этого аргумента определяет категории появляющихся в окне кнопок. От значения аргумента кнопки зависит также, появляется ли в окне какой-либо значок. Если не указано, какие кнопки необходимо отображать в окне сообщений, то используется значение по умолчанию, соответствующее кнопке ОК.

Возможные комбинации кнопок и значков

Отображение

Аргумент

Кнопка ОК

VbOKOnly

Кнопки ОК и Отмена

VbOKCancel

Кнопки Да и Нет

VbYesNo

Кнопки Да, Нет и Отмена

VbYesNoCancel

Кнопки Прекратить, Повторить и Игнорировать

VbAbortRetryIgnore

Кнопки Повторить и Отмена

VbRetryCancel

Информационный знак

VbInformation

Знак

VbCritical

Знак

VbQuestion

Знак

VbExclamation

Пример 2.

Напишите процедуру HelloExcel, выводящую в диалоговом окне приглашение «Начнем?» и отображающую на экране сообщение “Здравствуй, Excel!” после нажатия на любую кнопку.

Sub HelloExcel()

MsgBox "Начнем?", vbYesNo, "Начало"

MsgBox "Здравствуй, Excel!", vbInformation, "Hello!"

End Sub

Для запуска на выполнение написанной процедуры выберите команду меню Run -> Run Sub/UserForm, либо нажмите клавишу F5, либо кнопку на панели инструментов. В результате будет выведено следующее диалоговое окно:

После нажатия на кнопку «Да», «Нет» или закрытия окна будет выведено следующее диалоговое окно. Обратите внимание, что первое диалоговое окно имеет заголовок «Начало», а второе – «Hello!»

9. Функция ввода InputBox осуществляет ввод значений переменных с помощью окна ввода и имеет следующий синтаксис:

Имя_Переменной = InputBox( Сообщение[, Заголовок])

Аргументы:

  1. Сообщение- обязательный аргумент. Задает в окне информационное сообщение, обычно поясняющее смысл вводимой величины.

  2. Заголовок- задает заголовок окна.

Пример 3.

Ввести значение переменной N с клавиатуры, предусмотрев значение по умолчанию 10.

N = InputBox("Введите N", "Ввод исходных данных",10)

В результате будет выведено следующее окно для ввода значения переменной N.

Если значение по умолчанию подходит пользователю, то после щелчка кнопки ОК окно ввода закроется, переменной N присвоится значение 10 и выполнение программы возобновится с оператора, стоящего непосредственно за вызовом InputBox.

Если же значение по умолчанию не подходит пользователю, то перед щелчком по кнопке ОК необходимо ввести нужное значение переменной N.

Пример 4.

Напишите процедуру, вычисляющую площадь круга, но радиус круга задает пользователь.

Const Pi As Single =3.14

Dim CircleArea As Single

Sub List ()

Const BoxTitle = "Площадь круга"

Dim Radius As Single, Temp As String

Temp = InputBox("Введите радиус " & Chr(13) & "круга", BoxTitle)

Radius = CSng(Temp)

CircleArea = Pi * Radius * Radius

MsgBox CircleArea, vbInformation + vbOKCancel, BoxTitle

End sub

В рассматриваемом примере объявляется константа Pi и переменная CircleArea модульного уровня (видимы во всех процедурах заданного модуля), а также константа BoxTitle и переменные Radius и Temp процедурного уровня, которые имеют только локальный доступ в процедуре List (видимы только в процедуре). Функция InputBox отображает свой первый аргумент как текст в диалоговом окне. Функция Chr(13) осуществляет переход на новую строку. Функция InputBox использует второй аргумент, представленный константой BoxTitle, в качестве заголовка диалогового окна.

Пользователь вводит число в текстовое окно и выбирает командную кнопку ОК или Cancel, чтобы закрыть диалоговое окно. Введенное число присваивается переменной Temp. Результат функции InputBox всегда является строкой, поэтому переменная Temp была объявлена как String. Для преобразования значения строки в численное значение используется встроенная VBA-функция CSng(). Функция MsgBox выводит результат вычисления площади круга из переменной CircleArea, аргумент vbInformation добавляет информационный знак, а аргумент vbOKCancelкнопки ОК и Отмена.

После ввода числа, равного 3, получим в результате окно следующего вида:

10. Команды делятся на описательные и исполнительные.

Описа­тельные команды не приводят к выполнению каких-либо действий с переменными или объектами. Они служат для определения того, какие именно переменные используются при вычислении (команда определе­ния переменных Dim); где начинаются и где заканчиваются вычисления (команды организации макросов и функций Sub... End Sub, Function...End Function).

Исполнительные команды служат для непосредственной организации вычислительного процесса. Это коман­ды присваивания (=), организации циклов (For...Next, Do...Loop), вы­полнения действий по условию (If...Then...Else, Select Case...End Select). Каждая такая команда либо изменяет содержимое переменной или состояние объекта, либо направляет вычисления по определенной ветви. Основные команды VBA.