
- •Понятие алгоритма
- •Изображение алгоритма в виде блок-схемы
- •Программирование на языке
- •5. Представление вещественного числа
- •7. Переменные в vba
- •8. Константы в vba
- •9. Операции и функции языка vba
- •10. Структура программы
- •11. Правила записи операторов
- •14. Ввод и вывод данных с использованием рабочего листа ms Excel
- •17. Ввод и вывод данных с использованием встроенных функций vba
- •18. Условный оператор
- •20. Операторы циклической структуры
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •21. Решение задач с использованием циклов
- •22. Обработка массивов
- •23. Ввод-вывод элементов массива
17. Ввод и вывод данных с использованием встроенных функций vba
Функция MsgBox позволяет выводить информацию на экран в виде окна.
Общий вид функций:
MsgBox сообщение
[,код кнопки [,заголовок]]
сообщение – определяет значение выражения, которое будет выводиться в окне сообщения. Это выражение может быть текстом, который нужно взять в кавычки, и (или) переменной. Для вывода в одном окне текста сообщений и значения переменной, следует использовать операцию объединение строк (&).
ПРИМЕР.
Option Explicit
Sub prim5()
Dim Pi As Single
Pi = 3.14159
MsgBox " pi=" & Pi
End Sub
Результат работы макроса:
код кнопки – определяет какие кнопки и пиктограммы будут выводиться в окне сообщений. Если этот параметр не указан, в окне сообщения находится только кнопка Ок.
заголовок - содержит текст, который отображается в строке заголовка сообщения. Если этот аргумент не задан, в заголовок помещается строка Microsoft Excel.
ПРИМЕР.
Sub prim6()
Dim Pi As Single
Pi = 3.14159
MsgBox Pi,"Это число Pi"
End Sub
Ввод информации в VBA можно осуществить с помощью окна ввода:
Функция InputBox создает окно ввода:
InputBox(сообщение
[,заголовок[,значе-ние]])
сообщение – строка символов или строковая переменная, содержащая текстовое сообщение пользователю;
заголовок – текст, который отображается в строке заголовка сообщения;
значение – определяет значения, отображаемые по умолчанию в текстовом поле диалогового окна.
ЗАДАЧА 2. Угол задан в радианах. Выполнить перевод в градусную меру.
Sub prim2()
Const pi = 3.14159
Dim r As Single
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 & " секунд"
End Sub
18. Условный оператор
Условные операторы применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие.
Условный оператор, соответствующий приведенной блок-схеме, имеет вид:
If выражение Then
оператор1
Else
оператор2
EndIf
В данной конструкции выражение должно иметь логический тип.
Работает оператор так. Вычисляется значение выражения. Если оно имеет значение true, выполняется оператор1, в противном случае (выражение имеет значение false) – оператор2.
Если в зависимости от условия выполняется некоторое действие, а в противном случае ничего не происходит, то алгоритм имеет вид:
Условный оператор в этом случае имет конструкцию:
If выражение Then
оператор
EndIf
Эту запись можно назвать «пропуск оператора else».
Здесь оператор либо выполняется, либо пропускается, в зависимости от значения выражения.
Допускаются многократно вложенные операторы If...Then...Else, имеющие столько уровней вложения, сколько потребуется.
If выражение1 Then
операторы1
Elseif выражение2 then
операторы2
Elseif выражение3 then
операторы3
……………
Elseif выражениеN then
операторыN
Else
операторы
EndIf
Для облегчения чтения программы вместо многократно вложенных операторов, иногда предпочтительнее использовать оператор Select Case
Select Case <выражение>
Case <условие выбора 1>
<операторы 1>
Case <условие выбора 2>
<операторы 2>
……………..
Case <условие выбора N>
<операторы N>
Case Else
<операторы>
End Select
19. Примеры программ
ЗАДАЧА 3. Известны коэффициенты а, b и с квадратного уравнения ax2+bx+c=0. Вычислить корни квадратного уравнения.
Входные данные: a, b, c.
Выходные данные: х1, х2.
Sub
prim7()
Dim a As Single
Dim b As Single
Dim c As Single
Dim d As Single
Dim x1 As Single
Dim x2 As Single
a = _
InputBox("A=","Коэффициенты квадратного уравнения", 2)
b = _
InputBox("B="," Коэффициенты квадратного уравнения", 3)
c = _
InputBox("C="," Коэффициенты квадратного уравнения",-2)
d = b ^ 2 - 4 * a * c
If d < 0 Then
MsgBox "Действительных решений нет", vbCritical
Else
x1=(-b+Sqr(d))/(2*a)
x2=(-b-Sqr(d))/(2*a)
MsgBox "X1=" & x1 & Chr(13) & "X2=" & x2, vbInformation
End If
End Sub
ЗАДАЧА 4. Дано вещественное число x. Для функции, график которой приведен ниже вычислить y=f(x).
Sub prim4()
Dim x As Single
Dim y As Single
x = Cells(1, 2)
If x <= -1 Then
y = 1
ElseIf x > 1 Then
y = 2
Else
y = Abs(x)
End If
Cells(2, 2) = y
End Sub
ЗАДАЧА 5. Даны вещественные числа x и y. Определить принадлежит ли точка с координатами (x; y) заштрихованной части плоскости.
Точка с координатами (x;y) принадлежит заштрихованной части плоскости, если:
Sub prim5()
Dim x As Single
Dim y As Single
x = Cells(1, 2)
y = Cells(2, 2)
If y <= 2 * x + 2 And
y <= -2 * x + 2 And
y > -1 Then
MsgBox "Yes"
Else
MsgBox "No"
End If
End Sub