Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сидорова-004.С34.doc
Скачиваний:
91
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

3.3. Генерирование случайных чисел

Для генерирования случайного числа используется функция Rnd, которая возвращает значение в диапазоне [0; 1[.

Простейший формат записи:

x = Rnd

Для формирования целого случайного числа x в диапазоне [Min; Max] можно использовать формулу: x = Fix((Max – Min +1) * Rnd + Min).

Пример:

z = Fix(101 * Rnd – 50) 'Генерирование числа z в диапазоне [–50; +50].

Каждый раз при запуске VBA формируется одна и та же последовательность случайных чисел. Чтобы сформировать другую последовательность, нужно переустановить базу генератора случайных чисел с помощью оператора Randomize [база], который обычно указывается в начале программы.

В качестве базы целесообразно использовать функцию Timer, которая возвращает число секунд текущего времени суток:

Randomize Timer

3.4. Операторы вывода данных

Вывод информации на экран монитора осуществляется тремя способами.

1. Вывод в диалоговое окно с помощью команды MsgBox:

MsgBox "Сообщение", , "Заголовок"

В результате выполнения этой команды на экране появляется диалоговое окно Заголовок (рис. 7), содержащее указанный текст Сообщения. Выполнение программы приостанавливается до нажатия пользователем кнопки ОК.

Пример: MsgBox y , , "Результат"

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

Простейший формат:

MsgBox "Сообщение" '(без заголовка окна)

Обычно сообщение включает в себя не только выводимое значение, но и соответствующий комментарий, который заключается в кавычки. Для объединения нескольких элементов выводного списка в одну строку в операторе вывода их разделяют знаком & (амперсанд), слева и справа от которого обязательно ставят пробел.

Пример: MsgBox "Значение диаметра =" & d

2. Вывод данных на лист рабочей книги Excel с использованием инструкции Сells(i, j), которая в этом случае выступает как команда вывода (в отличие от рассмотренной в п. 3.2 команды ввода):

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 с двумя десятичными знаками;

MsgBox Format(z, "#0.000") 'Вывод переменной z с тремя десятичными знаками.

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

Cells(i, j).NumberFormat = "0.000"

Для цветового оформления ячеек на листе Excel можно использовать следующие команды:

Cells(i, j).Font.Color = RGB(r, g, b) 'Для установки цвета шрифта в ячейке;

Cells(i, j).Interior.Color = RGB(r, g, b) 'Для установки цвета фона (заливки) ячейки,

где r, g, b – интенсивность (целое число в диапазоне от 0 до 255) соответственно красной, зеленой и синей составляющих определяемого цвета. Необходимые значения r, g, b можно узнать в режиме выбора цветового спектра в любом приложении Windows. Например, инструкция Cells(1, 2).Font.Color = RGB(255, 0, 0) устанавливает в ячейке B1 красный цвет шрифта.

Для изменения цвета одновременно в нескольких ячейках необходимо в приведенных выше командах вместо указания одной ячейки Cells(i, j) задать диапазон требуемых ячеек с помощью ключевого слова Range, например:

Range("D3:F7").Interior.Color = RGB(190, 255, 202) 'Заливка ячеек с D3 по F7 светло-зеленым цветом.

Во всех командах ввода и вывода данных на лист Excel вместо инструкции Cells(i, j) можно использовать другие формы обращения к требуемой ячейке. Например, все приведенные ниже способы вывода значения переменной x в ячейку B1 равнозначны:

Cells(1, 2) = x

[B1] = x

Range("B1") = x