Windows. Вирусы. Ноутбуки. Интернет. Office. Утилиты. Драйверы

Осуществляется с помощью встроенных функций InputBox, MsgBox, с помощью изменения определенных свойств определенных объектов или применения к ним соответствующих методов.

Ввод данных

Ввод значений переменных может осуществляться:

    С помощью функции InputBox , которая при выполнении программы выводит на экран свое собственное окно. Возвращаемое функциейInputBoxзначение имеет типstring. Поэтому для использования введенного значения как числовой переменной необходимо дополнительно преобразовать его к числовому типу с помощью функцииVal. Например, для ввода значения числа 5,25 в переменнуюанеобходимо записать следующую строку программного кода:

a = Val(InputBox("Введите а", "Ввод данных"))

2) С помощью текстового окна TextBox . На форме должно присутствовать текстовое окно, к примеру,Text1, а в событийной процедуре, например, для щелчка по командной кнопке, должен быть записан программный код, в котором используется свойствоtextобъектаText1:

Private Sub Command1_Click()

a = Val(Text1.text)

Свойство textобъектаText1, также имеет строковое значение, поэтому необходимо его преобразование в числовое значение с помощью функцииVal.

Вывод результатов

Для вывода результатов в VB существуют различные способы.

    Основным оператором вывода значений переменных в языке VB является оператор Print, который в терминах объектно-ориентированного программирования рассматривается какметод , действующий на объект, на который и будут выводиться значения, указанные в списке. Основными объектами, для которых имеется методPrint, являются формаForm, и графическое окноPictureBox.

Если объект, к которому применяется метод Print, не указан, то список значений выводится на активную форму. Например, после выполнения строки программного кода:

    Вывести значение переменной можно с помощью функции MsgBox, которая при выполнении активизирует свое собственное окно сообщений на экране.

Private Sub Command1_Click()

    Вывод можно оформить в текстовое окно TextBox, изменяя его свойствоText

Text1.text=str(a)

При этом надо помнить, что свойство Textработает со строкой символов, поэтому выводимое число преобразуется в строку символов с помощью функцииstr.

    Вывод можно оформить на метку Label, изменяя ее свойствоCaption:

Label1.Caption=”Результат” & str(a)

Значок & (+) означает сцепление двух строковых переменных.

Функция Format

При выводе результатов для большей наглядности часто используется функция Format, которая возвращает значение типаVariant (String),содержащее выражение, отформатированное согласно инструкциям, заданным в описании формата.

Синтаксис

Format (Expression[, Format[, FirstDayOfWeek[, FirstWeekOfYear]]])

Expression- обязательный аргумент - любое допустимое выражение, подлежащее форматированию.

Format - необязательный аргумент - любое допустимое именованное или определяемое пользователем выражение формата (шаблон формата).

При форматировании чисел без указания шаблона формата функция Format выдает тот же результат, что и функцияStr, т.е. возвращает строку, представляющую число. Отличие состоит в том, что при преобразовании положительного числа с помощью функцииFormatпробел в начале строки (на месте знака числа) теряется, а при преобразовании с помощью функцииStr останется

Примеры шаблонов форматов, применяемых для создания пользовательских форматов числовых величин

Print Format (6.789, "00.0000") " возвратит 06,7890

Print Format (6.789, "##.0000") " возвратит 6,7890

Метод 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 - Простой текстовый ящик отображается с сообщением «Добро пожаловать» и кнопкой «ОК»

В VBA ввод и вывод информации (для взаимодействия с пользователем) можно осуществлять в диалоговых окнах. Диалоговое окно ввода значений реализуется встроенной функцией InputBox. В окне ввода, реализованное функцией InputBox, отображается поле для ввода значения переменной, в которое пользователь должен ввести определенное значение. Далее пользователь должен нажать кнопку ОК.

Функция InputBox() имеет следующий синтаксис:

Имя_Переменной = InputBox(Prompt, , , , , , )

Где аргументы: Prompt или Сообщение - обязательный аргумент, который задает в диалоговом окне информационное сообщение. Все остальные аргументы являются необязательными. Title задает заголовок окна. На рис 1 приведен модуль, в котором применена функция InputBox.


Рис. 1.

После выполнения модуля 2 появляется окно сообщения "Ввод значений переменных" (рис.2), в котором нужно ввести число и нажать кнопку ОК. В окне диалога (Рис.2), реализованном функцией InputBox (рис 1), отображаются: Заголовок окна - Ввод значений переменных; Сообщение - Введите число; Кнопки (по умолчанию) - ОК и Cancel; Поле предназначенное для ввода значений переменной.


Рис. 2.

Для вывода информации применяются диалоговые окна сообщений, реализуемые оператором MsgBox или функцией MsgBox() . MsgBox может использоваться как оператор. Оператор MsgBox осуществляет вывод информации в диалоговом окне и устанавливает режим ожидания нажатия кнопки пользователем.

Оператор MsgBox имеет следующий синтаксис:
MsgBox Prompt, , , ,

Где аргументы: Prompt или Сообщение - обязательный аргумент, задающий в окне выводимое информационное сообщение. Все остальные аргументы являются необязательными. Buttons - Кнопки, которые можно использовать в диалоговом окне вывода сообщений. В окне сообщений могут применяться различные кнопки (ОК, Отмена и т.д.). Если не указывать, какие кнопки необходимо отображать в окне сообщений, то по умолчанию отображается кнопка ОК. Кроме того, в диалоговых окнах вывода сообщений можно использовать различные значки (vbQuestion - значок вопросительного знака, vbExclamation - значок восклицательного знака и т.д.).

