Функции и процедуры
sub имя процедуры ()
…
End sub
Function имя функции ()
…
End function
Call имя процедуры
Переменная имя функции ()
Пример: создать программу, работающую с процедурами и функциями, параметрами которых являются значения, вводимые в текстовые поля формы. После нажатия кнопки отчет главная программа вызывает процедуру или функцию, и выводим полученный результат в соответствующую метку. Процедура выполняет следующие действия:
Суммирует первые два введенных значения
Уменьшает 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
Выйти в Excel и сделать заготовку на листе:
-
1
Решение уравнения y=ax^3+b*sin(x)
2
Коэффициент:
Значение:
3
A
4
B
5
Y
6
7
X
Сделать форму:
Label введите а: edit1
Label введите b: edit2
Label значение y: edit3
Button1 вычислить button2 очистить
Label найденное значение х: edit4
Button3 закрыть
Кнопка закрыть:
UserForm1.Hide
Кнопка очистить:
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
Кнопка вычислить:
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: Создать программу, которая автоматизирует ввод данных на студентов некоторой группы.
Подготавливаем заготовку на листе Excel:
-
A
B
C
D
Список студентов
Группа
Адрес
№
Фамилия
Создаем форму:
Label фамилия edit1
Label группа edit2
Label адрес edit3
Label куратор edit4
Button1 создать таблицу
Button2 добавить строку
Button3 закончить
Создаем таблицу:
ActiveWorkBook.SaveAs(“работа с базой данных .xls”)
Nomer = 1
WorkSheets(“Лист3”).Range(“A4:D20”).Clear
Добавить строку:
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
Кнопка 3:
Userform2.hide
With activesheet
Strname2 = trim(str(strnomer+nomer+2))
.range (“A”+strname2).value = “классный руководитель”
.range (“D”+strname2).value = textbox4.text
Глобальные переменные:
Const strnomer = 3
Dim strname1 as string
Dim strname2 as string
Dim strname3 as string
