- •Содержание
- •4. Программирование на vba…………………… ………………………...13
- •1. Цель и задачи курса
- •2. Общие рекомендации к выполнению и требования к оформлению контрольной работы
- •3. Темы заданий для выполнения контрольной работы
- •4. Программирование на vba for ms Excel
- •4.1. Создание программы
- •4.6. Типы данных в vba
- •4.7. Переменные в vba
- •4.8. Константы в vba
- •4.9. Операции и функции языка vba
- •4.14. Понятие алгоритма
- •4.15. Изображение алгоритма в виде блок-схемы
- •4.16. Ввод и вывод данных с использованием рабочего листа
- •4.17. Ввод и вывод данных с использованием встроенных функций
- •InputBox(сообщение [,заголовок[,значение]])
- •4.18. Условный оператор
- •4.19. Примеры программ
- •4.20. Операторы циклической структуры
- •4.20.1. Оператор цикла с предусловием
- •20.2. Оператор цикла с постусловием
- •4.20.3. Безусловный цикл
- •4.21. Решение задач с использованием циклов
- •4.22. Обработка массивов
- •4.22.1. Ввод-вывод элементов массива
- •4.22.2. Основные алгоритмы обработки массивов
- •4.23. Примеры программ
4.16. Ввод и вывод данных с использованием рабочего листа
Cells(n, m) – ячейка активного листа, находящаяся на пересечении строки с номером n и столбца с номером m.
Например (рис. 9),
Ввод данных из рабочего листа |
Вывод данных в рабочий лист |
имя_переменной=Cells(n, m) a = Cells(2, 2) b = Cells(3, 2) c = Cells(4, 2) |
Cells(n, m)=имя_переменной Cells(5, 2) = p Cells(6, 2) = S |
Составим программу для задачи 1: Sub prim1() Dim a As Single Dim b As Single, c As Single Dim S As Single, p As Single a = Cells(2, 2) b = Cells(3, 2) c = Cells(4, 2) p = (a + b + c) / 2 S=(p*(p-a)*(p-b)*(p-c))^0.5 Cells(5, 2) = 2*p Cells(6, 2) = S End Sub |
Рис. 9. |
4.17. Ввод и вывод данных с использованием встроенных функций
Выводить информацию на экран в виде окна позволяет функция
MsgBox сообщение [,код кнопки [,заголовок]]
Здесь,
сообщение – определяет значение выражения, которое будет выводиться в окне сообщения. Это выражение может быть текстом, который нужно взять в кавычки, и (или) переменной. Для вывода в одном окне текста сообщений и значения переменной, следует использовать операцию объединение строк (&). Например,
Sub prim5()
Dim Pi As Single
Pi = 3.14159
MsgBox " pi=" & Pi
End Sub
Результат работы макроса на рис. 10.
код кнопки – определяет какие кнопки и пиктограммы будут выводиться в окне сообщений. Если этот параметр не указан, в окне сообщения находится только кнопка Ок;
заголовок - содержит текст, который отображается в строке заголовка сообщения. Если этот аргумент не задан, в заголовок помещается строка Microsoft Excel. Например (рис. 11),
Sub prim6()
Dim Pi As Single
Pi = 3.14159
MsgBox Pi,"Это число Pi"
End Sub
Рис. 10. Рис. 11.
Ввод информации можно осуществить с помощью окна ввода (рис. 12):
Рис. 12
которое создается функцией
InputBox(сообщение [,заголовок[,значение]])
где,
сообщение – строка символов или строковая переменная, содержащая текстовое сообщение пользователю;
заголовок – текст, который отображается в строке заголовка сообщения;
значение – определяет значения, отображаемые по умолчанию в текстовом поле диалогового окна.
ЗАДАЧА 2. Угол задан в радианах. Выполнить перевод в градусную меру.
Sub prim2()
Const pi = 3.14159
Dim r As Single
Dim g As Integer, m As Integer, s As Integer
'Ввод данных (рис.13)
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)
'Вывод результатов (рис.14)
MsgBox g & " градусов" & m & " минут" & s & " секунд"
End Sub
Рис. 13 Рис. 14
4.18. Условный оператор
Условные операторы применяются, когда в зависимости от некоторого условия необходимо выполнить либо одно, либо другое действие.
Рис. 15. Рис. 16.
Условный оператор, соответствующий приведенной блок-схеме (рис. 15), имеет вид:
If выражение Then
оператор1
Else
оператор2
EndIf
В данной конструкции выражение должно иметь логический тип.
Работает оператор так. Вычисляется значение выражения. Если оно имеет значение true, выполняется оператор1, в противном случае (выражение имеет значение false) – оператор2.
Если в зависимости от условия выполняется некоторое действие, а в противном случае ничего не происходит (рис. 16), то условный оператор в этом случае имеет конструкцию:
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
