Му макросы и VBA
.pdf21
3 Крейг Д.К. Уэбб Дж. Microsoft Visual Basic 5.0 Мастерская разработчика. Пер. с англ. 4-е изд. 1998 Издательский отдел “Русская редакция” ТОО “Channel Trading Ltd.” М.
22
Типы данных |
|
|
|
|
Приложение А |
|||
|
|
|
|
|
|
|
||
Фундаментальные типы данных, поддерживаемые Visual Basic: |
|
|
||||||
|
|
|
|
|
|
|
|
|
Тип данных |
Описание |
|
|
|
Диапазон |
|
|
|
Byte |
1-байтовое двоичное число |
от 0 до 255 |
|
|
||||
Integer |
2-байтовое целое |
|
от –32768 до 32767 |
|
|
|||
Long |
4-байтовое целое |
|
от |
–2147483648 |
до |
|
||
|
|
|
|
|
2147483647 |
|
|
|
Single |
4-байтовое |
|
число |
с |
от –3.402823E38 до |
|
|
|
|
плавающей точкой |
|
–1.401298E-45 |
|
|
|||
|
|
|
|
|
(отрицательные значения) |
|
||
|
|
|
|
|
от |
1.401298E-45 |
до |
|
|
|
|
|
|
3.402823E38 |
|
|
|
|
|
|
|
|
(положительные значения) |
|
||
Double |
8-байтовое |
|
число |
с |
от –1.79769313486231E308 |
|
||
|
плавающей точкой |
|
до-4.94065645841247E-324 |
|
||||
|
|
|
|
|
(отрицательные значения) |
|
||
|
|
|
|
|
от 4.94065645841247E-324 |
|
||
|
|
|
|
|
до |
1.79769313486231E308 |
|
|
|
|
|
|
|
(положительные значения) |
|
||
Currency |
8-байтовое |
|
число |
с |
от –922337203685477.5808 |
|
||
|
фиксированной |
десятичной |
до 922337203685477.5807 |
|
||||
|
точкой |
|
|
|
|
|
|
|
String |
Строка символов |
|
от нуля до почти двух |
|
||||
|
|
|
|
|
миллиардов символов |
|
|
|
Variant |
дата/время, |
|
число |
с |
даты: от 1 января 100 года |
|
||
|
плавающей точкой, целое, |
до 31 декабря 9999 года; |
|
|||||
|
строка или объект; занимает |
числовые значения: тот же |
|
|||||
|
16 байтов плюс по 1 байту на |
диапазон, что и для |
|
|||||
|
каждый |
символ, |
если |
Double; строки: тот же |
|
|||
|
значением является строка |
диапазон, что и для String; |
|
|||||
|
|
|
|
|
позволяет так же хранить |
|
||
|
|
|
|
|
значения Error или Null |
|
|
|
Boolean |
2 байта |
|
|
|
True или False |
|
|
|
Date |
8-байтовое |
|
значение |
от 1 января 100 года до 31 |
|
|||
|
даты/времени |
|
|
декабря 9999 года |
|
|
||
Object |
4 байта |
|
|
|
ссылка на любой объект |
|
|
Переменные, константы и массивы
Как в любом языке программирования высокого уровня для хранения значений используются переменные и константы.
23
Константы объявляются оператором Const: Const p=456
Public Const Strin=”help” (открытая константа)
Private Const int As Integer=5 (закрытая константа, явно задан тип)
Переменные объявляются с помощью ключевых слов Dim, Public, Private, Static:
Private i
Dim a
Static newstr As String
Public newstr1 As string, b As Currency
Private t, k, j As Integer (j как целая, а t, k - variant)
Если переменная не объявлена статической, ее значение после выполнения процедуры не сохраняется.
Массивы объявляются аналогично переменной, но указывается нижняя и верхняя граница каждой размерности, размерностей может быть до 60, по умолчанию нижняя граница – 0.
Dim mas(14) As Integer Dim sum(20) As Double
Dim sums(1 to 100) As String
Dim bigmas(1 to 5, 1 to 10, 1 to 20)
Управляющие конструкции
В отсутствие управляющих конструкций программа выполняется последовательно. Для изменения последовательного выполнения используются операторы ветвления и цикла.
Операторы ветвления
Формат |
Примеры |
If … Then |
If j<0 Then j=0 |
|
If j>5 Then k=k+10 |
|
J=0 |
|
End If |
If … Then … Else |
If k<10 Then |
|
k=k+10 |
|
Else |
|
k=k-10 |
|
End If |
If … Then … ElseIf |
If j=1 Then |
|
k=k+1 |
|
ElseIf j=2 Then |
|
k=k*2 |
|
ElseIf j=5 Then |
24
|
|
|
k=k*10 |
|
|
|
End If |
|
Else k=0 |
|
|
|
|
|
|
|
|
Select Case |
Select Case k |
|
|
|
|
|
Case 1 |
|
|
|
|
|
j=j*0.1 |
|
|
|
|
|
Case 2,3 |
|
|
|
|
|
j=j*0.01 |
|
|
|
|
|
Case 5 to 10 |
|
|
|
|
|
j=100 |
|
|
|
|
|
Case Else |
|
|
|
|
|
j=0 |
|
|
|
|
|
End Select |
|
|
|
|
Операторы циклов |
|
|
|
|
|
|
|
|
|
|
|
Формат |
Примеры |
|
|
|
|
Do … Loop |
Общий вид оператора для неопределенного числа |
||||
|
повторений |
|
|
|
|
Do While … Loop |
Выполняется пока условие истинно |
|
|
||
|
Do While c<10 |
|
|
|
|
|
k=k*c |
|
|
|
|
|
c=c+1 |
|
|
|
|
|
Loop |
|
|
|
|
Do Until … Loop |
Выполняется, пока условие ложно |
|
|
||
|
Do Until c>10 |
|
|
|
|
|
k=k*c |
|
|
|
|
|
c=c+1 |
|
|
|
|
|
Loop |
|
|
|
|
Do … Loop While |
Выполняется пока условие истинно (хотя бы один |
||||
|
раз) |
|
|
|
|
Do … Loop Until |
Выполняется пока условие ложно (хотя бы один |
||||
|
раз) |
|
|
|
|
For … Next |
Выполняется определенное число раз, по |
||||
|
умолчанию, шаг изменения 1, если другой шаг – |
||||
|
step 2, например, или step –3. |
|
|
||
|
Например, |
код |
перебирает |
все |
ячейки |
|
диапазонаA1:D10 на листе Sheet1, если ячейка |
||||
|
содержит значение 0,01, оно заменяется на 0. |
|
|||
|
Sub RoundToZero() |
|
|
|
|
|
For rwIndex=1 to 4 |
|
|
|
|
|
For colIndex=1 to 10 |
|
|
||
|
If Worksheets(“Sheet1”).Cells _ |
|
|||
|
(rwIndex, colIndex)< .01 Then |
|
25
|
WorkSheets(“Sheet1”).Cells _ |
|
|||
|
(rwIndex, colIndex).Value=0 |
|
|
||
|
End If |
|
|
|
|
|
Next colIndex |
|
|
|
|
|
Next rwIndex |
|
|
|
|
|
End Sub |
|
|
|
|
For Each … Next |
Выполняет цикл для каждого элемента или объекта, |
||||
|
даже если заранее не известно их число. |
|
|||
|
Например, |
код |
перебирает |
все |
ячейки |
|
диапазонаA1:D10 на листе Sheet1, если ячейка |
||||
|
содержит значение 0,01, оно заменяется на 0. |
|
|||
|
Sub RoundToZerg() |
|
|
|
|
|
For Each r In Worksheets(“Sheet1”). _ |
||||
|
Range(“A1:D10”).Cells |
|
|
|
|
|
If Abs(r.Value)<0.01 Then |
|
|
||
|
End If |
|
r.Value=0 |
|
|
|
|
|
|
|
|
|
Next r |
|
|
|
|
|
End Sub |
|
|
|
|
Управляющие конструкции можно включать друг в друга как в вышеописанных примерах.
26
МАКРОСЫ И ОСНОВЫ ПРОГРАММИРОВАНИЯ НА VBA
В ПРИЛОЖЕНИИ MS OFFICE – EXCEL
Лабораторная работа
По курсу “Технологии организации, хранения и обработки данных”
Методические указания для студентов специальности
Э.01.07.01 “Бухгалтерский учет, анализ и аудит”
дневной и заочной форм обучения
Составитель Пивоварчик Виктория Александровна
Редактор:
Технический редактор: |
Е.С. Попова |
Подписано в печать_____________________ Формат 60х84 |
1/16 |
Печать офсетная. Усл. Печ.л.______________Уч. Изд.л._____________
Тираж_______________Заказ_________________Бесплатно Лицензия №226 от12.02.1998 г.
Отпечатано на ротапринте МТИ 212027, г. Могилев, пр-т Шмидта,3