Модуль, в котором MsgBox используется как оператор, приведен на рис. 3 (оператор MsgBox "3", vbOKCancel, "Вывод значений").



Рис. 3

При запуске модуля 4 на исполнение отображается окно сообщений "Вывод значений" (рис. 4), в котором необходимо нажать кнопку ОК. В окне (Рис.4), реализованном оператором MsgBox (Рис. 3), отображаются: Заголовок окна - Вывод значений; Сообщение - 3; Кнопки - ОК и Отмена.


Рис. 4

Например, для вычисления функции типа y = 5 x 2 + 7 x + 9, можно использовать функцию InputBox и оператор MsgBox (рис. 5)



Рис. 5

После выполнения модуля 5 отображается окно ввода


Рис. 6

После ввода числа, например 789, и щелчка на кнопке ОК, появляется окно сообщения, в котором отображается результат вычисления функции у = 5 x 2 + 7 x + 9.


Рис. 7

MsgBox можно использовать в качестве функции. Функция MsgBox() имеет следующий синтаксис: MsgBox (Prompt, , , , ). В этом случае в окне диалога используют несколько различных кнопок. При нажатии кнопки в окне диалога функция MsgBox() возвращает значение типа Integer, которое зависит от того, какая из кнопок была нажата в диалоговом окне вывода сообщений.

Функция MsgBox позволяет выводить информацию на экран в виде окна.

Общий вид функций:

MsgBox сообщение

[,код кнопки [,заголовок]]

сообщение – определяет значение выражения, которое будет выводиться в окне сообщения. Это выражение может быть текстом, который нужно взять в кавычки, и (или) переменной. Для вывода в одном окне текста сообщений и значения переменной, следует использовать операцию объединение строк (&).

Dim Pi As Single

MsgBox " pi=" & Pi

Результат работы макроса:

код кнопки – определяет какие кнопки и пиктограммы будут выводиться в окне сообщений. Если этот параметр не указан, в окне сообщения находится только кнопка Ок .

заголовок - содержит текст, который отображается в строке заголовка сообщения. Если этот аргумент не задан, в заголовок помещается строка Microsoft Excel .

Dim Pi As Single

MsgBox Pi,"Это число Pi"

Ввод информации в VBA можно осуществить с помощью окна ввода:

Функция InputBox создает окно ввода:

InputBox(сообщение

[,заголовок[,значе-ние]])

сообщение– строка символов или строковая переменная, содержащая текстовое сообщение пользователю;

заголовок – текст, который отображается в строке заголовка сообщения;

значение – определяет значения, отображаемые по умолчанию в текстовом поле диалогового окна.

ЗАДАЧА 2. Угол задан в радианах. Выполнить перевод в градусную меру.

Const pi = 3.14159

Dim g As Integer

Dim m As Integer

Dim s As Integer

r = InputBox("r=", "Величина угла в радианах", pi / 4)

g = Fix(r * 180 / pi)

m = Fix((r*180/pi-g)*60)

s=Fix(((r*180/pi-g)*60-m)*60)

MsgBox g & " градусов" & m & " минут" & s & " секунд"

18. Условный оператор

Условные операторы применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие.

Условный оператор, соответствующий приведенной блок-схеме, имеет вид:

If выражение Then

оператор1

оператор2

В данной конструкции выражение должно иметь логический тип.

Работает оператор так. Вычисляется значение выражения. Если оно имеет значение true, выполняется оператор1, в противном случае (выражение имеет значение false) – оператор2.

Если в зависимости от условия выполняется некоторое действие, а в противном случае ничего не происходит, то алгоритм имеет вид:

Условный оператор в этом случае имет конструкцию:

If выражение Then

оператор

Эту запись можно назвать «пропуск оператора else».

Здесь оператор либо выполняется, либо пропускается, в зависимости от значения выражения.

Допускаются многократно вложенные операторы If...Then...Else, имеющие столько уровней вложения, сколько потребуется.

If выражение1 Then

операторы1

Elseif выражение2 then

операторы2

Elseif выражение3 then

операторы3

Elseif выражениеN then

операторыN

операторы

Для облегчения чтения программы вместо многократно вложенных операторов, иногда предпочтительнее использовать оператор Select Case

Select Case <выражение >

Case <условие выбора 1 >

<операторы 1 >

Case <условие выбора 2 >

<операторы 2 >

……………..

Case <условие выбора N >

<операторы N >

<операторы >

19. Примеры программ

ЗАДАЧА 3. Известны коэффициенты а, b и с квадратного уравнения ax 2 +bx +c =0. Вычислить корни квадратного уравнения.

Входные данные: a, b, c.

Выходные данные: х 1 , х 2 .

Sub prim7()

Dim x1 As Single

Dim x2 As Single

InputBox("A=","Коэффициенты квадратного уравнения", 2)

InputBox("B="," Коэффициенты квадратного уравнения", 3)

InputBox("C="," Коэффициенты квадратного уравнения",-2)

d = b ^ 2 - 4 * a * c

If d < 0 Then

MsgBox "Действительных решений нет", vbCritical

x1=(-b+Sqr(d))/(2*a)

x2=(-b-Sqr(d))/(2*a)

MsgBox "X1=" & x1 & Chr(13) & "X2=" & x2, vbInformation

ЗАДАЧА 4. Дано вещественное число x . Для функции, график которой приведен ниже вычислить y =f (x ).

If x <= -1 Then

ElseIf x > 1 Then

ЗАДАЧА 5. Даны вещественные числа x и y . Определить принадлежит ли точка с координатами (x ; y ) заштрихованной части плоскости.

Точка с координатами (x ;y ) принадлежит заштрихованной части плоскости, если:

If y <= 2 * x + 2 And

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ: