Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lection6.docx
Скачиваний:
12
Добавлен:
31.03.2015
Размер:
41.63 Кб
Скачать
  1. Переменные и константы

    1. Переменные

Под переменнойв программировании понимается поименованная область памяти, в которой хранится некоторое значение, причём это значение может изменяться в ходе выполнения программы. Для объявления переменных используется операторDim.

Dim<имя> [As<тип>]

DimnAsInteger

Dimi,j,kAsInteger'Только переменная k имеет тип Integer!

Dim i As Integer, j As Integer, k As Integer 'Теперь все переменные имеют тип Integer

Необъявленные переменные и переменные, в объявлении которых не указан тип, имеют тип Variant. Однако использование типаVariantявляется не самым лучшим решением, и, кроме того, необъявленные переменные могут приводить к ошибкам. Если вы неверно напишите имя переменной, то компилятор сочтёт это имя как имя новой переменной, и программа будет работать не так, как задумано. Чтобы избежать подобных ошибок, можно потребовать явного объявления всех переменных. Для этого необходимо включить следующую строку в качестве первой инструкции в модуле VBA:

Option Explicit

    1. Константы

Если некоторое значение используется несколько раз, лучше не вставлять его в несколько инструкций, а объявить в виде константы. Такое объявление позволит, во-первых, задать значению символическое имя, что улучшит читабельность программы, а во-вторых, упростит изменение значения – новое значение необходимо будет ввести только один раз.

Const<имя> [As<тип>] = <значение>

Const count As Integer = 255

Const tax = 0.13, expDate = #12/31/2012#

    1. Массивы

Массив– это переменная, состоящая из нескольких элементов одного типа, для доступа к которым используется один или несколько индексов.

Dim<имя> (<начальный индекс>To<конечный индекс>)As<тип>

Dim a (1 To 100) As Integer

Dim b (1 To 10, 1 To 10) As Double

a(3) = 7

b(5, 2) = -3.568

Динамические массивы– это массивы, которые не имеют предопределённого количества элементов. Для объявления такого массива используются пустые круглые скобки. Однако, прежде чем использовать такой массив, необходимо задать его размер с помощью оператораReDim. В отличие от обычного объявления, в котором можно использовать только константы, в оператореReDimможно использовать переменных для указания границ индексов.

Dim a() As Integer

...

ReDim a(1 To n)

    1. Объектные переменные

Объектная переменная– это переменная, представляющая собой объект VBA, например, диапазон или рабочий лист. Объектные переменные важны по следующим причинам:

  • они упрощают программу;

  • они ускоряют выполнение программы.

Объектные переменные объявляются так же, как и обычные, – с помощью оператора Dim. Для присваивания объекта переменной необходимо использовать операторSet.

DimMyCellAsRange

Set MyCell = Worksheets("Лист1").Range("A1")

MyCell.Value = 125

MyCell.Font.Bold = True

MyCell.Font.Italic = True

MyCell.Font.Size = 14

MyCell.Font.Name = Cambria

  1. Управляющие конструкции

    1. Условный оператор

Условный операторпозволяет осуществлятьвыбордействий, которые надо выполнить, в зависимости от некоторого условия.

If<условие>Then

<инструкции1>

[Else

<инструкции2>]

End If

If k <> 0 Then

s = s / k

End If

If k <> 0 Then s = s/ k

If x > y Then

s = s + x

Else

s = s + y

End If

If<условие1>Then

<инструкции1>

Elseif<условие2>Then

<инструкции2>

...

Elseif<условиеn>Then

<инструкцииn>

Else

<инструкцииn+1>

End If

Dim quantity As Integer, discount As Double

If quantity > 100 Then

discount = 0.25

ElseIf quantity > 75 Then

discount = 0.2

Elseif quantity > 50 Then

discount = 0.1

Else

discount = 0

End If

    1. Циклы

Циклыпозволяютмногократновыполнять некоторую последователь­ность действий, используя логические выражения для определения момента прекращения выполнения цикла. Наиболее часто используемым являетсяпараметрический цикл. Параметрический цикл имеет следующий синтаксис (по умолчанию шаг равен 1).

For<счётчик> = <начальное значение>To<конечное значение> [Step<шаг>]

<инструкции>

[ExitFor]

<инструкции>

Next<счётчик>

'Сумма квадратов всех чисел от 1 до 100

Dim sum As Double, i As Integer

sum = 0

For i = 1 to 100

sum = sum + sqr(i)

Next i

'Сумма квадратов чисел, кратных 3, от 3 до 100

Dim sum As Double, i As Integer

sum = 0

For i = 3 to 100 Step 3

sum = sum + sqr(i)

Next i

'Удаляем чётные строки с номерами от 2 до 10

Dim r As Long

For r = 10 To 2 Step -2

Rows(r).Delete

Next r

'Сумма квадратов чисел от 1 до 100. Выходим, если сумма превышает пороговое значение

Dim sum As Double, threshold As Double, i As Integer

sum = 0

threshold = 100

For i = 1 To 100

sum = sum + sqr(i)

If sum > threshold

Exit For

End If

Next i

'Сумма значений ячеек диапазона

Dim r as Range

Dim sum As Double

Dim i As Integer, j As Integer

sum = 0

For i = 1 To r.Rows.Count

For j = 1 To r.Columns.Count

sum = sum + r.Cells(i, j)

Next j

Next i

'Количество положительных значений в ячейках диапазона

Dim r as Range

Dim k As Integer

Dim i As Integer, j As Integer

k = 0

For i = 1 To r.Rows.Count

For j = 1 To r.Columns.Count

If r.Cells(i, j) > 0 Then k = k + 1

Nextj

Nexti

В языке VBA можно также использовать ещё четыре разновидности цикла.

Do [{While | Until} <условие>]

<инструкции>

[Exit Do]

<инструкции>

Loop

Do

<инструкции>

[Exit Do]

<инструкции>

Loop [{While | Until} <условие>]

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]