Ввод/вывод информации средствами VBA можно организовать двумя способами:
1) непосредственный ввод в ячейки рабочего листа с клавиатуры;
2) ввод с использованием диалоговых окон.
Примеp 6. Присвоить переменной X значение свойства Value ячейки C5.
Способ 1. X=Cells(5,3).Value
Способ 2. X=Cells(5,3)
Способ 3. X=Range(“C5”)
Пример 7. Присвоить переменной X значение ячейки, номер строки и столбца которой определяется значениями выражения 1+i и 1+j соответственно.
X=Cells(1+i,1+j)
Пример 8. В ячейке D8 вывести значение выражения x+2y.
Cells(8,4)=x+2*y
Второй способ организации ввода/вывода предполагает использование окна ввода InputBox (для ввода данных с клавиатуры) и окна сообщений MsgBox (для вывода информации на экран).
Здесь и в последующем необязательные элементы заключены в квадратные скобки. При наборе текстов программ квадратные скобки задавать не следует.
Синтаксис диалоговых окон:
MsgBox (prompt [,buttons] [,title] [helpfile, context])
InputBox (prompt [,title] [,default] [,xpoz] [,ypoz] [helpfile, context])
Аргументы:
prompt — строковое выражение, которое выводится в диалоговом окне. Если оно состоит из нескольких строк, в качестве разделителя их используют символы возврата каретки (Chr(13)), перевода строки (Chr(10)) или комбинацию этих символов (Chr(13)&Chr(13));
title — строковое выражение, отображаемое в строке заголовка окна. По умолчанию в строку заголовка помещается имя приложения;
helpfile — строковое выражение, задающее имя файла справки, содержащего справочную информацию о данном диалоговом окне. В случае указания этого аргумента необходимо задать context, определяющий номер соответствующего раздела справочной системы;
default — строковое выражение, размещаемое в поле ввода как значение по умолчанию;
xpos — расстояние по горизонтали от левого края экрана до левой границы окна. По умолчанию диалоговое окно центрируется по горизонтали;
ypos — расстояние по вертикали от верхнего края экрана до верхней границы окна. По умолчанию диалоговое окно позиционируется приблизительно на одну треть высоты экрана;
buttons — целое число, представляющее собой значение, которое определяет число и тип отображаемых в диалоговом окне кнопок, вид используемого значка, основную кнопку, модальность окна сообщений. Символические константы и их числовые значения, применяемые в качестве параметра buttons, приведены в табл. 11.1.
Таблица 11.1
Символические константы аргумента buttons
Константа | Значение | Описание | |
vbOKOnly | Только кнопка "OK" (по умолчанию) | ||
vbOKCancel | Кнопки "OK" и "Отмена" (Cancel) | ||
vbAbortRetryIgnore | Кнопки "Прервать" (Abort), "Повторить" (Retry) и "Пропустить" (Ignore) | ||
vbYesNoCancel | Кнопки "Да" (Yes), "Нет" (No) и "Отмена" (Cancel) | ||
vbYesNo | Кнопки "Да" и "Нет" | ||
vbRetryCancel | Кнопки "Повторить" и "Отмена" | ||
vbCritical | Значок "Критическое сообщение" | ||
vbQuestion | Значок "Предупреждающий запрос" | ||
vbExclamation | Значок "Предупреждающее сообщение" | ||
vbInformation | Значок "Информационное сообщение" | ||
vbDefaultButton1 | Основная — первая кнопка (по умолчанию) | ||
vbDefaultButton2 | Основная — 2-я кнопка | ||
vbDefaultButton3 | Основная — 3-я кнопка | ||
vbDefaultButton4 | Основная — 4-я кнопка | ||
vbApplicationModal | Модальное окно сообщения на уровне приложения (по умолчанию) | ||
vbSystemModal | Модальное окно сообщения на уровне системы |
Функция MsgBox возвращает одно из значений, приведенных в табл. 11.2.
Таблица 11.2
Значения функции MsgBox
Константа | Значение | Нажатая кнопка |
vbOK | OK | |
vbCancel | Отмена (Cancel) | |
vbAbort | Прервать (Abort) | |
vbRetry | Повторить (Retry) | |
vbIgnore | Пропустить (Ignore) | |
vbYes | Да (Yes) | |
vbNo | Нет (No) |
Пример 9. Создать программу для вычисления значения функции y(х)=3х2+2x-1. Значение переменной х ввести с клавиатуры при помощи окна ввода InputBox. Результат расчета вывести при помощи окна сообщения MsgBox (вывести в окне значок «Информационное сообщение»). Для заголовка окон диалога использовать строку вида: «Функция Y(X)= 3X^2 + 2X -1».
Решение.
В окне редактора программного кода VBA необходимо записать код процедуры (рис. 11.2). Для выполнения программы использовать команду меню Run – Run Sub/UserForm или клавишу F5. В процессе выполнения ввести значение переменной x (рис. 11.3) и оценить полученный результат (рис. 11.4).
Рис. 11.2. Код программы на языке VBA
Рис 11.3. Окно диалога InputBox для ввода значения переменной x
Рис. 11.4. Окно диалога MsgBox для вывода полученного результата
Пример 10. Создать процедуру для построения графика функции y(x)=2x+5sin(x/2), x Î [-10; 10].
Решение. Предварительно подготовить исходные данные на рабочем листе, построив таблицу значений функции в диапазоне А1:В22 (рис. 11.5).
Рис. 11.5. Таблица значений функции
В редакторе VBA в отдельном модуле записать следующий программный код:
Public Sub Grafik()