На примере с предыдущего урока возьмем код.

Sub programm() 'График функции y = x^3 -2x^2 + x^(3 * Cos(x1)) - 5
x1 = 1 'Начальное значения
x2 = 10 'Конечное значение
shag = 0.1 'Шаг изменения переменной
i = 1 'Счётчик
Do While x1 < x2 'Выполнять цикл операций, пока x1 < x2
y = x1 ^ 3 - 2 * x1 ^ 2 - x1 ^ (3 * Cos(x1)) - 5 'Рассчитать значение функции
Сells(i, 1).Value = x1 'Записать x1 в ячейку с координатами (i,1)
Cells(i, 2).Value = y 'Записать y в ячейку с координатами (i,2)
i = i + 1 'Увеличить счётчик на 1
x1 = x1 + shаg 'Изменить x1 на величину шага
Loop
End Sub

Теперь же предлагаю более детально разобраться во всём этом коде. Сам четвёртый урок будет для удобства разбита на несколько частей, а это его первая часть.

Как мы уже говорили, любая программа начинается со слова «Sub» и заканчивается «End Sub». Чтобы не было путаницы, каждая программа должна иметь своё уникальное название, в данном случае наша программа называется "programm». Программа – это блок кода, который выполняет определённый набор команд. Этот блок также может быть использован, другой программой или блоком. Для более эффективного взаимодействия между блоками в VBA предусмотрен механизм передачи параметров между ними.

Так, например, следующий код демонстрируем использование блокам programm1()

блока programm(x) с передачей параметра x = 1.

Sub programm(x)
End Sub
Sub programm1()
    programm (1)
End Sub

Далее рассмотрим набор используемых переменных.

x1 = 1 'Начальное значения

x2 = 10 'Конечное значение

shag = 0.1 'Шаг изменения переменной

i = 1 'Счётчик

Все они различных типов. shag, например, типа Double(с плавающей точкой), i – Integer(целый).

Но в VBA указывать это явно разработчику не требуется. Excel сам разберётся, что к чему. Но если вдруг для порядка Вы всё же захотите указать тип, то это можно сделать так.

Dim str As String 'Строковый тип – Доступна глобально

Sub programm(x)
    Dim x1 As Integer 'Доступна только в блоке program()
    Dim x2 As Integer 'Доступна только в блоке program()
    Dim shag As Double 'Доступна только в блоке program()
    Dim i As Integer 'Доступна только в блоке program()
End Sub
Sub programm1()
    programm (1)
        {Код ….}
End Sub

При этом переменная, например «str», объявленная вне блоков, будет доступна как для program(), так и для programm1(), что позволяет использовать и изменять её и там и там.

Чтобы присвоить значение переменным необходимо использовать «=», для строковых - дополнительно надо взять в кавычки нашу строку. Например так:

Sub programm1()
    programm (1)
str = "Это наша строка"
End Sub

Что ж, эту часть заканчиваю и приглашаю перейти ко второй.

Содержание                                               Предыдущая << • >> Cледующая                                               Автор:Muha


2016-06-02 • Просмотров [ 40 ]