Ввод и вывод данных в vb. Поле ввода в VBA Excel - InputBox. Синтаксис, параметры и описание Линейные вычислительные процессы
" мы вкратце познакомились с диалоговым сообщением msgbox. Но это было простейшее информационное сообщение. Теперь рассмотрим подробнее работу с функцией MsgBox и все виды диалоговых сообщений.
Синтаксис функции MsgBox
Функция MsgBox имеет следующий синтаксис:
MsgBox (сообщение [, константы сообщения] [, заголовок] [, файл справки hlp, контекст справки])
Обязательным параметром является «Сообщение», остальные могут быть опущены.
MsgBox “Текст сообщения ”
- Константы сообщения - позволяют определить вид диалогов.
- Заголовок – задает заголовок формы диалога.
- Файл справки hlp - строковое выражение, указывающее имя файла справки для диалогового окна.
- Контекст справки - числовое выражение, указывающее номер контекста файла справки для диалогового окна.
Диалоговое окно вида:
создается следующей командой:
MsgBox "Текст содержащий вопрос", vbYesNo, "Название сообщения"
Для создания сообщения такого вида:
команда будет выглядеть так:
MsgBox "Текст содержащий вопрос", vbYesNoCancel, "Название сообщения"
Сообщение такого вида:
создается командой:
MsgBox "Текст содержащий вопрос", vbAbortRetryIgnore, "Название сообщения"
т.е. из всех трех примеров в команде меняется только второй параметр (vbYesNo, vbYesNoCancel, vbAbortRetryIgnore). Это и есть значения (константы) определяющие вид сообщения. Параметры (vbYesNo, vbYesNoCancel) могут быть заменены на числовое значение, например диалог vbYesNo можно вызвать, указав 4: MsgBox "Текст содержащий вопрос", 4, "Название сообщения".
Ниже приведен полный список констант и эквивалентных им цифровых значений:
Константа | Значение | Описание |
vbOKOnly | Выводит сообщение с кнопкой OK |
|
vbOKCancel | Выводит сообщение с кнопками OK и Отмена |
|
vbAbortRetryIgnore | Выводит сообщение с кнопками Прервать , Повтор, Пропустить |
|
vbYesNoCancel | Выводит сообщение с кнопками Да , Нет , Отмена . |
|
Выводит сообщение с кнопками Да и Нет |
||
vbRetryCancel | Выводит сообщение с кнопками Повтор и Отмена |
В сообщениях можно слегка изменить внешний вид, назначить кнопку по умолчанию, добавить кнопку "Справка" путем сложения констант.
Например: MsgBox "Текст содержащий вопрос", vbYesNoCancel+vbInformation+ vbMsgBoxHelpButton+vbDefaultButton2, "Название сообщения" построит сообщение вида:
vbInformation
- добавляет иконку восклицания в сообщение
vbMsgBoxHelpButton
- добавляет кнопку "Справка"
vbDefaultButton2
- устанавливает фокус на второй кнопке ("Нет
")
Ниже таблица со списком констант иконок и констант, устанавливающих фокус на кнопках:
Константа | Значение | Описание |
vbCritical | Выводит иконку критического сообщения (красный овал с крестом) |
|
vbQuestion | Выводит иконку с вопросительным знаком |
|
vbExclamation | Выводит иконку с восклицательным знаком (в желтом треугольнике) |
|
vbInformation | Выводит иконку информационного сообщения |
|
vbDefaultButton1 | Устанавливает фокус по умолчанию на первой кнопке |
|
vbDefaultButton2 | Устанавливает фокус по умолчанию на второй кнопке |
|
vbDefaultButton3 | Устанавливает фокус по умолчанию на третьей кнопке |
|
vbDefaultButton4 | Устанавливает фокус по умолчанию на четвертой кнопке |
|
vbMsgBoxHelpButton | Добавляет кнопку Справка |
|
vbMsgBoxRight | Выравнивание текста сообщения по правой стороне |
|
vbMsgBoxRtlReading | Зеркально переворачивает все элементы в сообщении (см. снимок ниже) |
Как узнать какую кнопку в сообщении нажал пользователь?
Определяться выбор пользователя будет с помощью . В некоторых ситуациях можно использовать .
Например, вызовем сообщение двойным нажатием ЛКМ по любой ячейке на листе. В соответствии с выбором пользователя, выведем в эту ячейку текст.
Создаем новую книгу Excel и переходим в режим Visual Basic (Alt+F11). В окне проекта выбираем «Лист1 » и кликаем по нему два раза ЛКМ.
В открывшемся окне редактора кода вводим следующую процедуру:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean ) If
MsgBox("Текст содержащий вопрос", vbYesNo, "Название сообщения") = vbYes Then
|
В условии IF мы сравниваем результат возвращенный функцией MsgBox, с константой vbYes т.е. если в сообщении нажата кнопка «Да », тогда функция MsgBox возвращает значение vbYes (6). Полный перечень констант и их цифровых эквивалентов ниже. Теперь попробуйте на Листе 1 кликнуть два раза по любой ячейке.
Примечание: При вызове сообщения выполнение программы останавливается до тех пор, пока не будет получен ответ от пользователя.
Второй вариант вызова диалога с помощью .
Создадим вторую процедуру на Листе 2. Код процедуры следующий:
Private Sub
Worksheet_BeforeDoubleClick(ByVal
Target As
Range, Cancel As Boolean
) Select Case
mes |
В этом случае результат вызова MsgBox присваивается переменной mes и далее в Select Case ищется совпадение и согласно совпадения, выполняются действия.
Вот и все. Ниже прикреплен готовый пример, рассмотренный в этой статье.
Перечень констант и значений, возвращаемых функцией MsgBox:
Константа | Значение | Кнопка |
vbCancel | Отмена |
|
Прервать |
||
Повтор |
||
vbIgnore | Пропустить |
|
Лекция для ЗФ
ОПЕРАТОРЫ ВВОДА И ВЫВОДА ДАННЫХ.
ЛИНЕЙНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ
ОПЕРАТОР ПРИСВАИВАНИЯ LET
Оператор присваивания служит для вычисления значения выражения и присваивания этого значения переменной. При записи программы оператор Let можно опускать.
Формат оператора:
Имя_переменной = Выражение
SUMMA=X+COS(X)^2
Следует различать оператор присваивания и алгебраическое равенство. Оператор Y = A + B означает для ЭВМ: сложить содержимое ячеек памяти, отведенных для размещения значений переменных А и В, и поместить результат в ячейку памяти, отведенную для значения переменной Y. В программировании широко используется конструкция оператора присваивания типа I = I + 1. К заданному значению переменной I прибавляется 1, и результат помещается в ту же ячейку, заменив бывшую там информацию на новую. С точки зрения математики равенство i = i +1 не имеет смысла.
При присвоении переменным строковых значений их необходимо заключать в кавычки:
T = «Параметр 1»,
а значения типа Дата/Время заключать в символы # («решетка»):
D = #11/29/2008#
ОПЕРАТОРЫ ВВОДА ДАННЫХ
Рассмотрим три основных способа ввода данных.
1. Запись значений переменных непосредственно в тексте программы осуществляется с помощью оператора присваивания .
Имя_переменной = Выражение
Этот способ используется, если исходные данные не изменяются при нескольких исполнениях программы.
2. Ввод данных из ячеек рабочего листа Excel .
Для этого используется инструкция С ells (i , j ) , которая в данном случае выступает как функция ввода данных. Формат использования:
Имя_переменной = С ells (i , j ) ,
где i , j – порядковые номера соответственно строки и столбца (числовые значения!), на пересечении которых находится ячейка, т. е. адрес ячейки.
При этом следует иметь в виду, что данные на листе Excel уже имеются .
Пример: А = Сells(1, 2)
После выполнения этой команды переменной А присвоится значение, которое хранится в ячейке, находящейся в первой строке (первая цифра) и во втором столбце (вторая цифра), т. е. в ячейке B1 электронной таблицы.
3. Ввод данных непосредственно в ходе выполнения программы , т. е. в диалоговом режиме, выполняется с помощью диалогового окна ввода информации, реализуемого функцией InputBox . Основной формат этой функции:
Имя_переменной = InputBox (“Сообщение” [, “Заголовок”] [, “Значение”]) .
В ходе работы программы при выполнении данной команды на экране монитора появляется диалоговое окно с указанным Заголовком , содержащее текст Сообщения , а также поле ввода с указанным Значением:
Выполнение программы приостанавливается в ожидании ввода данных с клавиатуры и нажатия одной из кнопок. После ввода информации и нажатия на кнопку ОК переменной присваивается значение типа String (строковый тип данных), содержащее текст , введенный в поле ввода.
Пример: x = InputBox(“Введите x”, “Ввод исходных данных”, “0.15”)
Имя окна можно опустить (при этом местоположение запятых сохраняется):
x = InputBox("Введите x", "0.15")
Функция InputBox используется, когда исходные данные меняются при каждом запуске программы , поэтому обычно значение переменной не задается и применяется простейший вариант записи этой функции:
Имя_переменной = InputBox (“Сообщение”)
Пример: d = InputBox(“Введите значение диаметра”)
Если в поле ввода в появившемся диалоговом окне ввести 23, то в переменную d будет записан текст “23”, а не число 23. Текстовая строка “23” представляет собой лишь визуальное отображение числа, но не является числом в буквальном смысле слова, т. е. с ним, как и с любым другим текстом, нельзя производить никаких арифметических действий.
Для преобразования строкового типа данных в числовой тип используется функцияVal (Строка ) , которая возвращает число, содержащееся в Строке , как числовое значение соответствующего типа.
При записи в коде программы
d = Val(InputBox(“Введите значение диаметра”))
и вводе в поле ввода цифр 23 переменной d присвоится число 23.
ОПЕРАТОРЫ ВЫВОДА ДАННЫХ
Рассмотрим три основных способа вывода данных.
1. Вывод в диалоговое окно с помощью команды MsgBox:
MsgBox "Сообщение", "Заголовок"
В результате выполнения этой команды на экране появляется диалоговое окно Заголовок , содержащее указанный текст Сообщения . Выполнение программы приостанавливается до нажатия пользователем кнопки ОК.
Пример: MsgBox y , "Результат"
В данном случае в качестве выводимого в окно Результат сообщения задано текущее значение переменной y :
Простейший формат записи оператора MsgBox:
MsgBox "Сообщение"
Обычно сообщение включает в себя не только выводимое значение, но и комментарий, который заключается в кавычки. Для слияния нескольких фрагментов в одну строку в операторе вывода их разделяют знаком & .
Пример: MsgBox “Значение диаметра =” & d
В результате на экране появится следующее диалоговое окно:
2. Вывод данных на лист рабочей книги Excel с использованием инструкции С ells (i , j ) . В этом случае в отличие от ранее рассмотренного она выступает как команда вывода:
C ells (i , j ) = "Сообщение".
В результате этой команды указанное Сообщение помещается в ячейку с адресом, определяемым номером строки i и номером столбца j .
Cells(1, 1) = “x=” ‘Вывод в ячейку A 1 текста x =
Cells(1, 2) = x ‘Вывод в ячейку B 1 текущего значения переменной x
3. Вывод данных в окно отладки Immediate («Немедленно»). Это окно обычно располагается под окном программного кода. Если этого окна нет, то его можно вывести, нажав Ctrl+G или из главного меню VBA View → Immediate Window .
Для вывода в окно отладки применяется метод Print (печать) объекта Debug (отладчик). Формат записи:
Debug.Print ["Сообщение"]
Пример: Debug.Print “Значение диаметра =” & d
Как видно из этого примера, команда Debug.Print используется аналогично команде MsgBox.
Пустой (т. е. без Сообщения ) метод Debug.Print выводит пустую строку.
Помимо знака & в методе Print возможно использование разделителей списка выводимых данных. При этом знак «; » означает вывод очередного значения непосредственно за предыдущим, знак «, » – переход к началу новой зоны печати (окно отладки делится на 5 вертикальных зон по 14 символов каждая). При вводе знак «; » между элементами выводного списка можно опускать, VBA добавит его автоматически.
Запятая или точка с запятой в конце выводного списка в команде Debug.Print подавляет переход на новую строку (следующий Debug.Print начнет печать в той же строке).
Пример: Debug.Print "Результат y="; y;
В любом операторе вывода (MsgBox, Cells, Debug.Print) возможен вывод не только готовых результатов, но и одновременный расчет и вывод:
Debug.Print "s = "; s, " k1+k2 = "; k1 + k2
MsgBox "Если диаметр = " & d & ", то радиус = " & d / 2
Для вывода числового значения в заданном формате в операторах вывода MsgBox, Debug.Print вместо имени переменной следует использовать функцию Format с указанием количества десятичных знаков.
Debug.Print z ‘вывод переменной z обычным образом
Debug.Print Format (z , "#0. 00 ") ‘вывод переменной z с 2-мя десятичными знаками
MsgBox Format (z , "#0. 000 ") ‘вывод переменной z с 3-мя десятичными знаками
В операторе вывода Cells функцию Format использовать не рекомендуется.
ЛИНЕЙНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ
Простейшими являются программы, реализующие алгоритмы линейного вычислительного процесса. Программа в этом случае содержит операторы ввода данных, присваивания и вывода данных. Операторы записываются последовательно друг за другом в естественном порядке их следования и выполняются только один раз.
Общая структура линейной программы:
Option Explicit
Sub Имя _ процедуры ()
‘Объявление констант (Const … )
‘Объявление переменных (Dim … )
‘Тело процедуры:
‘Ввод исходных данных
‘Вычисления
‘Вывод результатов
End Sub
Пример_Л1. Составить ГСА и текст программы для вычисления функции:
где x = a∙t 2 + 0.2 , a = 18, t – произвольное.
ГСА Текст программы:
Option Explicit ‘Запрет использования необъявленных переменных
Sub Лин_процесс1() ‘Начало процедуры Лин_процесс1
Const a = 18 ‘Объявление константы a
Dim t As t
Dim x As Single ‘Объявление вещественной переменной x
Dim y As Single ‘Объявление вещественной переменной y
t = Val(InputBox("Введите t")) ‘Ввод значения t
x = a * t ^2 + 0.2 ‘Расчет x
y = (x ^ 2 + Log(x) - (x + 1) ^ 2) / (x * Sin(x)) ‘Расчет y
MsgBox "Результат y=" & y ‘Вывод y в диалоговое окно
End Sub ‘Конец процедуры
Ниже приведено решение того же примера с использованием других способов ввода и вывода данных.
Условный оператор в VBA.
Часто необходимо, чтобы часть программы выполнялась бы только при выполнении определенных условий. Решение данной проблемы заключается в использовании специальных конструкций, использующих операторы ветвления.
Общий вид данной конструкции:
If <логическое выражение> Then <список операторов> End If
<логическое выражение> - это простое или сложное условие, или логическая константа (true или folse)
Сложное условие состоит из простых условий, соединенных логическими операциями AND или OR
Например: (а=b)
Алгоритм
2)Если значение логического выражения true, то выполняется список операторов
3)Если значение логического выражения folse, то ничего не выполняется
Дополнительная ветвь условного перехода:
If <логическое выражение> Then
<список операторов1>
<список операторов2>
Алгоритм
1)Вычисляется значение логического выражения
2)Если значение логического выражения true, то выполняется список операторов 1
3)Если значение логического выражения folse, то выполняется список операторов 2
Несколько вложенных друг в друга операторов:
If <логическое выражение1> Then
<список операторов1>
ElseIf <логическое выражение2> Then
<список операторов2>
ElseIf <логическое выражениеN> Then
<список операторовN>
Алгоритм
1)Вычисляется значение логического выражения 1
2)Если значение логического выражения 1 - true, то выполняется список операторов 1
3)Если значение логического выражения 1 - folse, то выполняется список операторов 2
4)Если значение логического выражения 2 - true, то выполняется список операторов 2
5)Если значение логического выражения 2 - folse, то выполняется список операторов 3
4)Если значение логического выражения N - true, то выполняется список операторов N
5)Если значение логического выражения N - folse, то ничего не выполняется
a = inputbox("введите A")
Cells – свойство позволяющее обращаться к конкретным ячейкам рабочего листа.
Cells(i,j) – ячейка и ее координаты – номер строки и номер столбца.
Например:
Cells(1,1) – обращение к ячейке A1
Чтобы поместить значение или формулу в ячейку:
Cells(2,2)=2 – в ячейку В2 поместить значение 2.
Cells(2,2).Value =2 в ячейку В2 поместить значение 2.
Cells(3,1) = a+b - в ячейку С1 поместить формулу суммы чисел a и b.
Cells(3,2) = cells(1,1).value + cells(1,2).value – в ячейку С2 поместить формулу суммы значений из ячеек А1 и А2.
Cells(i,j) = InputBox(“”) – в ячейку будет помещаться значение, которое мы введем в окошке inputbox.
Cells(i,j).Select – выделить конкретную ячейку
Cells.Select – выделить все ячейки на рабочем листе.
Cells(i,j).Activate – сделать ячейку активной.
Чтобы вывести значение находящееся в ячейке на экран:
Cells(1,1) =3 – в ячейку A1 помещаем значение 3.
Msgbox(cells(1,1)) – значение из ячейки выводится на экран.
Cells(1,1) = к+2 – в ячейку A1 помещаем формулу к+2, где к – заданное число
Msgbox(cells(1,1)) – результат вычисленной формулы, хранящийся в ячейке A1 выводится на экран.
MsgBox() - Выводит на экран окно сообщения (Message Box), и возвращает значение, в зависимости от того, какую кнопку нажал пользователь. Может служить для вывода результатов расчета на экран в виде сообщения.
MsgBox (prompt, buttons, title, helpfile, context)
MsgBox (подсказка, кнопки, заголовок, файл справки, контекст)
prompt (подсказка) – выводимое на экране сообщение.
buttons (кнопки) – константа, определяющая, какие кнопки будут содержаться в данном диалоговом окне.
title (заголовок) – заголовок диалогового окна.
helpfile (файл справки) – имя справочного файла.
context (контекст) – контекст для контекстно-зависимой справки, описывается в том случае, если есть helpfile.
InputBox - функция ввода исходных данных. Выводит диалоговое окно с сообщением и поле для ввода текста пользователя.
Метод Cells делает указанную ячейку активной. Синтаксис метода следующий:
Cells[(N строки, N столбца)]
N строки - номер строки текущего листа Excel,
N столбца – номер столбца текущего листа Excel (при обращении к этому методу столбцы нумеруются).
В данном варианте синтаксиса предполагается, что на активном листе Excel ячейка, находящаяся на пересечении N строки и N столбца, становится активной.
С помощью метода Cells можно сделать активной ячейку, чтобы затем вводить или выводить данные.
Если с помощью этого метода осуществляется ввод данных из ячейки рабочего листа в переменную, то Cells стоит в правой части оператора присваивания, а если осуществляется вывод из переменной в ячейку рабочего листа, то Cells стоит в левой его части.
Структура ввода , с использованием метода Cells следующая:
<
имя
>=Cells (
< имя > - простая переменная или элемент массива.
Структура вывода с использованием метода Cells следующая:
Cells(
< выражение > - любое выводимое значение.
Рассмотрим, пример следующей программы:
Sub ввод_ввывод_Cells()
Cells(5, 1) = "c="
До запуска этого макроса рабочий лист Excel имел вид (см. рис. 13):
А после запуска макроса он выглядит так (см. рис. 14):
Управляющие структуры VBA. Условный оператор. Оператор безусловного перехода
Управляющие структуры позволяют управлять последовательностью выполнения программы. Без операторов управления все операторы программы будут выполняться слева направо и сверху вниз. Рассмотрим одну из управляющих структур VBA – условный оператор .
Условный оператор применяется, когда необходимо выполнить один или группу операторов в зависимости от значения некоторого условия.
Синтаксис условного оператора:
Короткая форма Þ If <условие> Then <оператор>
If < условие > Then
< оператор > /< Группа операторов 1 >
Полная форма ÞIf < условие > Then
< оператор 1 > / < Группа операторов 1 >
< оператор 2> < Группа операторов 2 >
В блок схеме условный оператор изображается так:
Обычно условие является простым сравнением, но оно может быть любым выражением с вычисляемым значением. Это значение интерпретируется как False (Ложь), если оно нулевое, а любое ненулевое рассматривается как True (Истина). Если условие истинно, то выполняются все выражения, стоящие после ключевого слова Then . Если условие ложно, то выполняются все выражения, стоящие после ключевого слова Else .
Допускаются многократно вложенные конструкции, имеющие столько уровней вложения сколько необходимо.
Рассмотри еще одну управляющую структуру - оператор безусловного перехода . Его синтаксис:
GoTo метка ,
где метка – это любая комбинация символов.
Этот оператор принудительно изменяет последовательность выполнения программы. Оператор GoTo передает управление оператору с меткой, т.е. следующим за оператором GoTo будет выполняется оператор, указанный с помощью метки.
Управляющие структуры VBA. Операторы цикла.
Иногда требуется многократно выполнять некоторый набор инструкций автоматически, либо решить задачу по-другому в зависимости от значения переменных или параметров, заданных пользователем во время выполнения. Для этого служат условный оператор и операторы циклы.
Рассмотрим операторы цикла VBA. Цикл с известным числом повторений (цикл с параметром) реализован в VBA с помощью оператора For Next следующей структуры:
For <параметр цикла>= <начальное значение> To <конечное значение>
<операторы VBA>
Next <параметр цикла>
<параметр цикла> – имя (идентификатор) параметра цикла;
<начальное значение> – начальное значение параметра цикла;
<конечное значение> – конечное значение параметра цикла;
<шаг> – шаг изменения параметра цикла (необязательный параметр, если он отсутствует, шаг изменения равен 1);
<операторы VBA>
В блок-схеме этот оператор изображается так:
В теле этого цикла можно использовать оператор Exit For , с помощью которого можно завершить цикл For Next до того, как параметр примет свое конечное значение.
Циклы с неизвестным числом повторений реализуются на VBA с помощью операторов Do While … Loop, Do Until … Loop, Do … Loop While, Do … Loop Until .
Рассмотрим структуру оператора Do While … Loop.
Do While <условие>
<операторы VBA>
Здесь <условие> – логическое выражение;
<операторы VBA> - операторы VBA, реализующие тело цикла.
<условие>, если <условие> принимает значение Истина(True), то выполняются операторы до служебного слова Loop. Затем вновь проверяется условие, и так продолжается до тех пор, пока условие не станет ложным(False).
Рассмотрим структуру оператора Do Until … Loop.
Do Until <условие>
<операторы VBA>
Оператор выполняется следующим образом. Проверяется <условие>, если <условие> принимает значение Ложь(False), то выполняются операторы до служебного слова Loop. Затем вновь проверяется условие, и так продолжается до тех пор, пока условие не станет истинным (True).
В блок схеме этот оператор изображается так:
Мы рассмотрели операторы цикла, которые реализуют цикл с предусловием.
Рассмотрим, операторы цикла, которые реализуют цикл с постусловием. Это операторы Do … Loop While и Do … Loop Until. Структура этих операторов следующая:
<операторы VBA>
Loop Until <условие>
<условие>, если <условие> принимает значение Ложь(False), то опять выполняются операторы до служебного слова Loop. Так продолжается до тех пор, пока <условие> не станет истинным (True).
В блок схеме этот оператор изображается так:
<операторы VBA>
Loop While <условие>
Оператор выполняется следующим образом. Выполняются операторы до служебного слова Loop. Затем проверяется <условие>, если <условие> принимает значение Истина(True), то опять выполняются операторы до служебного слова Loop. Так продолжается до тех пор, пока <условие> не станет ложным (False).
В блок схеме этот оператор изображается так:
В VBA существует оператор, позволяющий осуществить досрочный выход из циклов с неизвестным числом повторений. Для выхода из этих циклов нужно использовать оператор Exit Do .
В этой статье Вы научитесь создавать окно сообщения в VBA Excel, которое может отображать различную информацию.
Функция MsgBox отображает окно сообщения и ждет, когда пользователь нажмет кнопку, а затем действие будет выполнено на основе кнопки, нажатой пользователем.
Синтаксис
MsgBox(prompt[,buttons][,title][,helpfile,context])
Параметр Описание
- Запрос - обязательный параметр. Строка, отображаемая в виде сообщения в диалоговом окне. Максимальная длина приглашения - около 1024 символов. Если сообщение распространяется более чем на одну строку, то строки могут быть разделены с использованием символа возврата каретки (Chr (13)) или символа перевода строки (Chr (10)) между каждой строкой.
- Кнопки - необязательный параметр. Числовое выражение, которое указывает тип отображаемых кнопок, стиль значка для использования, идентификатор кнопки по умолчанию и модальность окна сообщения. Если оставить пустым, значение по умолчанию для кнопок равно 0.
- Заголовок - необязательный параметр. Строковое выражение отображается в строке заголовка диалогового окна. Если заголовок оставлен пустым, имя приложения помещается в строку заголовка.
- Файл справки - необязательный параметр. Выражение String, которое идентифицирует файл справки, который будет использоваться для предоставления контекстно-зависимой справки для диалогового окна.
- Контекст - необязательный параметр. Числовое выражение, которое идентифицирует номер контекста справки, присвоенный автору справки, в соответствующий раздел справки. Если контекст предоставлен, также должен быть предоставлен справочный файл.
Параметр Buttons может принимать любое из следующих значений:
- 0 vbOKOnly - отображает только кнопку OK.
- 1 vbOKCancel - отображает кнопки «ОК» и «Отмена».
- 2 vbAbortRetryIgnore - отображает кнопки отмены, повтора и игнорирования.
- 3 vbYesNoCancel - отображает кнопки «Да», «Нет» и «Отмена».
- 4 vbYesNo - отображает кнопки «Да» и «Нет».
- 5 vbRetryCancel - отображает кнопки повтора и отмены.
- 16 vbCritical - отображает значок критического сообщения.
- 32 vbQuestion - отображает значок предупреждения.
- 48 vbExclamation - отображает значок предупреждающего сообщения.
- 64 vbИнформация. Отображает значок информационного сообщения.
- 0 vbDefaultButton1 - первая кнопка по умолчанию.
- 256 vbDefaultButton2 - вторая кнопка по умолчанию.
- 512 vbDefaultButton3 - Третья кнопка по умолчанию.
- 768 vbDefaultButton4 - Четвертая кнопка по умолчанию.
- 0 vbApplicationModal Application modal - текущее приложение не будет работать, пока пользователь не ответит на сообщение.
- 4096 vbSystemModal System modal - все приложения не будут работать, пока пользователь не ответит на сообщение.
Вышеуказанные значения логически разделены на четыре группы: первая группа (от 0 до 5) указывает кнопки, которые будут отображаться в окне сообщения. Вторая группа (16, 32, 48, 64) описывает стиль значка, который будет отображаться, в третью группу (0, 256, 512, 768) указывает на то, какая кнопка должна быть по умолчанию, а четвертую группу (0, 4096) определяет модальность окна сообщения.
Возвращаемые значения
Функция MsgBox может возвращать одно из следующих значений, которое может использоваться для идентификации кнопки, которую пользователь нажал в окне сообщения.
- 1 - нажата кнопка vbOK - OK.
- 2 - vbCancel - нажата кнопка Отмена
- 3 - vbAbort - нажата кнопка Abort
- 4 - vbRetry - нажата кнопка Retry
- 5 - vbIgnore - нажата кнопка Ignore
- 6 - vbYes - нажата кнопка «Да»
- 7 - vbNo - Нет щелчка
Sub MessageBox_Demo() "Простое сообщение MsgBox ("Привет") "Сообщение с заголовком и кнопками да, нет и отмена a = MsgBox("Вам нравится синий цвет", 3, "Выберите ответ") "Код нажатой кнопки MsgBox ("Значение ответа " & a) End Sub
MsgBox по шагам
Шаг 1 - Вышеуказанная функция может быть выполнена либо нажатием кнопки «Выполнить» в окне VBA, либо нажатием на кнопку, которую Вы сами добавили на лист Excel.
Шаг 2 - Простой текстовый ящик отображается с сообщением «Добро пожаловать» и кнопкой «ОК»