- •4.1. Предварительный просмотр
- •4.2. Выбор области печати
- •1 Способ:
- •3 Способ
- •Visual Basic for Applications (vba)
- •Глава 9. Основы языкапрограммирования Visual Basic for Applications (vba)
- •9.2. Переменные и константы
- •9.2.1. Область действия переменных и констант
- •9.2.2. Объявление (описание) переменных и констант
- •9.2.4. Типы переменных и констант
- •9.3. Управляющие конструкции
- •9.3.1. Выражения
- •9.3.2. Приоритеты операций
- •9.3.3. Встроенные функции
- •9.3.3.1. Математические функции
- •9.3.3.4. Функции обработки строк
- •9.3.3.5. Функции времени и даты
- •9.3.3.6. Функции выбора
- •9.3.4. Операторы альтернативы (ветвления)
- •9.3.4.1. Условный оператор
- •9.3.4.2. Оператор выбора варианта
- •If Not IsNumeric(Prom) Then MsgBox(“Повторите ввод!”)
- •9.3.5. Операторы циклов
- •9.3.5.1. Циклы с предусловием
- •9.3.5.2. Циклы с постусловием
- •9.3.5.3. Безусловный цикл (Цикл по счетчику)
- •9.3.5.4. Сложные (вложенные) циклы
- •9.3.7. Процедуры ввода-вывода через диалоговые окна
- •If Not IsNumeric(Prom) Then MsgBox(“Повторите ввод!”)
- •9.4.Основные объекты vba
- •9.4.4. Оформление рабочего листа
- •9.4.4.1. Оформление текста в ячейке
9.3.5.3. Безусловный цикл (Цикл по счетчику)
FOR … NEXT
Цикл с определенным количеством повторений. Цикл выполняется от начального до конечного значения параметра с заданным шагом.
Пример:
Dim X As Integer
For X=1 To 10 Step 1 ‘Повторять цикл от 1 до 10 с шагом 1.
Beep ‘Звук (тело цикла).
Next X ‘Конец цикла.
Exit For или Exit Do ‘Досрочный выход из цикла.
FOR … NEXT
Цикл For Each … Next предназначен для перебора всех элементов из заданного массива или набора объектов.
Пример использования цикла применительно к массивам:
Sub Mas6()
Dim i As Integer
Dim j As Integer
Dim x(1 To 5, 1 To 5) As Single
Dim S As Single
Worksheets("Лист1").Activate
For i=1 To 5
For j=1 To 5
x(i,j)=Cells(i,j)
Next j
Next i
For Each e In x
S=S+e
Next e
MsgBox(“S=”) & CStr(s)
End Sub
9.3.5.4. Сложные (вложенные) циклы
Совокупность простых циклов, вложенных один в другой, называется сложным (вложенным) циклом. При конструировании сложных циклов необходимо руководствоваться следующими правилами:
нельзя войти во внутренний цикл, минуя вход внешнего цикла;
имена параметров простых циклов не должны повторяться в конструкции сложного цикла;
простые циклы не должны пересекаться в конструкции сложного цикла, то есть окончание внешнего цикла не должно предшествовать окончанию внутреннего цикла.
Примеры:
For i=1 to n
For j=1 to m
A(i , j)=Int(Sin(j*i)*100)
Next j
Next i
Do
X=1
Z=0
Do
S=Int(Rnd(x)*100)
Z=Z+S
X=X+1
Loop Until X>=20
Zsr=Z/20
Loop Until Zsr>=25
9.3.7. Процедуры ввода-вывода через диалоговые окна
В сокращенном варианте инструкции ввода-вывода имеют вид:
InputBox(<”сообщение”>)
MsgBox(<“сообщение”>)
Пример:
Sub Krb()
Dim S As Integer
Dim Sum As Single
Dim P As Integer
Dim Prom As Variant
S=5000
Do
Prom=InputBox(“Введите значение P=”)
If Not IsNumeric(Prom) Then MsgBox(“Повторите ввод!”)
Loop Until IsNumeric(Prom)
P=Prom
Sum=S+S*0.01*P
MsgBox(“Результат S=”) & CSng(Sum)
End Sub
9.4.Основные объекты vba
К числу основных объектов VBA, которые описываются в этом разделе, относятся: рабочая книга (Workbook) и семейство рабочих книг (Workbooks), рабочий лист (Worksheet) и семейство рабочих листов (Worksheets), диапазон ячеек или ячейка (Range).
После объекта, обычно через точку “.”, указывается свойство или метод. Иногда, чтобы добраться до определенного объекта, нужно пройти иерархию вышестоящих объектов.
Пример:
Workbooks(“Книга 1.xls”).Worksheets(“Лист1”).Activate
Свойства и методы, которые обеспечивают ссылку на нужный объект в иерархии объектов, называются семействами (наборами).
Семейство WorkBooks("Книга1") ‘Обеспечивает доступ к рабочей книге. В скобках указывается имя книги.
Семейство WorkSheets("Лист1") ‘Обеспечивает доступ к рабочему листу. В скобках указывается имя листа.
Семейство Range("диапазон") ‘Обеспечивает доступ к диапазону ячеек или к ячейке. В скобках указывается диапазон ячеек или имя ячейки.
Семейство Cells(№ строки, № столбца) ‘Обеспечивает доступ к ячейке. В скобках указываются координаты ячейки.
Примеры:
WorkBooks("Книга1")
WorkSheets("Лист1")
Range("A1")
Range("A1:В10")
Cells(2,3)
Cells(k,i+1)