Лекция8(4) Программирование на VBA
.pdfРезультат работы макросов
Макрос «Х»
Sub Х()
'
'Х Макрос
'Макрос записан 26.10.2005 (timuhina)
Range("A1").Select ActiveCell.FormulaR1C1 = "Х" Range("A2").Select ActiveCell.FormulaR1C1 = "-3" Range("A3").Select ActiveCell.FormulaR1C1 = "-2.5" Range("A2:A3").Select
Selection.AutoFill Destination:=Range("A2:A14"), Type:=xlFillDefault Range("A2:A14").Select
End Sub
Лекция 8. Информатика, часть 2 |
12 |
Макрос «У»
Sub У()
'У Макрос
'Макрос записан 26.10.2005 (timuhina)
''
Range("B1").Select ActiveCell.FormulaR1C1 = "У" Range("B2").Select ActiveCell.FormulaR1C1 = "=RC[-1]*RC[-1]" Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B14"), Type:=xlFillDefault Range("B2:B14").Select
End Sub
Лекция 8. Информатика, часть 2 |
13 |
Макрос «График»
Sub График()
'
'График Макрос
'Макрос записан 26.10.2005 (timuhina)
Range("A1:B14").Select Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("Лист2").Range("A1:B14"), PlotBy:=
_
xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Лист2" With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "График функции"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False End With
End Sub
Лекция 8. Информатика, часть 2 |
14 |
Напишем программу для рассмотренного ранее алгоритма линейной структуры
ПРИМЕР.Вычислить высоты треугольника со сторонами а,b,с ,
используя формулы.
ha = a2 p( p − a)( p − b)( p − c)
h = 2 |
|
|
|
|
|
p( p − a)( p − b)( p − c) |
|||
c |
c |
|
|
|
|
|
|
||
h = 2 |
|
|
||
p( p − a)( p − b)( p − c) |
||||
b |
b |
|
|
|
|
|
|
p = (a + b + c) / 2
Вспомогательная переменная t
t = 2 p( p − a)( p − b)( p − c)
Начало
ВВОД a, b, c
p = (a + b + c)/ 2
t = 2 p(p − a)(p − b)(p − c)
ha |
= t / a |
|
|
hb |
= t / b |
|
|
hc |
= t / c |
|
|
|
ВЫВОД |
||
ha, hb, |
|
||
|
|
||
|
|
||
hc |
|
|
|
Лекция 8. Информатика, часть 2 |
Конец |
15 |
|
Встроенные диалоговые окна вводавывода
• Окно ввода
InputBox (“Сообщение в окне”,” Название окна”)- выводит диалоговое окно, содержащее сообщение, устанавливает режим ожидания ввода текста и нажатия кнопки. Возвращает значение типа String -строка.
• Окно вывода (сообщений)
MsgBox Сообщение в окне, Формат Кнопок, “ Название окна”
Сообщение в окне формируется из текста и значений переменных типа String –строка.
Формат Кнопок может принимать значения от 0 до 5 и задавать различный набор кнопок.
Лекция 8. Информатика, часть 2 |
16 |
Пример использования встроенных диалоговых окон вводавывода
Sub Demo() Dim n As String
n=InputBox(«Введите ваше имя», «Пример окна ввода»)
MsgBox n, 3, «Результат» End Sub
То, что введете в это |
|
|
поле присвоится |
Лекция 8. Информатика, часть 2 |
17 |
переменной n |
ПОРЯДОК РАБОТЫ В VBA (создание программы)
•Запустить EXCEL.
•Перейти в редактор VBA ALT+F11 или выполнить команду
Сервис-Макрос-Редактор VBA.
•Выполнить команду Insert-Module для создания модуля (или Insert-UserForm для создания пользовательской формы).
•Для нашего примера выполним команду Insert - Module
•Набрать код Модуля (или создать Форму).
•Запустить код на выполнение командой Run.
•В поле окна ввода ввести исходные данные.
•Проанализировать результат в окне вывода.
Лекция 8. Информатика, часть 2 |
18 |
РЕДАКТОРА VBA
в окне Модуля набрана программа treugolnik (пример)
Меню и Панель Инструментов
Окно проекта
содержит: листы Excel, Модули и Формы пользователя
Окно свойств
содержит
свойства
выделенного
объекта
Окно Модуля (или Формы) предназначено для написания кода и конструирования Форм.
Лекция 8. Информатика, часть |
|
|
2 |
19 |
ПРИМЕР ПРОГРАММЫ НА VBA
Sub treugolnik()’Прогрмма начинается с Sub
'ОПИСАНИЕ ПЕРЕМЕННЫХ
Dim a As Single, b As Single, c As Single ' исходные данные числового типа
Dim p As Single, t As Single 'промежуточные данные числового типа Dim ha As Single, hb As Single, hc As Single 'результат числового типа 'ВВОД ИСХОДНЫХ ДАННЫХ В СТАНДАРТНЫЕ ОКНА
a = InputBox("Ввести a", "Исходные данные")
b = InputBox("Ввести b", "Исходные данные") c = InputBox("Ввести c", "Исходные данные")
'ВЫЧИСЛЕНИЯ
p = (a + b + c) / 2 t = 2 * Sqr(p * (p - a) * (p - b) * (p - c))
ha = t / a: hb = t / b: hc = t / c
'ВЫВОД РЕЗУЛЬТАТОВ В СТАНДАРТНОЕ ОКНО MsgBox "ha=" & ha & chr(13) & "hb=" & hb & chr(13) _ & "hc=" & hc, vbDefaultButton1, «РЕЗУЛЬТАТ»
End Sub’ Конец программы
Лекция 8. Информатика, часть 2