Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекция8(4) Программирование на VBA

.pdf
Скачиваний:
24
Добавлен:
03.06.2015
Размер:
692.14 Кб
Скачать

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

Макрос «Х»

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

Предполагаемый вид вывода результатов
20

ПРИМЕР ПРОГРАММЫ НА 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