Рассмотрим три основных способа вывода данных.
1. Вывод в диалоговое окно с помощью команды MsgBox:
MsgBox "Сообщение",, "Заголовок"
В результате выполнения этой команды на экране появляется диалоговое окно Заголовок, содержащее указанный текст Сообщения. Выполнение программы приостанавливается до нажатия пользователем кнопки ОК.
Пример: MsgBox y, , "Результат"
В данном случае в качестве выводимого в окно Результат сообщения задано текущее значение переменной y:
Простейший формат записи оператора MsgBox:
MsgBox "Сообщение"
Обычно сообщение включает в себя не только выводимое значение, но и комментарий, который заключается в кавычки. Для слияния нескольких фрагментов в одну строку в операторе вывода их разделяют знаком &.
Пример: MsgBox “Значение диаметра =” & d
В результате на экране появится следующее диалоговое окно:
2. Вывод данных на лист рабочей книги Excel с использованием инструкции Сells(i, j). В этом случае в отличие от ранее рассмотренного она выступает как команда вывода:
Cells(i, j) = "Сообщение".
В результате этой команды указанное Сообщение помещается в ячейку с адресом, определяемым номером строки i и номером столбца j.
Примеры:
Cells(1, 1) = “x=” ‘Вывод в ячейку A1 текста x=
Cells(1, 2) = x ‘Вывод в ячейку B1 текущего значения переменной 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 использовать не рекомендуется.