Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППП(4к).docx
Скачиваний:
8
Добавлен:
24.08.2019
Размер:
36 Кб
Скачать
☆

Функции и процедуры

sub имя процедуры ()

…

End sub

Function имя функции ()

…

End function

Call имя процедуры

Переменная имя функции ()

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

  1. Суммирует первые два введенных значения

  2. Уменьшает 3 и 4 значения.

Dim a, b, c, d, s, m as double

Sub sum()

A=val (textbox1.txt)

B=val (textbox2.txt)

S=a+b

End sub

{Тут как бы оставшиеся темы по VBA в Word}

VBA Excel

Объект Range является одним из ключевых объектов VBA в Excel.

Кнопка 1:

X = Range (‘ D1’).Value – возвращает значение в метку формы

Label1.caption = x

Используя то же свойство value, можно присвоить ячейкам значение программно.

Кнопка 2:

Range (“A1:B2”). Value = 5

Кнопка 3:

Возвращает число объектов в наборе

N = Range (“A1:D3”). Rows. Count

Label2.caption = n

Метод GoalSeek используется для решения уравнений с одной переменной х.

Пример 1: Разработать программу, которая по введенным числовым коэффициентам некоторого уравнения находит неизвестную переменную, при этом результаты вычисления выдаются на форму и в Excel.

Y=ax3+b*sin x

  1. Выйти в Excel и сделать заготовку на листе:

1

Решение уравнения y=ax^3+b*sin(x)

2

Коэффициент:

Значение:

3

A

4

B

5

Y

6

7

X

  1. Сделать форму:

Label введите а: edit1

Label введите b: edit2

Label значение y: edit3

Button1 вычислить button2 очистить

Label найденное значение х: edit4

Button3 закрыть

  1. Кнопка закрыть:

UserForm1.Hide

  1. Кнопка очистить:

TextBox1.Text = “ ”

TextBox2.Text = “ ”

TextBox3.Text = “ ”

With ActiveSheet

.Range(“B3”).value = 0

.Range(“B4”).value = 0

.Range(“B5”).value = 0

.Range(“B6”).value = 0

.Range(“B6”).value = 0

End With

End Sub

  1. Кнопка вычислить:

D im a, b, c as double

A = CDbl(Textbox1.Text)

B = CDbl(Textbox2.Text) глобальные переменные

C = CDbl(Textbox3.Text)

With ActiveSheet

.Range(“B3”).value = a

.Range(“B4”).value = b

.Range(“B5”).value = c

.Range(“B6”).FormulaLocal = “=B3*B7^3+B4*sin(B7)”

.Range(“B6”).GoalSeek Goal:= c, changingCell:=Range(“B7”)

TextBox4.Text = Cstr(.Range(“B4”).Value)

TextBox4>Text = FormatNumber(Textbox4.text, 20

End With

Метод AutoFill

Этот метод используется для заполнения ячеек диапазона элементами последовательности.

Пример 2: Создать программу, которая автоматизирует ввод данных на студентов некоторой группы.

  1. Подготавливаем заготовку на листе Excel:

A

B

C

D

Список студентов

Группа

Адрес

№

Фамилия

  1. Создаем форму:

Label фамилия edit1

Label группа edit2

Label адрес edit3

Label куратор edit4

Button1 создать таблицу

Button2 добавить строку

Button3 закончить

  1. Создаем таблицу:

ActiveWorkBook.SaveAs(“работа с базой данных .xls”)

Nomer = 1

WorkSheets(“Лист3”).Range(“A4:D20”).Clear

  1. Добавить строку:

StrName1 = Trim(Str(strNomer+nomer))

With ActiveSheet

.range(“A”+str(Name1).value = nomer

.range(“B”+str(Name1).value =textbox1.text

.range(“C”+str(Name1).value = textbox2.text

.range(“D”+str(Name1).value = textbox3.text

StrName2 = Trim(Str(strNomer+nomer+1))

Setrange1 = .range(“A”+strName1+”:D”+strname1)

Sterange2 = .range(A”+strname1+”:D”+strname2)

Range1.AutoFill Destination:=range2

.range(“A”+strname2+”:D”+strname2).clear

End With

Textbox1.text

Textbox2.text

Textbox3.text

Textbox.setfocus

Nomer = nomer+1

  1. Кнопка 3:

Userform2.hide

With activesheet

Strname2 = trim(str(strnomer+nomer+2))

.range (“A”+strname2).value = “классный руководитель”

.range (“D”+strname2).value = textbox4.text

  1. Глобальные переменные:

Const strnomer = 3

Dim strname1 as string

Dim strname2 as string

Dim strname3 as string